Больше зеркал хороших и разных
Автор: HUNTER ( thehunter@hotbox.ru )
Зеркальные поверхности один из особых предметов
гордости 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
Raytrac - это встроенный рейтрейсер 3DSMAX,
доступный еще во второй версии. Рейтрейсинг или
трассировка лучей - это способ построения изображения,
при котором каждая точка поверхности, выбираемая с
каким-либо шагом дискретизации испускает "луч",
который просчитывается по обычным физическим законам
(преломления, отражения) и, таким образом, получается
идеальная картинка. Минусы такого подхода тоже очевидны
- очень низкая скорость по сравнению со всем остальным.
Продемонстрируем его на не самом традиционном
сферическом зеркале. Сделайте сферу и расположите его
примерно так, как показано на картинке.
Создайте новый материал и в Reflection Map
задаем новый map - Raytrace (процесс аналогичен
заданию Reflect/Refract >из №1). Присвойте материал
объекту и ренедерите.
Идеальное качество изображений. Очень низкая скорость
просчета - самая низкая из всех методов. Проблема в том,
что встроенный рейтресер MAX'a очень и очень медленный
по сравнению со своими аналогами.
|