PDA

Просмотр полной версии : Есть у нас программисты 3D графики/gamedevы?


awaken
13.06.2012, 16:06
Вопрос к знающим - что такое сглаживание нормалей, и как посчитать нормали в точках ?
имеется в виду не знание конкретного АПИ (например опенГЛ) а самих алгоритмов
примерный алгоритм я знаю таков - нормаль в точке это среднее арифметическое от нормалей ко всем полигонам(треугольникам), в которые входит данная точка
но "усредненный" расчет дает не очень красивый результат.
есть еще варианты?

awaken
26.06.2012, 13:06
жаль никто не в теме
вот че я делаю:
затенение обеспечивается за счет просчитанных нормалей в вершинах

http://savepic.net/3008349m.png (http://savepic.net/3008349.jpg)

E69
26.06.2012, 14:20
В чем вообще смысл нормали в вершине? С точки зрения математики, для точки излома поверхности не существует касательной плоскости, равно как и нормали.

awaken
26.06.2012, 14:44
с точки зрения математики как раз все объяснимо:
если через точки триангулированной(разбитой на треугольники) поверхность провести воображаемую гладкую(непрерывную) поверхность, то нормаль это перпендикуляр к касательной в этой точке


смысл нормали в вершине в том что по ней просчитывается затенение при отображении 3Д поверхности, иначе все будет "плоско" и одним цветом.
собственно на картинке эти нормали палочками показываются
к слову, не все форматы 3Д содержат нормали. 3DS например их не содержит, они рассчитываются программами при загрузке геометрии из файла

Добавлено через 5 минут
ошибочно выбранный алгоритм при расчете нормалей дает неприятные артефакты при визуализации. вот этих светящихся углов и квадратов на темном фоне быть не должно

собственно это знакомо и тем кто делал модели в максе для МСТС :-) только там ошибка скорее всего в конверторе

http://savepic.net/2977623m.png (http://savepic.net/2977623.jpg)