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

Программирование шейдеров на HLSL. (Комментарии к статье) (3 стр)

Страницы: 1 2 3 4 510 Следующая »
#30
14:11, 7 июня 2004

Paronator
А, я не о форуме говорил. На форуме ясное дело что правильно, поправьте статью...


#31
2:46, 8 июня 2004

Paronator
1. В модели освещения Блинна H называется half-angle vector. Это единичный вектор, лежащий на биссектрисе угла между L и V.
Считается он как H=(L+V)/|L+V| или H=normalize(L+V). Считать H=(L+V)/2 - в корне неправильно.
Да, модель освещения Блинна - вполне самомтоятельная, а никакая не "модификация".

2. график cos(betha).
- в чем угол бета измеряется? В градусах? В радианах? Непонятно. Надо ось подписать.
- почему косинус на графике больше единицы? Меня в школе учили, что такого не бывает.
Вообще подозрительный какой-то график.

#32
8:30, 8 июня 2004

#Ash#
Хм... а ты попробуй, поюзай шейдер. И сначало поставь
H=(L+V) а потом H=(L+V)/2  много что поменяется ?
И кстати  half так считается в render monkey.

>2. график cos(betha).
>- в чем угол бета измеряется? В градусах? В радианах? Непонятно. Надо ось подписать.
>- почему косинус на графике больше единицы? Меня в школе учили, что такого не бывает.
>Вообще подозрительный какой-то график.

А это что тебе даст ;) ?

#33
8:53, 8 июня 2004

#Ash#
>>Считается он как H=(L+V)/|L+V| или H=normalize(L+V). Считать H=(L+V)/2 - в корне неправильно.
см. Вершинный шейдер. А формула верная.
>>Да, модель освещения Блинна - вполне самомтоятельная, а никакая не "модификация".
Читай еще раз.
>>- почему косинус на графике больше единицы? Меня в школе учили, что такого не бывает.
что-то я не вижу там значений больше единицы.
>>- в чем угол бета измеряется? В градусах? В радианах? Непонятно. Надо ось подписать.
ок, спасибо.

#34
16:07, 8 июня 2004

Paronator

>Хм... а ты попробуй, поюзай шейдер. И сначало поставь
>H=(L+V) а потом H=(L+V)/2 много что поменяется ?

