Обратите внимание на то, как основной источник света в каждом изображении отражается от земли в зависимости от расстояния между источником света и зрителем (?).
Это (ударная) зеркальная карта? Эффект виден повсюду в World of Warcraft; Я особенно помню это на снегу в Дун Мороге и на берегах озера Дарроумер. Требуется смотреть прямо на солнце. Эффект также обычно на поверхности воды в RL и в CG. В частности, я хочу создать эффект, при котором отражение будет более интенсивным на поверхности земли ближе к источнику света и падает по мере приближения к зрителю.
shaders
lighting
terrain-rendering
инженер
источник
источник
Ответы:
Я думаю, что если бы я собирался создать такой шейдер, я бы начал с определенных явлений.
Во-первых, солнечный свет направлен, то есть у него нет положения и затухания.
Во-вторых, рассеянный компонент просто рассчитывается путем получения точечного произведения между направлением солнца и нормалями поверхности, добавление отображения нормалей может добавить к деталям.
Сложная часть моделирует направленную на солнце зеркальную составляющую. Поэтому, чтобы добиться подобного эффекта, я бы разбил его на более мелкие задачи:
Ax, Ay
в следующем уравнении Уорда .Куда:
X,Y
векторов, особенно в том, что касательное пространство настолько распространено в компьютерной графике, что может быть вычислено в любом механизме (обычно рассчитывается на основе текстурных координат).Обратите внимание на изображение, как зеркальное освещение является направленным в отличие от обычного зеркального света Фонга. Вот статья о модели Уорда и о том, как добиться различных эффектов. РЕДАКТИРОВАТЬ Более подробную информацию о пригодности BRDF с точки зрения снижения интенсивности света ближе к зрителю, можно найти здесь .
Наконец, еще одно (необязательно) два момента, которые, я думаю, могли бы добавить к окончательному изображению,
источник
Само отражение - это просто зеркальное отражение, которое вы получаете как результат функций вашей конкретной модели освещения.
Существует много разных моделей освещения разного уровня сложности, которые будут создавать форму отражения, подобную этой, но подобный вид уже может быть достигнут с помощью простой модели освещения blinn-phong , которая (сейчас), вероятно, является наиболее Базовая модель освещения, используемая графическими движками, и, скорее всего, также используемая World of Warcraft.
Он не будет физически корректным и полностью равным вашим изображениям, но будет выглядеть очень похоже . Пример Concept3D модели Ward более физически корректен и работает для более сложных типов поверхностей (а именно, для материалов, где микроскопические выпуклости на их поверхностях распределены неравномерно, но имеют разные распределения вероятностей), но я не знаю каких-либо конкретных примеров рендеров в реальном времени, которые используют его, из-за плохой выгоды с точки зрения качества / производительности.
На практике такие типы отражений на поверхностях дополняются дополнительными зеркальными / глянцевыми и нормальными текстурами, которые изменяют блеск / шероховатость поверхности и направление нормалей поверхности, соответственно, которые являются входными данными для уравнений освещения типичных моделей освещения. Это сделано потому, что в реальном мире физические свойства поверхности чаще всего (за исключением, может быть, чего-то вроде пластика или зеркала) не остаются одинаковыми по всей поверхности, но могут сильно различаться от пикселя к пикселю.
источник
Зеркальное отображение ударов (нормальное отображение) или отображение параллакса.
источник