Урорки 3D Max
Раздельное Освещение и Затемнение сцены
Позволю себе небольшое вступление.
Крупные части изображения, не обязательно 3d, их внешний вид, композиция
действуют на сознание зрителя, а мелкие - на подсознание. Картинка "смотрится"
тогда, когда мелкие ее детали не вызывают у человека подсознательного конфликта
с тем, что он привык видеть. То есть человек может, даже, не понимать, что
конкретно его смущает. Задача художника - учитывать все мелочи при построении
изображения. При моделировании (особенно если нужно добится "фотореализма")
огромное значение на качество имиджа играет правильное освещение сцены. В
реальной жизни любой предмет освещается далеко не одним источником света.
Первоначально - их может быть один, два, ...(скажем солнце, лампа), но свет
от них попадая на предметы, окружающие моделируемый, отражается (рассеивается)
и тем самым мы получаем еще множество источников. И поэтому добится требуемого
результата манипулируя источниками света, которые одновременно и освещают,
и создают тени - нелегко, а в некоторых случаях - невозможно. Гораздо удобнее
сначала осветить предмет так, чтобы он выглядел "как живой", а затем независимо
от освещения (!) создать нужные тени. 3D Studio MAX позволяет это сделать
достаточно просто.
А теперь - суть метода:
1. Освещаем предмет (сцену) традиционно.(Только у источников света не включаем
Cast Shadows).
2. Создаем источник света. Например - Spot01.
3. Копируем его так, чтобы копия осталась в том же месте, что и оригинал(!).
4. Далее, в Spot01 включаем Cast Shadows.
5. В Spot02 multiplier устанавливаем отрицательным, но равным по модулю multiplier-у
в Spot01.
Теперь все параметры Spot01 компенсируются Spot02, кроме теней. Мы получили
сложный источник света (Spot01+Spot02), который создает тени и не влияет
на освещенность сцены! Для удобства можно "подлинковать" оба источника к
Dummy-объекту. А используя Exclude/Include можно добится влияния источников
только на данный объект(ы).
Тут есть большое поле для экспериментов. Например, можно и в Spot02 включить
Cast Shadows, но в Spot01 поставить Sample Range = 5 (к примеру), а в Spot02
- равным 0. Тогда мы получим только контур тени объекта. И т.д. Кто-то может
спросить:"К чему все это - ведь в Exclude/Include есть опция Exclude/Include
cast shadows". Действительно - есть, но при этом (исключении создания теней)
источник света продолжает освещать предмет(сцену), т.е. чтобы не менять освещенности
- одним источником все-равно не обойтись.
Кроме того, все написанное выше - не догма, просто - совет. Не обязательно
им всегда пользоваться, к каждой конкретной ситуации нужно подходить по-своему.
3D Studio MAX хорош тем, что один и тот же результат можно получить 1000
способами. Я предложил еще один...
Вот вроде бы и все. Надеюсь, что это поможет кому-нибудь в работе.
Больше зеркал, хороших и
разных!
Зеркальные поверхности — один из особых предметов гордости
Autodesk и Kinetix — ведь именно их 3DS'Ka смогла быть не только трехмерным
модельером, но еще и крутой рендеринговой системой и рендерить такие вещи,
как bump, отражения, прозрачность и т.п. До этого, конечно были системы типа
POVR, но они, в основном, — рендереры, т.е. моделировать в них особенно нельзя.
Мы рассмотрим три основных способа создания зеркал, по возрастающей сложности.
Способ №1 — Reflect/Refract
Создадим сферу и сплющим ее так, чтобы она была похожа по форме на линзу.
Теперь идем в Material Editor и создаем новый материал. Можете оставить все
основные установки так, как они есть — вполне подойдет почти любой шейдинг,
блеск и т.п. Наша цель — раздел Maps и пункт Reflect в нем. Нажмите на него,
и из появившегося списка New выберите Reflect => Refract Map. Можете не
менять никаких установок, вернуться в основной материал и присвоить этот
материал вашему объекту — сплющенной сфере. Все — рендерите.
Быстрый и простой метод. Но это единственное его достоинство. Дальше идут
одни недостатки. Во-первых — это очень плохое качество изображения. Даже
на той сжатой из 640х480 до 200х150 картинке вы можете
заметить ребристость границы — поверьте, она выглядит действительно отвратительно.
Во-вторых, это качество изображения (количество пикселей) уменьшается с отхождением
объекта от сферической формы. Для идеальной сферы этот способ очень привлекателен,
но его ни в коем случае нельзя использовать на плоских объектах, и не рекомендуется
на несферических объектах.
Способ №2 — Flat Mirror
Этот способ применим только для идеально ровных поверхностей. Если у вас
хотя бы на одну миллионную координата сдвинута — уже не сработает. К тому
же, способ не так прост, как № 1.
Итак, приступим. Создайте Box Материал нам понадобится не простой, а многокомпонентный,
а точнее двухкомпонентный. Создайте новый материал Multi => Sub-Object.
Сделайте Set Number и укажите 2 компонента. Нам надо создать два простых
материала: один — собственно зеркало, а другой — то, что будет как бы обрамлять
его. Зеркало будет вторым материалом, а обрамление — первым — это важно.
Тыкаем мышкой во второй материал, если нужно — регулируем основные параметры,
но самое главное — создаем Flat Mirror Map в разделе Reflect Map (гак же,
как и Reflect Ф Refract). Теперь самое интересное. Берете свой Box, и добавляете
модификатор Edit Mesh (можно также сконвертить Box в Editable Mesh). Теперь
переключаете Sub-Object на Face и выделяете ту поверхность, что показана
штриховкой на вышеприведенном рисунке.
Теперь ищите Material ID и вводите туда 2. Все — мы готовы к рендерингу.
Хорошее качество изображения — пожалуй, почти идеальное. Но только для идеально
плоских поверхностей. Метод необходим там, где нужны точные, качественные
и самое главное быстро читающиеся зеркала. По сравнению с рейтрейсингом,
этот метод дает очень большой выигрыш в быстродействии.
Способ №3 — Raytrace
Raytrace — это встроенный рейтрейсер 3DSMAX, доступный еще во второй версии.
Рейтрейсинг или трассировка лучей — это способ построения изображения, при
котором каждая точка поверхности, выбираемая с каким-либо шагом дискретизации
испускает "луч",
который просчитывается по обычным физическим законам (преломления, отражения)
и, таким образом, получается идеальная картинка. Минусы такого подхода тоже
очевидны — очень низкая скорость по сравнению со всем остальным. Продемонстрируем
его на не самом традиционном сферическом зеркале. Сделайте сферу и расположите
его примерно так, как показано на картинке.
Создайте новый материал и в Reflection Map задаем новый map — Raytrace (процесс
аналогичен заданию Reflect/Refract из №1). Присвойте материал объекту и ренедерите.
Идеальное качество изображений. Очень низкая скорость просчета — самая низкая
из всех методов. Проблема в том, что встроенный рейтресер MAX'a очень и очень
медленный по сравнению со своими аналогами