Новости
Главные новости
Ambient Occlusion
Ambient Occlusion |
Предлагаем вашему вниманию перевод статьи опубликованной Бобом Моером, которая посвящена Ambient OcclusionВ связи с тем, что стандартная модель освещения не принимает во внимание диффузное отражение (передача отраженного света от одной поверхности к другой), освещение в 3D программах имеет тенденцию быть более темным чем реальное освещение. Для устранения этой проблемы необходимо увеличить освещенность. Наиболее физически корректный способ добиться необходимого результата, это добавить в математический расчет света ambient составляющую ... В связи с тем, что стандартная модель освещения не принимает во внимание диффузное отражение (передача отраженного света от одной поверхности к другой), освещение в 3D программах имеет тенденцию быть более темным чем реальное освещение. Для устранения этой проблемы необходимо увеличить освещенность. Наиболее физически корректный способ добиться необходимого результата, это добавить в математический расчет света ambient (окружающую) составляющую. Ambient составляющая задает величину и цвет однородно ко всей поверхности, гарантируя этим отсутствие черных точек на объекте. Концепция окружающего освещения использовалась с самого появления компьютерной графики, но в значительной мере вышла из употребления. Однородность заставляет объекты выглядеть более плоскими, и не принимает во внимание разломы, делает тени более размытыми и нечеткими. Следовательно, студии типа Pixar заменяли ambient свет большим количеством диффузных источников освещения ..., на рендеринг которых требуется намного больше времени. В 2002 г. на SIGGRAPH была представлена технология называемая ambient occlusion (окружающее акклюдирование). Простое, но очень эффективное, ambient occlusion использовалось в течение многих лет в студиях подобно BlueS/ky и ILM для достижения реализма без использования GI (глобального освещения).
Как работает ambient occlusion ?
Пример написания шейдера Рассмотрим самый простой пример ambient occlusion шейдера, написанного в Renderman© SL. (откомпилировано в PRMan© 11 версии) Синим отмечены зарезервированные переменные Renderman©, a зеленым внутренние функции Renderman©. surface amb_occ (float samples = 1; color Camb = 1) { Ci = Camb * sum; Наш шейдер использует число лучей (количество между 16 и 128 для начала будет достаточно), и цвет для обратного умножения (универсально - белый). Рассчитываем направление отражения и нормализируем нормали, затем переходим к PRMan© овскому циклу. Если Вы работаете с BMRT или Entropy©, можно написать этот цикл вручную ..., он по существу вычисляет распространение лучей согласно косинусоидального распределения , и возвращает результат попал луч или нет. Операция которая выполняется при отсутствии попадания луча выполняется послу слова else, где получаем сумму, которая в последствии вычитается из 1, упомянутой в пункте 3 работы ambient occlusion. После окончания выполнения цикла мы делим полученную сумму на количество первоначальных лучей и умножаем полученный результат на цвет и получаем финальный цвет Практическое применение При использовании ambient occlusion в более мощьном шейдере будет заметно, что этот процесс очень требовательный к вычислительной мощности. Следовательно, было бы более правильно делать сделать один проход ambient occlusion , а потом улучшать результат за счет текстурирования или создания составного изображения на выходе. Например, можно сделать проход ambient occlusion, диффузный проход и затем проход ambient цвета.
Заранее извиняемся за отечапки и неточности перевода Автор: Bob Moyer Использован материал с www-viz.tamu.edu [ENG] Комментарии разрешено оставлять только зарегистрированным пользователям. 2306
|
||||||||||||||||||||
Теги / Tags:
3D Renderman Prman Ambient Occlusion script
| < Пред. | След. > |
|---|




Предлагаем вашему вниманию перевод статьи опубликованной Бобом Моером, которая посвящена Ambient Occlusion
Написать первый комментарий