Самозатенение - это световой эффект компьютерной графики , используемый в приложениях для 3D- рендеринга, таких как компьютерная анимация и видеоигры . Самозатенение позволяет нестатическим объектам в окружающей среде, таким как игровые персонажи и интерактивные объекты (ведра, стулья и т. Д.), Отбрасывать тени на себя и друг друга. Например, без самозатенения, если персонаж кладет свою правую руку на левую, правая рука не будет отбрасывать тень на левую руку. Если тот же персонаж кладет руку на мяч , эта рука отбрасывает тень на мяч.
Следует указать, является ли отбрасываемая тень динамической или статической. Стена с тенью на ней - статичная тень. Стена не движется, поэтому ее геометрическая форма не будет перемещаться или меняться в сцене. Динамическая тень - это нечто, геометрия которой изменяется внутри сцены.
Методы самозатенения имеют компромисс между качеством и скоростью в зависимости от желаемого результата. Чтобы сохранить скорость, некоторые методы полагаются на быстрые решения с низким разрешением, что может привести к появлению неверно выглядящих теней, которые могут быть неуместными в сцене. Другие требуют, чтобы ЦП и ГП с помощью алгоритмов вычисляли точное местоположение и форму тени с высоким уровнем точности. Это требует больших вычислительных затрат, с которыми старые машины справиться не могли.
Методы
Самозатенение поля высоты
Была создана техника, при которой тень на шероховатой поверхности может быть быстро рассчитана путем нахождения высоких точек вдоль источника света и игнорирования любых других геометрических точек под пиками. Представьте восход солнца в горах, где свет падает на вершину позади вас, но вы все еще находитесь в темноте. Компьютеру не нужно беспокоиться о том, что вам нужна тень или свет, поскольку вы находитесь ниже пика позади вас. «Самозатенение поля высоты» визуализирует собственные тени на полях с динамической высотой в условиях динамического освещения в реальном времени. [1]
3D волосы
Самозатенение можно использовать для интерактивной анимации волос, которую обычно очень сложно отобразить на компьютере из-за значительного увеличения отдельных геометрических форм, которые могут принимать волосы. Самозатенение - основная часть 3D-приложения, которая способствует созданию впечатления объема. [2]
Объем тени
Объем тени - это один из способов использования самозатенения в трехмерном изображении или сцене. Этот метод в основном заставляет трехмерный объект занимать замкнутый объем сцены, на которую отбрасывается тень. Это позволяет рендереру или шейдеру выполнять анализ того, находится ли точка или пиксель внутри затененной области. Это в конечном итоге позволяет программе определять, как объект будет освещен.
Карты теней
Трехмерное наложение теней - это еще один метод, который создает приблизительные тени из заданного положения для создания очень размытых теней, которые могут быть не совсем точными.
Картирование нормального излучения
Крис Грин из Valve , производитель видеоигр , говорит, что данные карты рельефа получаются из геометрических описаний поверхности объектов. Значимые световые сигналы из-за перекрытия освещения деталями поверхности не вычисляются. [3] Распространенное исправление - использование дополнительного канала текстуры для создания поля окклюзии окружающей среды . Это обеспечивает только эффект затемнения, который не связан с направлением источника света, воздействующего на поверхность. [3]
История
Объем теней был предложен Фрэнком Кроу в 1977 году. [4] Преимущество теневого объема состояло в том, что его можно было использовать для затенения всего, включая самого себя.
Смотрите также
- Отображение теней
- Объем тени
- Единое освещение и затенение
Рекомендации
- ^ Timonen В., & Westerholm, J. (2010). Самозатенение масштабируемого поля высоты. Форум компьютерной графики, 29 (2), 723-731. DOI: 10.1111 / j.1467-8659.2009.01642.x
- ^ Bertails, Ф. Менье, К., и Кани, M.-P. (2005, май). Практичный алгоритм самозатенения для интерактивной анимации волос . ( PDF )
- ^ а б Грин, Крис. «Эффективное самозатененное отображение нормалей Radiosity» (PDF) . valveoftware.com . Архивировано из оригинального ( PDF ) 16 марта 2015 года.
- ^ Кроу, Франклин C: «Алгоритмы теней для компьютерной графики», Computer Graphics (SIGGRAPH '77 Proceedings) , vol. 11, вып. 2, 242-248.