Мобильная версия сайта | ||||||||||
[Главная] | [Новости] | [Статьи] |
[Проекты] |
[Ссылки] |
[Автор] |
|||||
[Архив новостей] | ||||||||||
[Форум] | на форуме можно задать вопрос, посмотреть ответы на часто задаваемые вопросы | |||||||||
Здравствуйте! Вы попали на информационно-образовательный сайт посвященный информатике, информационным технологиям и компьютерным играм. Подробнее о целях и задачах сайта в разделе Главная. [English version of this page here...] | ||||||||||
[Базовые уроки по DirectX] [Основы DirectMusic на Delphi] [Основы DirectInput8 на Delphi] [Основы DirectSound8 на Delphi] | ||||||||||
[Разработка компьютерной игры] [Пример игры Donuts3D] | ||||||||||
Создание текстурной развертки для модели автомобиля | ||||||||||
[Все уроки 3ds max] [Галерея моделей] [далее] | ||||||||||
Щелкнув по изображению можно скачать модель и текстуру в формате 3ds max 7.0 (в виде архива Win-Rar 3.5) | ||||||||||
В предыдущем уроке мы создали с Вами достаточно простую модель автомобиля. Однако никогда и нигде Вы наверное не видели, чтобы модели в играх были одного сплошного цвета. Как же придать модели более живой вид? Для этого применяется плоское изображение - текстура - по определенным правилам накладываемая на модель. Это-то и придает моделям правдоподобный вид. Т.е. все, что требуется чтобы создать модель - это каркас (который мы уже создали) и текстура. Текстуры обычно рисуются в программах для 2D-графики - Photoshop, Corel Draw. Уроки по этим программам Вы тоже найдете на нашем сайте! Текстура это обычно файл типа bmp, jpg или какой-то другой. Типичные размеры текстур - 32х32, 64х64, 128х128, 256х256, 512х512, 768х768, 1024х1024 и т.д. Рисованию текстур посвящены отдельные уроки. Однако для модели требуется обычно не просто повторяющийся узор (или тайл), а так называемая развертка - т.е. 3-х мерная модель разложенная на плоскости. Примеры готовых моделей с текстурными развертками Вы можете найти в разделе галерея моделей. В данном уроке мы займемся изучением методов создания текстурных разверток 3D-моделей. Это пока еще не рисование самой развертки в Photoshop или Corel Draw, а особый промежуточный шаг, необходимый для облегчения процесса нанесения тектуры на модель и точности исполнения рисунка. Если Вы когда-нибудь пробовали накладывать текстуры на модели, то понимаете, какой это длительный и утомительный процесс. Однако его в значительной степени можно облегчить! Итак, нам понадобится модель, созданная в предыдущем уроке. Для начала испробуем то, что нам предложит для создания развертки сам 3DS MAX - откройте модель автомобиля, выделите модель и выполните следующие действия: Rendering > Render To Texture. В открывшемся диалоговом окне в группе Mapping Coordinates установите переключатель в положение Use Automatic Unwrap. Это заставит программу автоматически сгенерировать проекционные координаты для вершин модели и вывести в плоскую текстуру. Обратите внимание! Параметр Channel = 3 и показывает какой канал (из возможных) будет использоваться для сгенерированных проекционных координат вершин модели. Можно иметь несколько наборов проекционных координат вершин - в отдельных каналах! Прокрутите панели окна ниже и в группе Output нажмите кнопку Add. В появившемся окошке выберите Diffuse Map и нажмите Add Element. Это приведет к тому, что в текстуру будет выводиться рассеянный (Diffuse) цвет модели. Размеры образца текстуры можно изменить нажав соответствующую кнопку - 128, 256 и т.д. По умолчанию размер текстуры 256х256. Давайте зададим размер 768х768. Для этого нажмите 768. В группе Baked Material установите переключатель в положение Output Into Source и флажок напротив пункта Render To Files Only. Обратите внимание! В группе Output в поле File Name and Type указано имя файла для создаваемой текстуры и тип файла по-умолчанию. Это легко изменить! Кроме того, нажав кнопку c многоточием напротив этого поля, можно узнать в какую папку будет сохранена текстура и при желании изменить путь для сохранения файла. Нажмите кнопку Render и вы получите изображение с текстурой. По этой развертке можно бы и начать рисовать саму текстуру в любой подходящей Вам программе (Photoshop, Corel Draw ...). |
||||||||||
Однако полученная развертка крайне неоптимальна! Во-первых, посмотрите сколько полезного места пустует! (правда теневые части плохо видны, поэтому почти черны). Во-вторых, и это, пожалуй, самое главное - не очень понятно и удобно рисовать развертку по такой текстуре. Детали слишком мелки, нет явных переходов, кроме того, мелкие детали вообще непонятно к какой части модели принадлежат. Поэтому нам с Вами придется заняться оптимизацией выводимой развертки! Ниже и описывается как это лучше сделать. В первую очередь нужно уничтожить сгенерированные автоматическим путем координаты. Для этого можно просто выполнить сброс рабочей среды File > Reset не сохраняя никакие результаты и снова открыть модель. Или можно удалить пункт Automatic Flatten UVs из стека модификаций. Далее, в списке модификаторов найдите модификатор Unwrap UVW и выберите его. В редакторе материалов создайте новый материал назвав его и загрузив в качестве изображения для рассеянного света (Diffuse) данную вспомогательную текстуру: |
||||||||||
Перенесите данный материал на модель. Также нужно увеличить для текстуры количество тайлов - где-то по 4 на U и V | ||||||||||
Можете попробовать выполнить Rendering > Render :))) Ладно, двигаемся дальше. В окне стека модификаций разверните узел напротив пункта Unwrap UVW и выберите Select Face. Сейчас мы будем создавать текстурные координаты для выбранным граней (face). Этот процесс Вам придется повторять многократно, вот основные его шаги: 1) Выделить требуемую грань (грани). 2) В группе Parameters на панели параметров модификатора нажать кнопки Planar Map, затем Edit Теперь нужно настроить вид открывшегося окна Edit UVWs (это не относится к повторяющимся действиям, достаточно настроить лишь 1 раз!) - во-первых, удобно расположите окно на экране и растяните/сузьте, если оно не умещается целиком на экране. Настроим параметры отображаемой текстуры - в правом нижнем углу окна нажмите кнопочку Options. В открывшейся панели в группе Bitmap Options задайте размер текстурного образца 768х768 - путем редактирования значений числовых полей. Уберите флажок Tile Bitmap - так как наша текстура - не тайл, а конечное изображение. В поле Brightness задайте значение полной яркости текстуры - 1. Теперь можно снова нажать кнопочку Options, чтобы скрыть панель. Сосредоточимся на параметрах основного окна Edit UVWs. В его центре вы видите изображение текстуры. Поверх этого изображения лежат контуры проецируемых граней. В нашем случае зеленый контур - текущий. Все другие контуры, для которых уже задано или будет задано проецирование также будут постепенно здесь появляться. Ваша задача состоит в том, чтобы разложить все грани вашей модели на изображении текстуры так, чтобы они не пересекались, занимали как можно более крупные куски и с другой стороны, чтобы не было слишком много места незанятого ничем. Задача прямо скажем крайне противоречивая! |
||||||||||
Для выполнения этой задачи Вам придется пользоваться всеми 5-ю инструментами, представленными в окне редактирования проекционных координат текстуры: Эти инструменты: по-порядку, слева-направо: Move - для смещения выбранных граней (вершин); Rotate - для вращения; Scale - масштабирования; Freeform Mode - комплексное сочетание первых трех; Mirror - зеркального отражения. Попробуйте теперь, поэкспериментировать с этими инструментами, особенно первыми тремя! Вращение на 90 градусов можно также выполнять кнопками Rot +90 и Rot -90 на панели в нижнем правом углу окна. |
||||||||||
3) Поверните, сместите, отмасштабируйте проекционные координаты выбранной грани Поэкспериментировав немного Вы должны понять, что к чему и далее - многократно повторяя данные 3 шага для всех граней модели поочередно расположить их все в виде развертки как показано на рисунке ниже: |
||||||||||
Щелкнув по изображению вы можете скачать файл с проекционными координатами вершин. Загрузить координаты можно из окна Edit UVW через пункт меню File > Load UVs. Чтобы выбрать следующую грань для проецирования текстурных координат - сверните окно Edit UVW, выберите нужную грань (набор граней). Затем проделайте для них шаги 1-3. Также считаю целесообразным привести ряд полезных замечаний, которые пригодятся Вам на первых порах работы по проецированию, с приобретением опыта, Вы, вероятно выработаете какие-то свои правила. 1) Постарайтесь вначале разместить все грани модели так, чтобы они хотя бы не пересекались, пусть и не самым оптимальным образом. 2) Когда все грани будут присутствовать на развертке их очень удобно выделять - просто обводя мышью нужные грани (и даже вершины) и вот теперь уже можно пытаться разместить это все более-менее целостно - чтобы получались наиболее крупные куски из граней лежащих в одной плоскости. 3) Также нужно ставить себе задачу, чтобы размещать отдельные части так, чтобы детали переходили от одной к другой. Это не всегда достижимо, но возможно. В противном случае приходится брать более мелкие грани и размещать по возможности ближе к месту крепления к другим граням! Места стыковки вершин отдельных граней 3ds max показывает в окне Edit UVWs синим цветом. 4) Наконец, последнее, если у вашей модели имеются очень мелкие детали, а пространство еще есть, то можно расположить их именно в этом пространстве уделив им больше места, чем они требуют на самом деле. При этом их и рисовать будет легче и у вашей модели появится нужная степень детализации. В нашем случае вокруг граней еще осталось достаточно свободного места (см рисунок). Но это не беда! Во-первых, модель достаточно проста и у нее нет каких-то особых вычурных или мелких частей. Во-вторых, хватит еще места для размещения на текстуре развертки колеса (про колесо не забыли ? :))). Итак, нами уже проделана самая сложная часть работы (и если у вас не достаточно опыта, то надо еще попрактиковаться!). Осталось только вывести созданную развертку в файл с текстурой. Отключите все выделения в стеке модификаций. Вызовите окно Render To Texture. В группе Mapping Coordinates установите переключатель в положение Use Existing Channel и выберите канал 1. Обратите внимание! Это тот же канал, который стоит сейчас в окне параметров модификатора Unwrap UVW в поле Map Channel. Остальные параметры оставьте в том же положении, как и в предыдущем случае, когда мы делали автоматическую развертку. Нажмите Render и вы получите текстуру с разверткой (в качестве цвета присутствует изображение материала, который мы использовали ранее как вспомогательный. Почему именно такой? Он состоит из треугольников и позволит вам уже на развертке отслеживать все искажения и размеры деталей и Вам легче по ней будет рисовать окончательную развертку! |
||||||||||
Можете теперь поэкспериментировать с параметрами окна Render To Texture, например задать вместо Diffuse Map - Complete Map в группе Output и т.д. Теперь по данной развертке очень легко будет нарисовать окончательную развертку, но для этого Вам понадобится программа Adobe Photoshop или Corel Draw. Уроки по ним смотри в другом разделе! Я же привожу уже окончательный вариант того, что можно изобразить - |
||||||||||
На рисунке текстура 128х128 (в целях экономии) - в архиве с моделью, которую можно скачать щелкнув по изображению, размер текстуры - 768х768 пиксель! Важное замечание! Поскольку обе боковых части автомобиля полностью идентичны, то для них не обязательно было делать две отдельные развертки, можно было бы ограничиться и одной, а грани просто спроецировать на одну и ту же развертку! Это бы дало возможность уделить больше пространства другим частям! Поэтому это обстоятельство тоже всегда берите во внимание! Теперь осталось совсем немного - замените изображение вспомогательной текстуры на изображение окончательного варианта развертки. Измените количество тайлов по U и V на 1. Перенесите новый материал на модель и в ответ на вопрос выберите вариант replace material. Работа завершена! Небольшое задание Вам для самостоятельной проработки - на развертке уже присутствуют элементы для колеса. Ваша задача нанести материал с текстурой на колесо и, используя модификатор Unwrap UVW, спроецировать отдельные грани колеса на изображение колеса текстуры. Этим способом Вы получите текстурированное колесо. Остальные 3 колеса создайте путем клонирования. Для зеркального отображения и клонирования сразу двух колес одной стороны можно воспользоваться инструментом Mirror . Выделите клонируемые колеса. Выберите инструмент Mirror. В открывшемся диалоговом окне задайте следующие параметры: |
||||||||||
[Все уроки 3ds max] [Галерея моделей] [далее] | ||||||||||
Обновления
и новости о развитии Delphi DirectX проекта http://www.megainformaticsite.pochta.ru http://www.megainformatic.boom.ru http://www.megainformatic.narod.ru
|
||||||||||
Cвои пожелания, вопросы или заметки отправляйте на: megainformatic@mail.ru или оставляйте на форуме |
||||||||||
Обмен ссылками | ||||||||||
|
||||||||||
(с) МЕГА ИНФОРМАТИК 2006-2009 | ||||||||||