Самозатенение - Self-shadowing

Самозатенение - это световой эффект компьютерной графики , используемый в приложениях для 3D- рендеринга, таких как компьютерная анимация и видеоигры . Самозатенение позволяет нестатическим объектам в окружающей среде, таким как игровые персонажи и интерактивные объекты (ведра, стулья и т. Д.), Отбрасывать тени на себя и друг друга. Например, без самозатенения, если персонаж кладет свою правую руку на левую, правая рука не будет отбрасывать тень на левую руку. Если тот же персонаж кладет руку на мяч , эта рука отбрасывает тень на мяч.

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

Методы самозатенения имеют компромисс между качеством и скоростью в зависимости от желаемого результата. Чтобы сохранить скорость, некоторые методы полагаются на быстрые решения с низким разрешением, что может привести к неправильным теням, которые могут быть неуместными в сцене. Другие требуют, чтобы ЦП и ГП с помощью алгоритмов вычисляли точное местоположение и форму тени с высоким уровнем точности. Это требует больших вычислительных затрат, с которыми старые машины справиться не могли.

Методы

Самозатенение поля высоты

Была создана техника, при которой тень на шероховатой поверхности может быть быстро вычислена путем нахождения высоких точек вдоль источника света и игнорирования любых других геометрических точек под пиками. Представьте восход солнца в горах, где свет падает на вершину позади вас, но вы все еще находитесь в темноте. Компьютеру не нужно беспокоиться о том, что вам нужна тень или свет, поскольку вы находитесь ниже пика позади вас. «Самозатенение поля высоты» визуализирует собственные тени на полях с динамической высотой в условиях динамического освещения в реальном времени.

3D волосы

Самозатенение можно использовать для интерактивной анимации волос, которую обычно очень сложно отобразить на компьютере из-за значительного увеличения отдельных геометрических форм, которые могут принимать волосы. Самозатенение - основная часть 3D-приложения, которая способствует созданию впечатления объема.

Объем тени

Объем тени - это один из способов использования самозатенения в трехмерном изображении или сцене. Этот метод в основном заставляет трехмерный объект занимать замкнутый объем сцены, в которой отбрасывается тень. Это позволяет рендереру или шейдеру выполнять анализ того, находится ли точка или пиксель внутри затененной области. Это в конечном итоге позволяет программе определять, как объект будет освещен.

Карты теней

Трехмерное отображение теней - это еще один метод, который создает приблизительные тени из заданного положения для создания очень размытых теней, которые могут быть не совсем точными.

Картирование нормального излучения

Крис Грин из Valve , производитель видеоигр , говорит, что данные карты рельефа получаются из геометрических описаний поверхности объектов. Значимые световые сигналы из-за перекрытия освещения деталями поверхности не вычисляются. Распространенное исправление - использование дополнительного канала текстуры для создания поля внешней окклюзии . Это обеспечивает только эффект затемнения, который не связан с направлением источника света, воздействующего на поверхность.

История

Объем теней был предложен Фрэнком Кроу в 1977 году. Преимущество теневого объема состояло в том, что его можно было использовать для затенения всего, включая самого себя.

Смотрите также

использованная литература