В этом уроке я поделюсь собственным опытом моделирования и текстурирования несложных сцен в программе
. В работе использовалась 9 версия (
. На протяжении урока я расскажу о
и в финале урока постараюсь реалистично совместить рендеринг с фотографией. Объектом моделирования была выбрана обычная
. Далее по тексту
. Кому интересно прочесть дополнительную информацию о Золотых рыбках, то ищите в Википедии. Почему Золотая рыбка ?
. Внимание ! Для полного прохождения этого урока вам понадобится плагин
. Скачать его можно здесь
| Сложность этого урока заключается в том, что мы имеем лишь одно растровое изображение, содержащие вид сбоку золотой рыбки. Соответственно, вид сверху вы должны додумать сами.Начальное изображение вы можете скачать здесь. Открываем скачанное изображение в Adobe Photoshop и редактируем его. При помощи инструмента "полигональное лассо" очерчиваем контур рыбки (у нашей рыбки будет немного изменен хвостовой плавник для придания индивидуальности), идем в меню Select, выбираем inverse и нажимаем кнопку Delete. Все, сохраняемся, на этом работу с Photoshop на время приостановим. Запускаем 3Ds max и создаем плоскость (Geometry->Plane). Какой должен быть размер плоскости ? Любой, лично я выбирал исходя из размеров полученного после обработки в фотошоп изображения. У меня получилось соотношение сторон кратно 1:1.5, соответственно в моем варианте это Plane c Length=10 и Width=15 см и количество сегментов по ширине и высоте = 1, далее по тексту "эталон" . Немалая рыбка ! :) Назначаем плоскости материл, диффузная карта которого - вид сбоку нашей рыбки. Если вы установите материл "Standard", то установите значение Self-illumination = 70. Назначение такой величины сделает карту видимой при любом угле обзора. | |
| Теперь создадим плоскость, которая будет использоваться в качестве заготовки для тела нашей рыбки. Ее размер должен быть визуально равен телу рыбки, видимого на эталоне. Количество сегментов плоскости по длине и ширине = 11. Конвертируем плоскость в Editable Poly. |
| В режиме редактирования вершин (вкладка modify, жмем на + возле надписи Editable Poly и выбираем Vertex) Перемещаем точки так, чтобы получилась сетка максимально похожая на эталон. Стараемся избежать появления треугольников. |
| После того, как мы в режиме Vertex отредактировали сетку, переходим в режим редактирования Border. Удерживая кнопку Shift с помощью мыши перетягиваем выделенную границу на расстояние, соответствующее 1/2 максимальной толщины (жирная рыбка-больше расстояние :) ) нашей рыбки. В каком направлении передвигать границу? Если вы работаете в вьюпорте TOP, то это будет ось Y. В результате всех вышеперечисленных операция получаем некое подобие тела очень рыбки. |
| На этом рисунке показан объект, у которого вершины (Vertex) перемещены по оси Х (делается в вьюпорте Front) на расстояние соответствующее вашему представлению о рыбках.. Жирная рыбка - большое пузо :). Поэтому особенно выделяем животик рыбки. После создания примитивного образа рыбки необходимо добавить несколько дополнительных полигонов. Для этого переходим в режим редактирования Polygon или Edge и при помощи инструмента Cut режим необходимые полигоны. Еще раз напомню о что, что: "чем меньше треугольников - тем лучше". |
| На этом изображении показаны TOP,Front,Left и Perspective окна 3d max. Если вам мешают некоторые точки сетки, то объедините их с наиболее подходящей ближайшей точкой при помощи инструмента Target Weld (в режиме Vertex). |
| Вот так будет выглядеть ваша будущая рыбкапосле применением модификатора TurboSmooth. При редактировании сетки будет полезно включить переключатель Show end result on/off toggle (находится под списком содержимого стека). Включение переключателя даст возможность при редактировании сетки с малым количеством полигонов видеть очертания объекта после применения сглаживания. |
| На изображении показано как объединить пару ненужных точек при помощи инструмента Target Weld |
| Пришла пора создать глаз и глазницу. Выбираем ближайший полигон и при помощи инструмента Tessellate дробим его на несколько полигонов. |
| В режиме редактирования Vertex выделяем центральную точку раздробленного полигона и используем инструмент Chamfer. В результате этих действий получаем ромб с габаритными размерами соответствующими глазу рыбки. |
| В режиме редактирования Polygon выделяем полученный ромб и злостно его удаляем. Переходим в режим Border и удерживая кнопку Shift перемещаем границу удаленного полигона по оси Y (в TOP виде) внутрь рыбки. Этим действием мы создадим 4 дополнительных полигона которые и будут глазницей. На картинке видна модель с примененным модификатором Turbo Smooth. |
| Добавим немного деталей. Будем моделировать жабры. Нещадно режем полигоны при помощи инструмента Cut, ребрами повторяя форму жабр. Нарезавшись вдоволь, выделяем ребра (режем Edges) и используем инструмент Chamfer. В результате получаем центральную ось, у которой по бокам появились новые ребра, отстоящие на величину Chamfer Amount (чтобы выбирать параметры инструментов необходимо нажимать маленький квадратик с изображением окна, который находится возле кнопки с названием инструмента). Выделяем центральную ось и немного перемещаем (move) ее внутрь объекта. |
| Переходим в режим редактирования Vertex и перемещаем точки таким образом, чтобы получилась округлая форма у жабр. |
| В результате наших действий появились ненужные точки. Мы добиваемся того, чтобы жабры нашей рыбки выглядели похожими на полумесяц. Для этого в режиме Vertex используем инструмент Target Weld к крайним вершинам полумесяца |
| Создадим сферу и переместим ее в глазницу рыбки. |
| Наша рыбка, видимо, мало спит :) и из-за этого у нее появились мешки под глазами. Не упустим этот факт. Режем полукруг вокруг глаза. Выделяем ребра и при помощи инструмента Extrude выдавливаем ребра на небольшую величину. Перемещаем вершины, тем самым придаем мешкам более расплывчатую форму. |
| Точками показано примерное расположение вершин (режим Vertex) вокруг глаза. |
| Модель, с примененным модификатором TurboSmooth. |
| Пришла пора нашей рыбке создать рот. В режиме Edges режем полигоны, повторяя контур рта эталона. Используем инструмент Chamfer и удаляем полигоны, образовавшиеся в результате работы. В режиме Border выделяем контур рта и удерживая клавишу Shift передвигаем его внутрь модели. Редактируем новые полигоны. Чтобы закрыть заднюю стенку рта рыбки переходим в режим Polygon и используем инструмент Create для создания полигонов по вершинам. Мне пришлось создавать 2 полигона. |
| Чтобы "улыбка" рыбки не была натянутой добавляем несколько дополнительных ребер ограничивающих сглаживание. |
| Получилось !!! На этой картинке изображена сглаженная модель. Iterations = 1. |
| Пришла пора создавать верхний плавник. Выделяем полигоны и используем инструмент Extrude. |
| Значение Extrusion Height ставим в соответствии с максимальной высотой плавника. |
| Перемещаем вершины полигонов, полученных в результате выдавливания так, чтобы максимально соответствовать контуру плавника эталона. Если у вас возникла необходимость в дополнительных ребрах или вершинах, то вам понадобится выделить нужные полигоны (включая и полигоны с обратной стороны) и использовать инструмент Slice Plane. При помощи этого инструмента режем (при помощи Rotate поворачиваем плоскость на нужный градус) выделенный полигон в направлении от спины рыбки к границе плавника и при этом важно не пересекаться с боковыми гранями полигона. |
| Сглаженная модель. Iterations = 2. |
| Перемещая вершины по контуру плавника изменяем его форму. Делаем его более тонким сверху. |
| Красным обозначены точки, которые необходимо перемещать. |
| Займемся хвостом. Тут мы делаем все идентично моделированию плавника. Красным цветом отмечены полигоны, с которыми мы будем работать инструментом Extrude |
| Результат выдавливания. Главное - не испугаться :). |
| Компенсируем нехватку вершин при помощи Slice Plane. |
| Сглаженная модель. Iterations=2. |
| Сглаженная модель с включенной опцией Edged Faces. Чтобы включить эту опцию необходимо правой кнопкой мыши щелкнуть на названии видового окна (вьюпорт perspective,front,left,top) и щелкнуть на Edged Faces. |
| Моделируем нижние плавники. Все стандартно. Выделяем полигон на брюхе рыбки (не самый близкий к краю модели) режем его посредине. В режиме Edges выделяем полученное ребро и Chamfer его. Выдавливаем полученные полигоны и редактируем вершины, чтобы сетка максимально соответствовала эталону. |
| Еще плавник. Все абсолютно идентично нижнему плавнику за исключением того, что полигон находится возле жабр. |
| На изображении показан плавник. Если он немного пересекается с телом рыбки, ничего. После сглаживания это изменится. |
| Рыбка - красавица. |
| Пришло время сделать полный объект. На данной стадии главное - удалить полигоны на плавниках. Мы должны получить каркас в тех местах ,где будет соприкосновение двух частей модели. После удаления полигонов идем в Tools->Mirror и зеркально отражаем модель по оси Y (вид TOP) с включенной опцией Copy. Переходим в режим редактирования Editable Poly и нажимаем кнопку Attach, выбираем вторую часть модели. После этого переходим в режим редактирования Vertex и выделяем общие точки двух частей рыбки, жмем кнопку Weld. Не так уж и страшно :) |
| Займемся глазом, вернее будем его резать. Выделяем сферу, выбираем модификатор Slice и ставим отметку Remove Bottom. Передвигаем Slice Plane в нужную нам позицию. Конвертируем сферу, вернее то что от нее осталось, в Editable Poly. В режиме редактирования Border выделяем границу и нажимаем кнопку Cap. Получаем закрытый объект. Переходим в режим Polygon, жмем Insert и получаем окружность – зрачок. |
| Чтобы выделить зрачок другим цветом необходимо создать Multi/Sub-object материал (кнопка M в английской раскладке клавиатуры), нажать Set Number и ввести значение "2" |
| Я использовал 2 материала VRayMtl для белка (белый цвет :)) и зрачка (черный) |
| Глаз и глазница рыбки с примененным модификатором TurboSmooth. |
| Вот и добрались до текстурирования. Будем использовать плагин Texporter, который экспортирует развертки. Это сторонний плагин и перед использованием его необходимо инсталлировать. Назначаем нашей модели тип мэппинга, для этого идем на вкладку Modify и из выпадающего меню выбираем UVW Mapping. Тип мэппинга - Planar. Переходим на вкладку Utilities и нажимаем кнопку More .... Выбираем из списка плагин Texporter. Значения Image size вы может устанавливать любые, главное - придерживаться соотношения сторон как у эталона (в моем случае это 1:1.5). В данном уроке нам не критически важно разрешение, главное чтобы оно не было меньше чем у исходной (эталонной) текстуры. Нажимаем Pick Object и выбираем рыбку. Другие настройки плагина не столь важны, можете с ними поиграть. |
| Редактируем текстуру, полученную в результате работы плагина Texporter в Adobe Photoshop. Все что нужно сделать - добавить новый слой и установить его прозрачность в 70%. После этого открыть текстуру эталона, выделить и скопировать изображение в буфер. Перейти на texporter текстуру и вставить данные из буфера в новый слой. При помощи Edit->Free Transform подгоняем масштаб. Если появились места, где цветного изображения не хватает чтобы полностью накрыть Texporter текстуру, то закрашиваем их ближайшим цветом текстуры . Сохраняем файл, предварительно выставив прозрачность слоя в 100%. Переходим в 3Ds max и любому материалу (я выбрал VRayMtl) в качестве диффузной карты выбираем сохраненный из Photoshop Bitmap. Применяем материал. |
| Для того, чтобы плавники рыбки были немного прозрачными необходимо создать карту прозрачности как на картинке. Белый цвет - не прозрачный. Градиент от белого к черному сделан в Photoshop при помощи Gradient Tool. Вы можете осветить любой затемненный участок карты прозрачности при помощи Dodge Tool |
| На изображении показан материал с назначенными diffuse, bump, opacity картами. Карта diffuse - текстура эталона, карта opacity - черно-белое изображение с осветленными участками, bump карта - копия диффузной. |
Для того, чтобы получить такое изображение необходимо нажать кнопку 8->Environment map->Bitmap и выбрать изображение, скачанноев начале урока с Википедии. Все, осталось только сделать рендеринг. Я использовал такие настройки для V-Ray 1.5 RC3: Image sampler-Adaptive Subdivision, Antialiasing Filter - Mitchell - Netravali, в качестве GI - Irradiance map и Quasi - Monte Carlo, значение Multiplier которых = 1, Irradiance map – пресет High. |
Ну вот и все! Урок закончен. Буду рад любым отзывам, пожеланиям и предложениям.
Домашним заданием будет: Определите, какая из рыбок на картинке настоящая.