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

Создание реалистичной поверхности воды с использованием GLSL (комментарии) (3 стр)

Страницы: 1 2 3 4 533 Следующая »
#30
13:34, 14 июня 2009

RigoN
> Согласен, с Executor статья без исходника выглядит неполной.
Покажи где я предлагал убрать исходники.


#31
13:37, 14 июня 2009

_zerg_
http://www.gamedev.ru/code/forum/?id=119778&page=2#m15

#32
13:40, 14 июня 2009

Blew_zc
Не вижу слов "лучше бы добавить формулы и убрать исходники".

#33
13:55, 14 июня 2009

_zerg_
Я тебя не понимаю %)

#34
13:59, 14 июня 2009

Blew_zc
Я всего лишь предложил добавить формулы для тех, кому легче разобраться по формулам, а код можно оставить для копипастеров.

#35
14:17, 14 июня 2009

А о каких именно формулах идет речь?
Если о каустике - то я их забыл :))))
Я сам могу с трудом их восстановить по коду....
Если так нужны формулы - могу добавить. Только скажите, какие именно

#36
14:25, 14 июня 2009

_zerg_
> Покажи где я предлагал убрать исходники.

А разве ктото говорил, что ты предлагал убрать исходники?
Помоему о тебе вообще упоминания не было, поэтому к чему твои посты вообще не ясно... :)

#37
16:29, 14 июня 2009

Спасибо за статью! Будем ждать физики.

#38
8:43, 15 июня 2009

Sergio666
Спасибо за урок!

#39
21:19, 16 июня 2009

На последнем рисунке статьи, часть поверхности трубы, находящаяся над водой, сильно искревлена. Почему так?

#40
21:27, 16 июня 2009

Текстура искажения так легла.

#41
12:02, 19 июня 2009

Супер статья! За Каустику огромнейшее спасибо! Даже как то сам не додумывался что можно сделать такой вот крутой эффект ещё дополнительно

#42
20:37, 21 июня 2009

Вопрос к автору. Вот в этом месте пиксельного шейдера:

Sergio666
>// вычисляем расстояние от камеры до точки
> float fOwnDepth = calculate_linear_depth(proj_tc.z);

Разве не должно быть
float fOwnDepth = calculate_linear_depth(proj_coords.z/proj_coords.w); ?

Ведь компонента z переменной proj_tc вместе с компонентами x и y переводится в промежуток [0..1] из [-1...1] вот таким образом:
>vec3 proj_tc = 0.5 * proj_coords.xyz / proj_coords.w + 0.5;

А насколько я понимаю для вычисления линейной глубины этого делать не надо...

#43
20:40, 21 июня 2009

lexer
Как раз надо. В глубину пишется 0.5 + 0.5 * z/w

#44
20:50, 21 июня 2009

Отношение z/w вроде всегда положительно? так зачем это делать?

Я вот о чем, вот на таком коде я проверил вычисление глубины(делал все как в шейдере, т.е. вершину переводил в пространство проекции), причем позиция камеры (0,0,8) , ближняя плоскость 1.0 а дальняя 1000.0, ось z вверх.

D3DXVECTOR4 vec = D3DXVECTOR4(0.0f, 0.0f, 0.0f, 1.0f);
D3DXVec4Transform(&vec, &vec, &viewMat);
D3DXVec4Transform(&vec, &vec, &projMat);
vec.z = 1000.0f * 1.0f / (1000.0f - (vec.z/vec.w)*(1000.0f - 1.0f));

При таком вот вычислении vec.z = 8.0 , если последнюю строку изменить на

vec.z = 1000.0f * 1.0f / (1000.0f - (0.5*vec.z/vec.w + 0.5)*(1000.0f - 1.0f));

то получается завышенное значение окола 15. Почему это так?

Страницы: 1 2 3 4 533 Следующая »
ПрограммированиеФорумГрафика

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