Информатика и образование
  Мобильная версия сайта            
               
[Главная] [Новости]
[Статьи]
[Проекты]
[Ссылки]
[Автор]
               
    [Архив новостей]        
               
  [Форум] на форуме можно задать вопрос, посмотреть ответы на часто задаваемые вопросы  
       
  Здравствуйте! Вы попали на информационно-образовательный сайт посвященный информатике, информационным технологиям и компьютерным играм. Подробнее о целях и задачах сайта в разделе Главная. [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    
       
  увеличение количества повторений наложений (тайлов) для текстуры по осям текстурных координат 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 и вы получите текстуру с разверткой (в качестве цвета присутствует изображение материала, который мы использовали ранее как вспомогательный. Почему именно такой? Он состоит из треугольников и позволит вам уже на развертке отслеживать все искажения и размеры деталей и Вам легче по ней будет рисовать окончательную развертку!

   
       
  окончательный вариант текстуры развертки с применением complite map    
       
 

Можете теперь поэкспериментировать с параметрами окна 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.

В открывшемся диалоговом окне задайте следующие параметры:

   
       
  клонирование и зеркальное отражение пары колес при помощи 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
Hosted by uCoz