Отражение в компьютерной графике используется для визуализации отражающих объектов, таких как зеркала и блестящие поверхности.
Точные отражения обычно вычисляются с помощью трассировки лучей , тогда как приблизительные отражения обычно можно вычислить быстрее, используя более простые методы, такие как картографирование окружающей среды . Отражения на блестящих поверхностях, таких как дерево или плитка, могут добавить фотореалистичных эффектов 3D-рендерингу .
Для рендеринга отражений окружающей среды существует множество методов, которые различаются точностью, вычислительной сложностью и сложностью реализации. Также возможно сочетание этих методов.
Алгоритмы рендеринга порядка изображений , основанные на отслеживании лучей света, такие как трассировка лучей или трассировка пути , обычно вычисляют точные отражения от обычных поверхностей, включая множественные отражения и самоотражения. Однако эти алгоритмы, как правило, все еще слишком дороги в вычислительном отношении для рендеринга в реальном времени (даже несмотря на то, что существуют специализированные аппаратные средства, такие как Nvidia RTX ) и требуют другого подхода к рендерингу, чем обычно используемая растеризация .
Отражения на плоских поверхностях, таких как плоские зеркала или водные поверхности, можно просто и точно вычислить в реальном времени с помощью двухпроходного рендеринга — один для зрителя, другой для вида в зеркале, обычно с помощью трафаретного буфера . [1] В некоторых старых видеоиграх использовался трюк для достижения этого эффекта с помощью рендеринга за один проход, помещая всю зеркальную сцену за прозрачную плоскость, представляющую зеркало. [2]
Отражения на неплоских (изогнутых) поверхностях сложнее рендерить в реальном времени. Основные используемые подходы включают в себя:
- Полированное отражение – это ненарушенное отражение, подобное зеркалу или хромированной поверхности.
- Размытое отражение означает, что крошечные случайные неровности на поверхности материала делают отражение размытым.
- Отражение считается металлическим, если блики и отражения сохраняют цвет отражающего объекта.
- Этот термин можно использовать неправильно: иногда это настройка, противоположная размытию (например, когда «глянцевость» имеет низкое значение, отражение получается размытым). Иногда этот термин используется как синоним «размытого отражения». Глянцевый, используемый в этом контексте, означает, что отражение на самом деле размыто.
Зеркала обычно отражают почти 100%.
Обычные (неметаллические) объекты отражают свет и цвета исходного цвета отражаемого объекта. Металлические объекты отражают свет и цвета, которые зависят от цвета самого металлического объекта.
Многие материалы являются несовершенными отражателями, в которых отражения в различной степени размыты из-за шероховатости поверхности, рассеивающей лучи отражений.
Полностью глянцевое отражение, показывает блики от источников света, но не показывает четкое отражение от объектов.
Эффект мокрого пола [5] [ нужен лучший источник ] — это техника графических эффектов , популярная в сочетании со страницами стиля Web 2.0 , особенно в логотипах . Эффект можно создать вручную или создать с помощью вспомогательного инструмента, который можно установить для автоматического создания эффекта. В отличие от стандартного компьютерного отражения (и эффекта воды Java, популярного в веб- графике первого поколения ), эффект мокрого пола включает в себя градиент и часто наклон отражения, так что зеркальное изображение кажется парящим или покоящимся на мокрой поверхности. пол.