Нет, на самом деле все, конечно же, обстоит не так, и я сторонник того, что Господь не придумал факультетов. Багровый ambient – это всего лишь жалкая попытка нас, нервически дергающих ножкой, смоделировать закат на экранах наших мониторов. Так будет правильней.
Говоря о том, что что-то там с чем-то взаимодействует, я имею в виду вот что. Разные материалы при освещении одним и тем же светом ведут себя совершенно по-разному. Например, светлая сосна, если светить на нее, будет освещаться в целом равномерно, а, скажем, темный орех будет иметь характерное круглое световое пятно. Это говорит о том, что материалы по-разному реагируют на свет. Можно рассматривать аддитивную модель взаимодействия, когда, например, diffuse-цвет света складывается с diffuse-цветом материала, что дает результирующий цвет в освещенной точке. Из имеющих названия бывает еще модулятивная модель. А вообще говоря, модель взаимодействия компонент материала с компонентами света называется blending, и их бывает много разных типов.
В нашем проекте мы, разумеется, не обращаемся напрямую к OpenGL API, а используем opensource-3D-движок OGRE (http://www.ogre3d.org/). Когда он рендерит сцену, внутри него происходит деление материала на т.н. illumination passes. Грубо говоря, ему удобней просчитывать освещенность в несколько проходов: в первом (ambient pass) считаются ambient-компоненты материалов, полученные в результате освещения источниками света, находящимися в сцене; во втором (per-light pass) – diffuse и specular-компоненты; в третьем проходе (decal pass) обрабатываются текстуры. Кстати, это верно только для непрозрачных материалов; всякие там стекла на проходы не делятся, да и рендерятся они совсем по-другому, поскольку необходимо рисовать на экране также то, что находится за ними.
Напоследок – несколько картинок:
Сцена после ambient-прохода
Сцена после всех проходов
Сцена после всех проходов + наложение теней
Итог прост. Цвет объекта образуется во взаимодействии трех компонент света с тремя компонентами материала. В следующий раз я расскажу о том, во что выливается вся эта история с материалами и светом лично для меня и для нашего проекта.
0 коммент. | добавить комментарий :: Свет
Отправить комментарий