3D Studio MAX: первые шаги. Урок 14. Камеры в сцене
Примеры настройки камеры в статичных сценах
Выбор удачной точки обзора сцены с учетом глубины резкости
Перемещение по прямолинейной траектории
Слежение за движущимся объектом
Облет по криволинейной траектории
На практике чаще всего недостаточно просто смоделировать сцену с текстурированными объектами и настроить ее освещение — нужно показать сцену в определенном ракурсе, а это невозможно без настройки камеры. Удачно расположив камеру, можно добиться того, что сцена станет более реалистичной, информативной и привлекательной, а возможно, например в случае использования при визуализации эффектов окружения, и таинственной. Кроме того, камеры незаменимы при создании анимации, ведь благодаря им появляется возможность продемонстрировать в ролике сцену в разных ракурсах, например сымитировать облет сцены или плавное перемещение по некоторому маршруту. Основы применения камер мы и рассмотрим в данном уроке.
Теоретические аспекты
Расположение камеры определяет композицию финального изображения сцены, подчеркивая главные и опуская второстепенные детали. Размещение камеры на уровне происходящего в сцене действия создает у зрителя ощущение участия в сцене — данный прием эффективен при создании анимаций, в ходе которых предполагается осмотр отдельных элементов сцены с близкого расстояния. Размещение камеры высоко над сценой создает ощущение отстраненности и позволяет наблюдать за сценой со стороны, поэтому практикуется при отображении масштабных объектов или сцен с большим количеством действующих персонажей. В случае расположения камеры у земли у зрителя создается впечатление, что его окружают предметы гигантских размеров, — такой прием применяется для визуального увеличения высоты персонажей.
Камера — это невизуализируемый объект, который отображает сцену с определенной точки обзора. Теоретически выбрать нужную точку обзора можно вручную в окне проекции Perspective, но это не очень удобно, к тому же при этом отсутствует возможность точной регулировки параметров обзора.
В 3 D Studio MAX используются камеры двух типов (рис. 1):
- TargetCamera (Нацеленная камера) — состоит из двух элементов: самой камеры и точки цели, или, как часто говорят, мишени (Target), определяющей ориентацию камеры. Данные компоненты настраиваются независимо друг от друга, при этом камера всегда остается направленной на цель, поэтому ее проще точно установить и нацелить. Однако нацеленные камеры ограничены во вращении из-за необходимости поддерживать направление на цель, что может стать препятствием при создании некоторых анимаций;
- FreeCamera (Свободная камера) — состоит из одного элемента — камеры и настраивается как единый объект. Данные камеры сложнее установить и нацелить, поскольку они не имеют цели, на которую необходимо смотреть, зато они не ограничены во вращении, поэтому лучше подходят для сложных анимаций, например перелетов по сцене по сложной извилистой траектории.
Рис. 1. Типы камер: нацеленная камера (слева), свободная камера
За создание камер отвечает категория Cameras (Камеры) панели Create (Создать) — рис. 2, при выборе которой становятся доступны оба типа камер. Технология их создания напоминает создание объектов геометрии. Нужно выбрать тип камеры и либо просто щелкнуть в точке ее создания в одном из окон проекций (FreeCamera), либо перетащить мышь при нажатой левой кнопке, указав, таким образом, не только местоположение камеры, но и ее Target-точку. Созданным камерам (так же, как и объектам геометрии) присваиваются имена: Camera01, Camera02 и т.п., которые лучше заменять на более информативные. Любую камеру можно перемещать и вращать на видовых экранах так же, как и другие стандартные объекты. Теоретически камеры можно и масштабировать, но делать это не рекомендуется, поскольку возможно искажение настроек. Обзор камеры, определяющий вид отображения сцены, зависит от ее положения, ориентации и параметров и всегда ограничен ее полем зрения (то есть областью сцены, видимой наблюдателю). Поле зрения камеры имеет форму пирамиды: в ее вершине находится сама камера, а в центре основания (в случае нацеленной камеры) — ее точка цели.
Рис. 2. Категория Cameras
Чтобы посмотреть, как выглядит сцена с точки зрения конкретной камеры, нужно щелкнуть на названии рабочего окна проекции и из ниспадающего меню выбрать команду Views=>Camera (Отображение=>Камера) или нажать клавишу C — это приведет к замене рабочего окна конкретной проекции окном проекции камеры. Если в сцене присутствует более одной камеры и ни одна из них не выделена, то появится диалоговое окно выбора камеры из списка, где следует указать требуемую камеру. Нередко выделить камеру, а тем более ее цель бывает сложно, например цель, как правило, расположена за объектами сцены — в таких случаях стоит выделять нужный объект через команду Select by Name (Выделить по имени). Кроме того, мишень можно выделить, выделив саму камеру, щелкнув на ней правой кнопкой и выполнив команду Select CameraTarget из всплывающего меню.
Управление камерами
Для управления окном проекции камеры предназначена специальная панель, появляющаяся в нижней части программного окна вместо стандартной навигационной панели. Имеющиеся на ней кнопки позволяют задавать точное положение и ориентацию камер и осуществлять их анимацию (рис. 3):
Рис. 3. Панель управления окном проекции камеры
- DollyCamera/DollyCamera + Target/DollyTarget (Откат камеры/Откат камеры и мишени/Откат мишени) — перемещает камеру (либо камеру с мишенью, либо мишень) вдоль ее локальной оси к остающейся неподвижной точке цели, фокусное расстояние объектива не изменяется;
- Perspective (Перспектива) — осуществляет откат камеры с одновременным изменением ее фокусного расстояния;
- RollCamera (Крен камеры) — поворачивает камеру вокруг ее локальной оси так, что создается впечатление наклона снимаемой камерой сцены;
- Field of View (Поле зрения) — изменяет ширину поля зрения; положение камеры и цели не меняются. При увеличении поля зрения вид сцены раздвигается, а перспектива подчеркивается сильнее, при сужении — перспектива становится более плоской и кажется, что глубина сцены уменьшается;
- TruckCamera (Сопровождение камеры) — перемещает камеру и мишень параллельно плоскости окна проекции камеры; угол зрения и расстояние от камеры до цели не меняются. Получается, что камера как бы следит за объектом, передвигаясь в горизонтальной и вертикальной плоскостях;
- OrbitCamera (Орбитальное вращение камеры) — поворачивает камеру вокруг мишени по орбите, то есть камера совершает облет вокруг цели. При этом создается ощущение, что объекты сцены тоже вращаются вокруг мишени камеры;
- PanCamera (Панорамное вращение камеры) — поворачивает мишень по орбите вокруг камеры.
Свободные камеры при применении команд Dolly, Truck, Pan и Orbit используют виртуальные мишени.
Параметры настройки камер
Параметры камер либо устанавливаются сразу при их создании на панели Create, либо изменяются позднее через панель Modify. Основные параметры настройки камер находятся в свитке Parameters (Параметры) — рис. 4, уточним их назначение:
- взаимосвязанные счетчики Lens (Фокусное расстояние объектива) и FOV (Поле зрения) — управляют величиной поля зрения камеры: при увеличении фокусного расстояния значение счетчика FOV уменьшается, а поле зрения соответственно сужается, и наоборот. Поле зрения может измеряться по горизонтали, по вертикали или по диагонали в зависимости от установленного режима, который выбирается через выпадающее меню (кнопка со стрелкой слева от параметра FOV);
- панель StockLenses (Набор объективов) — представляет собой альтернативный вариант установки поля зрения посредством выбора одного из стандартных объективов с фокусными расстояниями от 15 до 200 мм. Фокусное расстояние человеческого глаза составляет 50 мм, поэтому обзор сцены, полученный объективом с таким фокусным расстоянием, обеспечивает наиболее естественное для человеческого глаза отображение сцены. Линзы размером меньше 50 мм (их называют широкоугольными) имеют большее поле обзора и приводят к преувеличению перспективы. Как правило, широкоугольные объективы используются при отображении больших сцен и сцен, в которых объектам необходимо придать большую значительность или масштабность. Очень маленькие линзы — размером 10-15 мм — способны охватить очень большие сцены, но их применение ведет к сильным искажениям (к эффекту рыбьего глаза), особенно явным по краям сцены. Линзы с фокусным расстоянием более 50 мм (длиннофокусные) отличаются меньшим полем обзора — они могут охватить лишь небольшой угол сцены и уменьшают перспективу вплоть до ее полного уплощения. Длиннофокусные объективы обычно применяются при съемке удаленных объектов, потому данный вариант объектива в 3D Studio MAX может потребоваться для придания реалистичности подобным сценам. Кроме того, длиннофокусные объективы могут использоваться для усиления общего драматизма и напряжения сцены за счет ее сжатия и приближения главного героя к зрителю;
- выпадающий список Type (Тип) — позволяет изменить тип камеры с Target на Free уже после ее создания;
- группа настроек ClippingPlanes (Плоскости отсечения) — представлена параметрами Near Clip (Ближняя плоскость отсечения) и Far Clip (Дальняя плоскость отсечения), определяющими расстояния от камеры до соответствующих плоскостей, — рис. 5. Плоскости отсечения ограничивают в пространстве поле зрения камеры — камера видит только те объекты (или части объектов), которые расположены между плоскостями NearClip и FarClip. Объекты, оказавшиеся вне поля зрения камеры, станут невидимыми и не будут визуализироваться, поэтому плоскости отсечения разумно использовать для ускорения отладочных визуализаций сцены, а также для того, чтобы взглянуть на геометрию сцены изнутри, что актуально, например, при создании сечений строений, механизмов и пр. По умолчанию плоскости отсечения не отображаются в окнах проекций — для включения отображения следует активировать флажок Clip Manually;
- группа настроек EnvironmentRanges (Диапазоны влияния окружающей среды) — представлена параметрами NearRange (Ближняя граница) и FarRange (Дальняя граница) — рис. 6. Данные границы, являющиеся плоскостями, используются для ограничения зоны отображения таких эффектов окружения, как туман (Fog), объемный свет (VolumeLight) и пр. (с ними мы познакомимся в следующем уроке). По умолчанию границы не отображаются в окнах проекций — для включения отображения следует активировать флажок Show;
- группа настроек Multi-PassEffects (Многопроходные эффекты) — позволяет имитировать работу настоящей камеры посредством размытия по глубине резкости (Depthoffield) и размытия движения (Motionblur). Первый вариант используется для статичных изображений — он обеспечивает размытие фрагментов сцены, находящихся вне фокуса камеры. Второй — для анимации: с его помощью быстро движущиеся объекты получаются размытыми (как на снимке или в кинокадре), благодаря чему движение выглядит более естественно.
Рис. 4. Свиток Parameters
Рис. 5. Вид сцены без отображения плоскостей отсечения (слева) и с их отображением
Рис. 6. Вид сцены без отображения ближней и дальней границ (слева) и с их отображением
Кроме того, в свитке Parameters имеется ряд переключателей:
- OrthographicProjection — включает/выключает ортографическую проекцию, в которой отсутствует перспектива и все объекты отображаются точно под углом в 90°;
- ShowCone — включает/выключает отображение в окне проекции зоны FOV даже для неактивной камеры;
- ShowHorizon — делает линию горизонта видимой или невидимой.
Создание и настройка камеры
Для примера создайте сцену с несколькими примитивами — рендеринг сцены в проекции Perspective представлен на рис. 7. Попробуем получить такой же вид сцены с помощью камеры. Для создания камеры откройте на панели Create категорию Cameras (Камеры), щелкните по кнопке Target (Нацеленная камера) и создайте камеру в окне проекции Тор, щелкнув мышью в точке желаемого местоположения камеры и перетащив курсор на цель (рис. 8). Перейдите в окно проекции Perspective, нажмите на клавишу С и увидите, как выглядит сцена из созданной камеры (рис. 9). К сожалению, начальное положение камеры оказалось неудачным, так как сцена показана явно не в нужном ракурсе. Попробуем изменить положение камеры так, чтобы в фокусе оказался чайник. Для этого вначале вернитесь в проекцию Top, выделите камеру с мишенью, перетащите ее слегка вправо и разверните так, чтобы она смотрела на сцену в направлении чайника. А затем нацельте камеру на чайник, для чего требуется выделить мишень и перетащить ее прямо на чайник (рис. 10). Перемещая мишень в проекции Top, наблюдайте за видом сцены из проекции камеры, чтобы выбрать наилучшее положение мишени. Если выделить мишень обычным образом мышью проблематично (из-за скопления объектов в точке ее расположения), можно выделить камеру, щелкнуть на ней правой кнопкой мыши и из всплывающего меню выбрать команду Select CameraTarget.
Рис. 7. Исходная сцена в проекции Perspective
Рис. 8. Создание нацеленной камеры
Рис. 9. Начальный вид сцены из камеры
Рис. 10. Нацеливание камеры на чайник
Перейдите в проекцию камеры, в панели управления камерами активируйте команду TruckCamera (Сопровождение камеры) и немного переместите камеру и мишень параллельно плоскости поля зрения так, чтобы показать сцену под небольшим углом (рис. 11). Щелкните на кнопке DollyCamera (Откат камеры) и немного приблизьте камеру к объектам (рис. 12). По окончании в проекции Left инструментом Select and Move переместите камеру немного вверх (рис. 13) — в итоге вид отображения сцены станет примерно таким же, каким был изначально в окне Perspective.
Рис. 11. Перемещение камеры с мишенью при помощи команды TruckCamera
Рис. 12. Откат камеры к объектам
Рис. 13. Перемещение камеры инструментом Select and Move
Немного поэкспериментируем с настройками камеры в свитке Parameters панели Modify. Увеличьте значение фокусного расстояния, введя в поле Lens, например, число 85, — это автоматически приведет к уменьшению значения параметра FOV и соответственно к сужению поля зрения (что видно по уменьшению основания пирамиды), в результате чего объекты в окне проекции камеры приблизятся (рис. 14). Откажитесь от изменений, а затем выберите на панели StockLenses стандартный объектив с фокусным расстоянием 85 мм — результат будет тот же самый.
Рис. 14. Вид сцены с исходным (слева) и увеличенным фокусным расстоянием
Теперь установите стандартный объектив с фокусным расстоянием 50 мм, для сохранения размера объектов без изменений переместите камеру ближе к объекту и визуализируйте сцену. Затем смените объектив на широкоугольный в 15 мм, отрегулируйте положение камеры для примерного сохранения размеров объектов и визуализируйте сцену. По окончании установите длиннофокусный объектив в 200 мм, также отрегулируйте положение камеры и проведите рендеринг. Если сравнить между собой результаты визуализации, то окажется, что в первом случае пропорции объектов естественны, а во втором и третьем — сильно искажены: во втором наблюдается эффект рыбьего глаза (при большем поле обзора), а в третьем (при меньшем поле обзора) — перспектива практически плоская (рис. 15). Получается, что уменьшение фокусного расстояния позволяет увеличить поле зрения и захват камеры (в поле обзора которой попадет больше объектов), но при чрезмерном уменьшении приводит к появлению эффекта рыбьего глаза. А увеличение фокусного расстояния уменьшает поле зрения и соответственно захват камеры (которая отображает меньшее пространство сцены), но чрезмерное увеличение приводит к нереально плоской перспективе.
Рис. 15. Визуализация сцены при разном фокусном расстоянии: 50 мм (слева),— 15 мм (в центре), 200 мм (справа)
Рассмотрим, как влияет на вид сцены добавление плоскостей отсечения. Выделите камеру и в группе ClippingPlanes (Плоскости отсечения) установите флажок ClipManually (Отсечение вручную) — это приведет к появлению дальней плоскости (она представлена прямоугольником с красными диагоналями). Ближняя плоскость отсечения изначально не видна, поскольку по умолчанию она находится на нулевом расстоянии от камеры. Установите для параметров NearClip (Ближняя плоскость отсечения) и FarClip (Дальняя плоскость отсечения) такие значения, чтобы ближняя плоскость отсекла небольшой фрагмент передней части сцены, а дальняя — часть заднего плана (рис. 16). Обратите внимание, что области, находящиеся за дальней или перед ближней плоскостью отсечения, в окне проекции камеры стали невидимыми (рис. 17).
Рис. 16. Возможное положение плоскостей отсечения
Рис. 17. Возможный вид сцены: исходный (слева) и с ограничивающими плоскостями
Прежде чем переходить к примерам, рассмотрим особенности расфокусировки сцены на примере размытия по глубине резкости (Depthoffield), когда размываются передний и задний планы сцены в зависимости от установленной точки фокусировки. Включите многопроходную визуализацию, активировав в группе Multi-PassEffects (Многопроходные эффекты) свитка Parameters (Параметры) флажок Enable (Разрешить), и выберите метод DepthofField. Проведите рендеринг — изображение визуализируется не сразу, а будет проявляться постепенно, при этом процесс рендеринга займет гораздо больше времени. В конечном счете объекты, расположенные перед точкой фокуса и за ней, окажутся слегка размытыми, зато вид сцены будет более естественным (рис. 18). Теоретически результат можно было просмотреть прямо в окне проекции камеры, перейдя в полноэкранный режим работы (кнопка Min/MaxToggle) и щелкнув на кнопке Preview. Увеличьте значение параметра SampleRadius (Радиус выборки) до 2 и вновь визуализируйте сцену — размытие усилится (рис. 19).
Рис. 18. Результат визуализации сцены: исходный вид (слева) и после стандартного размытия
Рис. 19. Вид сцены после усиленного размытия
Примеры настройки камеры в статичных сценах
Выбор удачной точки обзора сцены с учетом глубины резкости
Создайте произвольную сцену с большим числом объектов — лучше, если это будет один и тот же многократно продублированный объект (в данном случае мы остановились на шахматной доске с множеством пешек). Наша задача — выбрать наиболее удачную точку обзора сцены с учетом фокусного расстояния и глубины резкости. Последнее не менее важно, так как особенности строения человеческого глаза таковы, что четкими могут быть лишь объекты, попавшие в фокус, остальные в той или иной степени размыты.
Создайте плоскость, наложите на нее шахматный материал. В левом верхнем углу плоскости поместите любой небольшой объект, включая обычный примитив (рис. 20). Выделите созданный объект и создайте на его основе массив объектов, применив команду Tools=>Array (Инструменты=>Массив), активизируйте флажок 2D и определите число объектов в ряду и смещение их друг относительно друга по оси X (рис. 21) — появится первый ряд объектов. Выделите все объекты ряда и вновь примените к ним команду Tools=>Array, но уже со смещением по оси Y (рис. 22), что и приведет к получению задуманного массива объектов. Визуализируйте сцену — все объекты в ней будут отражены с абсолютно одинаковой четкостью, что выглядит неестественно (рис. 23).
Рис. 20. Исходная сцена
Рис. 21. Настройка параметров окна Array для смещения по оси X
Рис. 22. Настройка параметров окна Array для смещения по оси Y
Рис. 23. Рендеринг сцены в окне Perspective
Изменить ситуацию проще всего путем внедрения камеры. Поэтому активируйте режим создания нацеленной камеры (команда Create=> Cameras=>Target — Создать=>Камеры=>Нацеленная камера). В окне проекции Top установите камеру, щелкнув мышью в его правом нижнем углу и направив мишень камеры в центр объектов (рис. 24). Активируйте проекцию камеры, нажав в проекции Perspective клавишу C. Используя инструменты перемещения и вращения либо кнопки панели управления камерой, настройте мишень камеры и камеру так, чтобы выбрать оптимальный обзор объектов в сцене (рис. 25). Обратите внимание на настройку мишени — объект, на который она направлена, всегда будет в фокусе, а значит, размытие (которое мы добавим чуть позже) на нем не скажется. В результате удастся добиться того, что камера будет охватывать все объекты в нужном ракурсе, правда отображаться они будут пока с одинаковой четкостью (рис. 26).
Рис. 24. Появление камеры
Рис. 25. Вид окон проекций после настройки камеры
Рис. 26. Результат визуализации проекции камеры до настройки размытия
Включите многопроходную визуализацию, активировав в группе Multi-PassEffects (Многопроходные эффекты) свитка Parameters (Параметры) флажок Enable (Разрешить). Установите метод размытия DepthofField (Размытие по глубине резкости). Увеличьте значение параметра SampleRadius (Радиус выборки) примерно до 1,5 и проведите рендеринг — все объекты, находящиеся на переднем и заднем плане, будут отображаться размытыми, что гораздо ближе к действительности (рис. 27).
Рис. 27. Результат визуализации проекции камеры после настройки размытия