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

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

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

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

Методы

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

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

3D волосы

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

Объем тени

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

Карты теней

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

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

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

История

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

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

Рекомендации

  1. ^ Тимонен, В., и Вестерхольм, Дж. (2010). Самозатенение масштабируемого поля высоты. Форум компьютерной графики, 29 (2), 723-731. DOI: 10.1111 / j.1467-8659.2009.01642.x
  2. ^ Bertails, F., Ménier, C., & Cani, M.-P. (2005, май). Практичный алгоритм самозатенения для интерактивной анимации волос.. (PDF )
  3. ^ а б Грин, Крис. «Эффективное самозатененное отображение нормалей Radiosity» (PDF). valveoftware.com. Архивировано из оригинал (PDF ) 16 марта 2015 г.
  4. ^ Кроу, Франклин С: «Алгоритмы теней для компьютерной графики», Компьютерная графика (Материалы SIGGRAPH '77), т. 11, вып. 2, 242-248.