Только что попробовал, сильно меняется. Особенно, если источник света сзади, то блики вообще исчезают :(

#35
19:41, 8 июня 2004

Причем здесь /2? Это нужно чтобы клампа не было.
Я говорю, что H нужно нормализовать, а иначе dot фигню выдаст.

#36
19:55, 8 июня 2004

Иннокентий
>#Ash#

>>>Да, модель освещения Блинна - вполне самомтоятельная, а никакая не
>>>"модификация".
>Читай еще раз.

Это вопрос терминологии.
Правильно: "модель освещения Фонга(по Фонгу)" и "модель освещения Блинна (по Блинну)".
Неправильно: "бликовая модель освещения" и "модификация бликового освещения по Блинну".

>>>- почему косинус на графике больше единицы? Меня в школе учили, что такого не
>>>бывает.
>что-то я не вижу там значений больше единицы.

Верхний правый угол. Он там равен 1.25 при бета=1.25. Причем при всех значениях n.

#37
20:02, 8 июня 2004

PS прошу извинить за резкость.
Статья действительно является подарком для людей не читающих по-английски.

#38
23:06, 8 июня 2004

_Winnie
Я всегда все делал по-своему, как меня учили, возможно, это неправильно но
все примеры бампа, которые я делал в основном по этой формуле, но вообще-то говоря,
бамп по half angle это не слишком то хорошо (imho). Так что прости, извини, но я делал всегда так.

#Ash#
ТЫ думаешь, что здесь собрались физики всего мира, в том числе и ты?
Нет, это не так. То, что ты говоришь:
>Правильно: "модель освещения Фонга(по Фонгу)" и "модель освещения Блинна (по Блинну)".
И то же самое можно сказать и:
"бликовая модель освещения" и "модификация бликового освещения по Блинну".
Это как с тангент, я всегда его буду называть тангент спэйс по русски потамучто я не англичанин, но буду знать, что тангент спэйс это пространство касательных.

И если бы мы с Иннокентием объясняли бы все вплоть до биографии Jim'a F. Blinn'a
то это была бы не статья, а что то похожее на  прозу... так что не будем спорить о названиях, мы
не спецификацию писали, а статью.

>PS прошу извинить за резкость.
>Статья действительно является подарком для людей не читающих по-английски.
Иммено из - за этого мы и написали эту статью...

#39
12:36, 9 июня 2004

Довольно часто модель освещения с half-angle вектором называют Blinn-Phong, а иногда и просто Phong, так что самостоятельной я бы ее не называл.
Что касается формулы H=(L+V)/2, то это действительно в корне неправильная формула, которая является пережитком прошлого, оставшимся от шейдеров 1.1-1.3.
Кстати еще одна ошибка в статье насчет формулы float3 H=(In.light+In.view)/2. Вектора In.light и In.view тоже надо нормализовывать, иначе результат будет ужасный, годящийся только для очень маленьких полигонов. Хотя и без нормализации H он итак ужасен.

#40
1:54, 10 июня 2004

Я немного поправил... получше стало?

Zemedelec
>Тот глюк, которъй упомянул kroll нужно убрать.
я видимо туплю, не могу понять какой глюк?

#41
20:59, 10 июня 2004

и еще bug fixed.

#42
0:53, 27 июня 2004

>Джим Блинн придумал альтернативный способ вычисления бликового освещения, который устраняет дорогие
> вычисления над вектором отражения.
Дорогие вычисления над вектором отражения это видимо смешно :-) А формула выведена предполагая близкое к нормальному рапределение микронормалей.

> Эта функция описывает возможное отклонение нормали к поверхности от идеальной нормали N. Чем более эта
> функция пологая, тем большие отклонения допустимы и тем большей величины пятно отраженного блика.
> Необходимые нормали расположены вдоль вектора L+V и видимы в направлении V и находятся под углом (H•N) к
> зрителю.
Необходимые микронормали действительно расположены вдоль половинного вектора, соответственно под углом (H,V) к наблюдателю.

> Торренс и Спэрроу объединили эти множители и вывели формулу для подсчета бликового света
Эти множители объединили Кук и Торранс. А Торранс и Спарроу вывели формулу для геометрического затухания.

> действительности, в шейдере мы будем использовать другую формулу для расчета коэффициента Френеля из-за
> ограниченности инструкций. Замену предложил Шлик: F=Rs+(1–Rs)×(1–E•N)n где Rs — бликовое отражение,
Rs -- это не "бликовое отражение", а коэффициент Френеля при нормальном падении луча.

>Такая аппроксимация не учитывает соответственно \phi ... компоненты
А что учитывает E•N? :-)

#43
1:17, 27 июня 2004

#Ash#
>Да, модель освещения Блинна - вполне самомтоятельная, а никакая не "модификация".
В серьезной литературе иногда называется revised Phong function, так что можно сказать "модификация".

Paronator
> И то же самое можно сказать и: "бликовая модель освещения" и "модификация бликового освещения по Блинну".
Это не то же самое, что быстро объяснят в любом издании рецензенты. Ох, нету тут их на вас, вот и появляются "бликовые модели". Без обид, надеюсь :-) Статья получилась хорошая, только недоработанная.

#44
22:47, 30 июня 2004

Advanced Graphics Programming Techniques Using OpenGL
SIGGRAPH `98 Course
node108[8.5.1 Tangent Space]:
The process can be extended to find bump mapped specular highlights. The process is repeated, this time using the halfway vector (H) instead of the light vector. The halfway vector is computed by averaging the light and viewer vectors (L + H) / 2.

Так что я был прав...

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

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