seaman 37.5117.0 14 января 2007 в 00:00
Этим уроком я
надеюсь помочь всем начинающим понять как использовать карты нормалей в своих
моделях.
В этом уроке мы будем создавать кубик, показанный выше, используя
простой бокс и карту нормалей.
Вы узнаете несколько подсказок и трюков. Я
собираюсь рассказать все шаг за шагом, так что любой сможет повторить урок. Я
использую 3DS Max 8, но техника применима к любомй 3d программе, поддерживающей
карты нормалей.
Я надеюсь урок Вам понравится.
Давайте начнем!
Прежде всего проверьте, что Вы работаете с теми же единицами измерения, что и
я. Перейдите в меню Customize (Настройки) и в Units
Setup (Установки единиц) проверьте, что выбраны Generic
Units.
Второе - Вам нужно выбрать используемый драйвер. Перейдите в
меню Customize снова и на этот раз в Preferences (Предпочтения). В
всплывающем окне установите Currently Installed Driver (Текущий драйвер) в
Direct3D 9.0.
Перейдите на закладку Viewports, нажмите кнопку Choose
Driver (Выбрать драйвер), установите флажок Direct3D,
нажмите
кнопку Advanced Direct3D..., проверьте, что выбрано DirectX
9.0.
БВА
Сначала Вам
нужно сделать низкополигональную модель.
Сделаем box с
размерами:
Lenght: 50
Width:
50
Height: 50
Это будет низкополигональная
модель, так что переименуем ее в LowPolyDice.
Теперь Вам нужно сделать высокополигональную модель. Т.к. геометрия лоуполи и
хайполи моделей должна занимать одно пространство Clone
(Клонируем) LowPolyDice и назовем его HighPolyDice. Проверьте при
клонировании, что выбрано Copy (Копирование) а не
Instance.
Перед тем как делать хайполи модель всегда лучше спланировать, что
Вы будете делать. Есть два пути сделать карту нормалей:
- сделать лоуполи и хайполи модели и сгенерировать карту нормалей, используя 3dsmax
- сделать только лоуполи модель и использовать Фотошоп для генерации карты нормалей.
Далее описываются шаги, которые нужно проделать, чтобы получить хайполи модель:
1. | Выделите все ребра модели и примените Chamfer
(Фаску) со значением 2. После этого выделите все ребра в углу и Connect (Соедините) их. Этот шаг гарантирует, что кубик сохранит свою кубическую форму, когда будет применен модификатор MeshSmooth. |
![]() |
2. | Выберите ребра вокруг кубика - Connect их
с 2 сегментами и передвиньте их ближе к границе. Это делается т.к. когда мы будем моделировать дырки нужно их несколько отделить от ребер. |
![]() |
3. | Повторяем шаг 2, но на этот раз оставляем ребра на месте, так что расстояние между ними одинаковое. | ![]() |
4. | Выделяем все грани, на которых должны быть
дырки. Применяем Inset со значением 2 и проверим, что выбрано By Polygon. Не изменяя выбора полигонов применяем модификатор Bevel используя значения: Height: -2 Outline Amount: -1 Проверьте снова что выбрано By Polygon. |
![]() |
Картинка справа поможет Вам определить на какой грани сколько дырок. | ![]() |
|
5. | Применим модификатор MashSmooth Iteration:3. Обычно достаточно значение 2 для итераций,
но т.к. геометрия проста я могу позволить себе более сглаженный
результат. Хайполи модель готова! |
![]() |
Перед генерацией карты нормалей нам нужно unwrap (развернуть) лоуполи модель. Тут некоторые вещи,которые нужно знать о развертке:
- хайполи модель разворачивать не надо
- Вы должны быть уверены, что нет полигонов, которые используют тоже UV пространство
Есть еще две важные вещи, на которые нужно обращать внимание при развертке лоуполи модели:
- seams (швы)
- streaching (растяжение)
Развертка этой модели очень простая. Примените модификатор Unwrap и выберите Flatten Mapping (Плоское
картирование) из меню Mapping. Карта UV выглядит
как эта: Как Вы можете видеть есть много швов, но это не проблема, т.к. мне не нужно рисовать в Фотошопе на ребрах, нужно только сделать изменения в середине полигонов, где будет текст. |
![]() |
Здесь есть множество пустого места. Мы исправим это
позднее. По некоторым причинам карта нормалей, генерируемая 3dsmax,
квадратная. Но после того как мы сделаем карту при разрешении 512x512 мы
можем изменить ее до 512x256 и затем снова настроить UV так что она
совпадет с новой разверткой. Все что Вам нужно сделать сейчас - передвинуть грань сверху и поместить ее в правый угол. После этого развертка выглядит так: |
![]() |
У меня по умолчанию Flatten Mapping выключено.
Чтобы его
включить нажмите кнопку Edit, перейдите на уровень граней в модификаторе Unwrap
UVW,
в меню открывшегося окна выберите Mapping=>Flatten
Mapping.
БВА
Теперь, когда мы развернули нашу модель, collaps (сверните) стек, т.к. нам больше не нужно делать изменений в развертке и выведите диалог Render2Texture нажав 0 на клавиатуре или
перейдя в меню Render и выбрав Render To
Texture
Вот что Вам нужно знать об этом окне:
|
![]() |
-
В области File Name and Type (Имя и тип файла) выберите путь куда Вы хотите сохранить Вашу карту и тип файла. Я рекомендую tga или bmp файлы. Не используйте jpg, т.к. компрессия значительно ухудшит качество карты нормалей.
-
В области Target Map Slot (Целевой слот карты) Вы можете указать куда будет добавлена карта после визуализации. Я предпочитаю оставлять это место пустым, т.к. мен нравится добавлять ее вручную в Редакторе материалов. Если хотите, можете указать здесь Bump.
-
Укажите size (размер) карты. Указывайте всегда окончательный размер, т.к. изменение размера впоследствии ухудшает качество. Для этой модели укажите 512.
-
Кнопка render визуализирует карту. Если Вы нажмете ее сейчас, Вы увидите, что карта нормалей выглядит странно. Это потому, что Cage (каркас) не настроен.
Перед тем как нажать на кнопку Render Вам нужно настроить Cage в модификаторе Projection. Это очень важная часть - не забывайте о ней. Чтобы сделать это закройте диалог Render to Texture (не беспокойтесь о сделанных изменениях - они сохранятся) и нажмите на модификаторе Projection, появившемся над Editable Poly.
Модификатор Projection имеет подобъекты подобные
модификатору EditPoly но только points (точки) могут настраивать контейнер.
Перед тем как что-то делать с каркасом
проверьте, что включено Shaded и затем нажмите Reset
(Сброс). Опция Shaded включается, чтобы можно было
увидеть где каркас пересекает хайполи модель а Reset сбрасывает Cage к форме лоуполи модели, что является хорошим стартом для
настройки каркаса. Если вы имеете нерегулярную лоуполи модель большинство
времени Вы будете перемещать точки инструментом Move так чтобы
каркас не пересекал хайполи модель, но если Вы имеете модель похожую на нашу,
намного проще использовать опцию Push.
Каркас должен быть как можно ближе к хайполи модели, но не пересекать ее. Для этой модели лучший путь настроить каркас - Сбросить его, затем просто ввести значение 0.1 в Push Amount. После того как Вы нажмете Enter вы увидите, что Amount сбросилось в 0. Не беспокойтесь об этом, изменения в каркасе сделаны. После того, как вы настроите каркас, выведите снова диалог Render to Texture и нажмите Render. Вы увидите окно, подобное тому, какое появляется при простой визуализации, но изображение в нем - UV карта. Это окно полезно, т.к. в нем можно увидеть, что каркас пересекает хайполи модель. Если это так, Вы увидите красные области. Это значит, что этих местах Ваш каркас пересекает хайполи. Если Вы получили это просто сделайте Push каркаса немного больше. |
![]() |
Вот еще подсказка: Когда вы имеете более сложную геометрию лучше перейти в режим вершин (Cage) и перетаскивать вершины вручную, пока каркас не станет верным. Если Вы используете ползунок Push вы вытянете все вершины на одно расстояние, что может привести к проблемам со сложной геометрией, так что используйте его только тогда, когда Вы уверены, что при этом каркас не пересечет другие части хайполи. Хороший пример - рука. Если Вы используете ползунок Push каркас пересечет себя и хайполи модель между пальцами. Здесь лучше настраивать вершины каркаса вручную.
Карта нормалей выглядит так:я Теперь мы применим карту нормалей к модели и посмотрим как она выглядит. Чтобы сделать это откройте в Фотошопе сохраненную карту нормалей. Сохраните файл с расширением .psd, т.к. мы собираемся делать в нем изменения и сохранение файла в другом формате после каждого изменения просто расточительство времени. Лучше иметь один PSD файл со множеством слоев. Теперь перейдем в Макс и откроем Редактор материалов (M). Выберем пустой слот и перейдем в слот и перейдем к слоту Bump. Сначала установим значение в 100 (по умолчанию 30). Нажмем кнопку None и в появившемся окне выберем Normal Bump. Нажмем кнопку Normal и в появившемся окне выберем Bitmap. загрузим .psd файл, который Вы только что сохранили. Есть еще одна вещь, которую нужно сделать, чтобы увидеть карту нормалей в окне. В редакторе материалов включите DX Display of Standard Material в свитке DirectX Manager. |
![]() |
Как Вы можете видеть есть еще один слот здесь - Additional Bump. Это полезно, если Вы хотите добавить добавочные неровности к модели, но они будут видны только на визуализации, а не в окне просмотра.
Примените материал к низкополигональной модели и нажмите иконку Show
Map in Viewport (Показать материал в окне). Если Вы все сделали
правильно, Вы увидите лоуполи модель, выглядящую почти как хайполи.
Чтобы
увидеть результат лучше создайте светильник Omni и переместите
его вокруг модели, чтобы увидеть как она реагирует на него.
Т.к. все установки уже сделаны, теперь Вам просто нужно поработать в Фотошопе
, чтобы внести изменения в карту нормалей, и вернуться назад в Макс, чтобы
увидеть результат.
Прежде чем мы продолжим этот урок, Вам нужен nVidia плагин для Фотошопа, чтобы сделать grayscale слой в
слоях карты нормалей. Чтобы получить его перейдите по www.developer.nvidia.com/object/photoshop_dds_plugins.html и загрузите плагин. Он очень легко инсталлируется. После инсталляции нужно
перегрузть Фотошоп. Если Вы сделали это, мы можем продолжить добавлять детали к
карте. Откройте Фотошоп снова и загрузите PSD файл.
Для добавления деталей к карте сделайте еще один слой, выберите инструмент Text Tool, измените цвет текста на black (черный) и напишите Las Vegas в нем. Нажмите кнопку Create warped text (Создать искаженный текст) и выберите стиль Arc. Введите значение +80 для Bend
Сделайте еще слой и повторите процесс, но на этот раз введите текст "Casino" со значением Bend -60.
Выровняйте их, чтобы они выглядели как на рисунке справа.
Сделайте текстовые слои видимыми и после этого сделайте новый слой. Используйте Merge Visible (Shift+Ctrl+Alt+E), чтобы объединить текст в один слой. С этим выбранным слоем перейдем к меню Filter и в инструментах NVIDIA Tools выберите NormalMapFilter
Тут что
Вам нужно знать о NVIDIA Normal Map Filter:
Invert
X/Y: Если детали, которые Вы только что добавили выглядят
инвертированными установите его.
Scale: Это устанавливает
глубину деталей. В дольшинстве случаев Вы тестируете различные значения, пока не
получите нужный результат. Для нашего текста введите 4. Если Вы
думаете, что это чересчур много введите значение помньше.
Average
RGB: Если выбрано это плагин возьмет в рассмотрение значение всех
каналов (RGB), это то, что вы хотите в большинстве случаев. Другая возможная
опция Normalize Only, будет рассматривать карту как будто она
карта нормалей. Это опция выбирается когда вы имеете только крату нормалей и
работаете с ней напрямую, а не с слоями.
Set to 1.0: всегда
должна быть выбрана
3D Preview: помогает увидеть в реальном
времени как карта нормалей будет выглядеть.
Теперь нажмите Ok для генерации карты нормалей. Слой выглядит как пример справа. Из этого слоя Вам нужен только текст, так что лучше удалить остаток слоя. neutral color (Нейтральный цвет) для карты нормалей R:128 G:128 B:255 так выберите Magic Wand Tool, введите значение 0 для Tolerance и проверьте Anti-alias, Contiguous и Sample All Layer выключены. Выберите нейтральный цвет и нажмите delete (уадлить).
Последняя вещь, которую Вам нужно сделать поместить слой с текстом в Overlay. Проверьте что делаете это со всеми слоями добавленными к карте нормалей. Если Вы не сделаете этого Вы можете изменить некоторые части карты, которые не хотите изменять. Сохраните карту и посмотрите как она выглядит в окне просмотра.
Сделайте копию карты нормалей и поработайте над ней, чтобы сделать карту diffuse и карту specular. Легче работать над картой нормалей, т.к. Вы можете видеть где добавлять детали. Также полезно добавить wire на верхний слой если модель сложная. Поместите карту specular в Specular Color и Specular Level слот. Если Вы не поместите ее в оба слота, она не будет работать. Карта оражений воздействует на цвет specular модели, а power на нее.
![]() |
![]() |
![]() |
В этой точке Вы можете оптимизировать текстуру, уменьшив ее до размера 512x256, как я говорил ранее. Чтобы сделать это Crop (Обрежте) область текстуры, которая используется моделью и затем resize ее до размера 512x256. Только сделайте это когда изменение размера не воздействует на качество текстуры путем, который сделает это очевидным. Этот кубик пример, где Вы можете сделать это если размер текстуры важен, пространство используется 512x343 так если Вы сделаете немного меньше Вы увидите, что 87 пикселей растяжения более приемлемы, чем 169 пикселей потери. Сделав текстуру 512x256 вы уменьшаете ее вполовину. После сделайте изменения во всех текстурах (диффузной, отражения и нормалей) перейдите в 3dsmax и развертку модели для новой текстуры. Эта часть тоже очень легкая, все что Вам нужно сделать выделить всю развертку UVs и масштабировать ее так, чтобы она разместилась внутри UV бокса.
Теперь давайте вернемся к 3dsmax чтобы сделать финальную визуализацию.
я
всегда использую те же устанвоки для финальной сцены и я нахожу, что они
достаточно хороши для меня.
Здесь 3 Omni светильника, как Вы можете видеть. Один наверху - освещает всю сцену, он имеет Тени и множитель 1.2. Другие 2 omnis сзади имеют множитель 0.5 и не отбрасывают теней. Чтобы сделать хорошую смесь между фоном и плоскостью, на которой располагаются кубики, сделаем плоскость и поместим Matte/Shadow на него. Все что Вам нужно сделать далее - изменить цвет фона и нажать визуализацию.
Некоторые пояснения от автора, ответы на вопросы.
Давайте начнем с UV.
Внизу слева в Редакторе UV Вы видите... то, что Вы
видите на рисунке внизу
Проверьте, что иконка слева нажата (если Вы не сделаете этого UV будут свернуты одну линию), выберите UV, который Вы хотите сместить (offset) и затем введите 1 в U или V. Нажмите enter. Значение снова станет 0.0 а UV будет смещено на 1 налево или вниз, в зависимости от выбранной Вами оси. Это просто для того, чтобы быть уверенным, что UV точно где они должны быть. Другой метод - передвинуть их вручную, но таким путем Вы можете потерять несколько пикселей.
Вопрос: Должны ли занимать лоуполи и хайполи одно пространство? И должен ли
каркас включать в себя обе модели?
Каркас должен вмещать в себя хайполи
модель, а обе модели должны располагаться в одном месте. Давайте рассмотрим
пример плоскости и неровностей на ней. Лоуполи модель - это плоскость, а хайполи
- плоскость с неровностями на ней. Когда Вы делаете каркас он должен быть больше
хайполи. И вот почему: когда Макс строит карту нормалей, он измеряет расстояние
от лоуполи модели до хайполи и строит карту основываясь на этом расстоянии. Для
нашей плоскости хайполи и лоуполи на ребрах одинаковы, они отличаются в местах
неровностей. Значит на ребрах карта нормалей будет иметь нейтральный цвет. В
местах неровностей цвет карты будет зависеть от расстояния между лоуполи и
хайполи. Вершин у лоуполи меньше чем у хайполи, значит программе нужно как-то
указать в какой области сравнивать модели. Эту функцию выполняет каркас. Если
где-то хайполи выступает за каркас, то такие места не будут приниматься во
внимание при подсчете карты. При этом Вы увидите красные пятна на карте.
Перевод Беляев Валерий ака seaman.
Советуем почитать

