Камеры, глубина и проходы
Как настроить камеру, вытащить дополнительные буферы и собрать кадр из нескольких рендеров.
Камера в TouchDesigner — обычный компонент с положением и параметрами проекции. От её настроек зависит и картинка, и точность глубины.
Camera COMP
| Параметр | Что делает |
|---|---|
Projection |
Перспектива или ортографика |
FOV / Ortho Width |
Угол обзора или ширина в ортографике |
Near / Far |
Ближняя и дальняя плоскости отсечения |
Look At |
Смотреть на другой объект — проще, чем считать углы |
Viewport Shift |
Сдвиг кадра без поворота: нужен для проекции и стерео |
Точность буфера глубины распределена нелинейно. Near = 0.001 и
Far = 100000 гарантируют z-fighting: поверхности начнут мерцать.
Ставьте их по реальным размерам сцены — разница в качестве драматична.
Look At
Вместо того чтобы считать повороты, задайте камере Look At на пустой
Null COMP и двигайте его. Тот же приём работает для света и для
наведения приборов —
логика одинаковая.
Дополнительные буферы
Render TOP может отдавать не только цвет. Через Render Select TOP
доступны:
- глубина — расстояние до камеры;
- нормали — направление поверхности;
- позиция в мире;
- идентификаторы объектов.
Что с этим делают:
| Буфер | Применение |
|---|---|
| Глубина | Туман, затемнение по расстоянию, композитинг с фоном, DOF |
| Нормали | Переосвещение в 2D, эффекты по форме |
| ID | Маска конкретного объекта без второго рендера |
Это дешевле, чем рендерить сцену несколько раз, и это же роднит рендер с картами глубины из нейросетей — обрабатываются они одинаково.
Несколько проходов
Типовая раскладка сложной сцены:
render_bg (низкое разрешение, редкий кук)
render_main (полное разрешение)
render_fx (частицы, отдельно — чтобы размывать)
│
composite ──▶ out
Каждый проход можно считать в своём разрешении и в своём формате пикселя. Фон, который не меняется, вообще стоит заморозить.
Несколько камер
Render TOP принимает список камер. Применения:
- кубическая карта для окружения и панорам;
- стерео — два глаза с параллаксом;
- многоэкранная проекция: одна сцена, несколько камер, каждая в свой выход — Проекторы.
Для многоэкранного случая важен Viewport Shift: соседние проекторы
показывают части одной картинки, а не разные повороты камеры. Поворот вместо
сдвига даёт разрыв геометрии на стыке.