Войти
ПрограммированиеФорумГрафика

Пару вопросов по ОпенГЛ (4 стр)

Страницы: 13 4 5 622 Следующая »
#45
12:23, 26 ноя. 2013

key0, спасибо! Яснее некуда. Именно это и хотел услышать


#46
18:02, 11 янв. 2014

Есть ли какие-нибудь демки, где можно сравнить разные техники построения теней?

#47
18:11, 11 янв. 2014

ialexbr
В dxsdk есть вроде разные типы сглаживания. Параметры точно покрутить можно

#48
16:14, 29 янв. 2014

Есть два варианта:

1) Использовать шейдер, который считает свет только от одного источника света, и при нескольких источниках света на сцене перерисовывать сцену несколько раз с этим шейдером.

2) Использовать шейдер, который в цикле перебирает все источники на сцене и считает от них освещение, при этом сцену перерисовываешь всего один раз. При изменении количества источников на сцене шейдер перекомпилируется.

Какой вариант будет быстрее?

#49
16:17, 29 янв. 2014

ialexbr
По сути вопрос forward rendering vs deferred rendering.
Это смотря сколько источников света и какова сложность сцены.

#50
20:51, 1 фев. 2014

Можно ли рисовать в текстуру из которой читаешь данные? (Например, настроил FBO для записи в текстуру, потом эту же текстуру передал в шейдер, который берет данные из этой текстуры и записывает в нее же)

#51
21:09, 1 фев. 2014

ialexbr
Нельзя, но можно взять две текстуры, сначала читать из первой рисовать во вторую, потом поменять местами и рисовать из второй в первую, ну и т.д.

#52
21:20, 1 фев. 2014

kipar
Понятно, спасибо.

#53
21:42, 4 фев. 2014

Ну и да, тоже спрошу. Хотя вопрос скорее риторический, но все-таки.
Как делать рандом в шейдерах?
В гугле нашлась только функция на основе синуса (с которой судя по stackoverflow на некоторых устройствах есть проблемы, т.к. она может ломаться в зависимости от реализации синуса для больших чисел) и webgl-noise, в котором нормального rand НЕТ, есть только шум перлина (т.е. явная переголова по вычислительной сложности, да и распределение у него отнюдь не равномерное).
А встроенный noise1\2\3 вроде бы устарел и нигде не реализован. Неужели рандом просто никому в шейдерах не нужен и всем хватает шума Перлина?

#54
21:48, 4 фев. 2014

Разумеется, не нужен. Или ты хочешь текстуру, рябящую каждый кадр?

#55
22:02, 4 фев. 2014

TelVolt
Зачем каждый кадр? Пусть генерит случайное число по заданному зерну (текстурной координате, например). Собственно так эта функция на основе синуса и работает

float rand(vec2 co){
  return fract(sin(dot(co,vec2(12.9898,78.233))) * 43758.5453);
}
Но мне не нравится ее безальтернативность и упоминания о том что она не везде работает.
#56
21:12, 2 мая 2014

Возможно ли упаковать позицию (x, y, z) и нормаль (x, y, z) в два байта текстуры?

#57
21:32, 2 мая 2014

как нефиг делать. Потом главное быть готовым к чудесам

как примерно

в подсказках было также Упаковка Linear Depth и нормалей в одну RGBA8 текстуру для LPP или DS, но по поиску я найти не могу

#58
21:43, 2 мая 2014

ialexbr
Нормаль в два байта можно. Другое дело, что ее нельзя будет использовать ни для чего, кроме диффузного освещения, любые блики и отражения будут артефачить.

Позицию теоретически тоже можно, но у тебя будет всего 64к разных позиций, то есть это - дискретный куб 40*40*40

#59
22:53, 14 авг. 2014

Возможно ли в GLSL шейдере прочитать данные из VBO / памяти GPU?
Возможно ли в GLSL шейдере записать данные в VBO / в память GPU?

Страницы: 13 4 5 622 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.