Разбиение камня
12
1
47 825
Автор: En5er
17 марта 2007 в 00:00

Моделирование простого карандаша
18
0
93 053
Автор: diablo_
29 января 2007 в 00:00

Hair and Fur от Averkin
25
7
84 416
Автор: Averkin
28 августа 2009 в 00:00

Видео Создание шахмат в 3ds max
5
5
17 624
Автор: diablo_
2 сентября 2013 в 04:36

Видео modeling weaving | моделирование плетения
0
0
4 299
Автор: kryvonis
30 ноября 2017 в 20:04
3D моделиприслатьещё
Молоток
Другое
Материалы: Нет
Текстуры: Да
бесплатноПрикроватная тумба ...
Тумбы и Комоды
Материалы: Да
Текстуры: Да
25 р.БМ-13 "Катюша&...
Военная
Материалы: Да
Текстуры: Да
100 р.Модульная стенка...
Шкафы
Материалы: Да
Текстуры: Да
30 р.3d Model Elf
Люди
Материалы: Да
Текстуры: Да
350 р.SOHO TUFTED LEATHER...
Диваны
Материалы: Да
Текстуры: Да
100 р.Ditting ked 640 ко...
Кофемашины и кофемолки
Материалы: Да
Текстуры: Нет
100 р.BAGA
Люстры
Материалы: Да
Текстуры: Да
80 р.Картридер и все вид...
Компьютеры и комплектующие
Материалы: Да
Текстуры: Да
250 р.Кинжал с узором...
Оружие и броня
Материалы: Да
Текстуры: Да
бесплатноСтарый заброшенный ...
Малоэтажные здания
Материалы: Да
Текстуры: Да
70 р.Tire Pirelli Cintur...
Автомобили
Материалы: Нет
Текстуры: Нет
бесплатноМодульная система(Ш...
Шкафы
Материалы: Да
Текстуры: Да
20 р.лева парковый...
Другое
Материалы: Да
Текстуры: Да
21 р.T34-85
Военная
Материалы: Да
Текстуры: Да
500 р.ЗИС-5В
Автомобили
Материалы: Нет
Текстуры: Да
бесплатноBoxes
Другое
Материалы: Да
Текстуры: Нет
50 р.TOSAI LOWBOARD
Тумбы и Комоды
Материалы: Да
Текстуры: Да
50 р.Диск автомобильный...
Автомобили
Материалы: Да
Текстуры: Нет
50 р.ring omnipotence
Другое
Материалы: Да
Текстуры: Да
10 р.
Форумещё
- 1. Есть кто живой?
25
- 2. Mihanik_W.I.P
90
- 3. Двигатель Харлей-Девидсон S&S Panhead
266
- 4. Заз 1102 "Таврия"
29
- 5. Экологическая катастрофа в Ташкенте
1
- 6. Прокачка навыков 2Д
292
- 7. Воспоминания 3D моделинга
23
- 8. Нужна помощь
6
- 9. Kramar Workshop
38
- 10. Пара вопросов по модели и топологии.
11
- 11. Прибалбус
90
- 12. Полуторка
90
- 13. груЗИЛы
127
- 14. ЯЗь и МАЗь
49
- 15. Газики-Уазики
72
- 16. Рогатый
17
- 17. SH Projects
205
- 18. ГАЗ М 72
201
- 19. 3Д мир. Проект воскрешение.
139
- 20. X-Лада
12
Блогиещё
- 1. Всех с праздником 3DECEMBER!!!
10
- 2. Майор Гром
2
- 3. C Праздником 2-3December!!!
2
- 4. Книжная тема
19
- 5. Большой автоконкурс 2016 — награждение
20
- 6. Кто в какие игры играет в свободное от работы время?
49
- 7. precise3dmodeling.com
5
- 8. Астрологи объявили неделю "Марсианина"
19
- 9. innoBright выпустили Altus 1.2
2
- 10. Dell представила 30-дюймовый OLED дисплей UltraSharp
10
- 11. С Новым 2016 Годом!!!
8
- 12. Радиоактивные люди)))
2
- 13. Allegorithmic выпустили Substance Painter 1.7
0
- 14. Chaos Group представили V-Ray 3.3 для 3ds Max
10
- 15. Paragon from Epic Games — Announce Trailer
0
- 16. Thinkbox Software представили Sequoia
0
- 17. The Foundry выпустили Mari 3
0
- 18. Вышел After Effects and Premiere Pro 2015.1
0
- 19. Autodesk выпустили 3ds Max 2016 Extension 2
0
- 20. CLO Virtual Fashion опубликовали отличное двухминутное видео, в котором собраны лучшие проекты, созданные с помощью Marvelous Designer 5.
1
Популярные урокиещё
Making of House in Matsubara
Уроки по 3ds maxМоделирование одеяла в 3ds max
Уроки по 3ds maxМоделирование футбольного мяча
Уроки по 3ds maxMaking of «Lamborghini Reventon»
Уроки по 3ds maxПодводная сцена в 3d max
Уроки по 3ds max
Комментарии (Всего: 15)
Вообще, я встречался с необходимостью строить что-то эдакое, но не картой нормалей... Было дело - нужно было моделить ЗАКЛЕПКИ на бортах корабля... К сожалению, то, что подходит для кубиков, вряд ли так просто можно применить ко всяким более сложным по геометрии моделям типа броненосцев или крейсеров :-(
Кстати, как попадались более "жизненные" что ли? уроки по картам нормалей... Так что ощущение какое-то даже негативное...
НЕТОЧНОСТЬ в 4-м пункте:
"Выделяем все грани (не грани а ПОЛИГОНЫ), на которых должны быть дырки.
Применяем Inset со значением 2 и проверим, что выбрано By Polygon.
Не изменяя выбора полигонов применяем модификатор Bevel используя значения:
Height: -2
Outline Amount: -1
Проверьте снова что выбрано By Polygon".