Как сделать карту высот в blender
Добавил пользователь Евгений Кузнецов Обновлено: 08.10.2024
Я работаю над проектом, в котором используется цветная ручка для измерения высоты всех отмеченных точек в окне. В Excel значения таковы:
-800, -750, -500, -200, 0, -300 и т.д. Они 15 строк по 15 столбцов в каждом. Они показывают, насколько глубоко в поле находится местность.
У меня вопрос, есть ли способ взять значения высоты из Excel и перенести их в блендер, где я могу сделать 3d модель на основе значений? Я знаю о функции 3D-карты Excel, но я не хочу использовать это для проекта. Любая помощь приветствуется!
2 но что-то не то. :
Не стоит пугаться, мы просто не поставили галочку в обжект дате, во вкладке Normal : Auto Smooth делает острыми угли которые больше указанного в ползунке Angle.
Подправим значение под себя и "вуаля":
Бонус:
Если вам нужно что-бы Auto Smooth оставил ребро острым, вы должны выделить нужные рёбра и нажав правую клавишу выбрать Mark Sharp.
Заключение:
Этот момент весьма важен, ведь позволяет сделать нормали гладкими без увеличенная количества вершин и полигонов.
В этом уроке рассмотрим, как в 3d редакторе Blender смоделировать 3d объект по заданным параметрам: размерам с измерением длины, углов и площади.
Конечно, существуют специальные системы автоматизированного проектирования для инженерных задач, такие как Kompas-3d, AutoCAD и им подобные, которые включают в себя не только инструменты для моделирования деталей в трехмерном пространстве, но и инструменты для оформления документации. По инженерным возможностям, естественно, Blender с ними не сравниться, так как предназначен для других целей, но точно смоделировать деталь по заданным параметрам, например, для распечатки на 3d принтере не составит особого труда.
Чертеж детали и настройка Blender
Приступим. Для начала нам потребуется чертеж какой-нибудь детали с указанием её параметров, желательно в четырех ортогональных проекциях: спереди, сбоку, сверху и в изометрии. Исходя из представленных размеров детали, для удобства моделирования произведем некоторые расчеты.
Сразу под метрическими единицами можно выбрать, в чем будет выражаться поворот объектов: в градусах (Degrees) или в радианах (Radians). Оставляем градусы.
Размеры, привязки, координаты
Моделирование детали
Построение детали начнем с самой нижней её части, которую можно представить шестью точками. Если за начало координат принять центр детали, то координаты этих точек будут следующими (X,Y в миллиметрах): 1=-20,0; 2=-32,0; 3=-32,8; 4=-40,8; 5=-40,10; 6=-20,10. На рисунке точки представлены красным цветом, размеры длины – синим, ширины – оранжевым.
Таким образом, мы увидим длину радиуса равную 8 мм. После этого удаляем точки, созданные для измерения. Данным способом можно измерять параметры модели в процессе её создания.
Работаем с сеткой модели
Далее выделяем всю верхнюю поверхность и выдавливаем её на 7мм по оси Z, то есть, к имеющейся толщине 8мм прибавляем 7мм, таким образом, получим значение равное 15мм.
Теперь займемся центральным отверстием. Выдавливаем часть торцевой поверхности, отмеченной на рисунке, на радиус отверстия (8мм), то есть значение по оси X будет равно 0мм.
Заключение
В заключении следует отметить, что данный способ точного построения модели по заданным параметрам не является единственным. Так как порой для различных целей приходится моделировать объекты с одинаковой геометрией, но разной полигональной сеткой. В данном случае показан лишь пример работы с координатами точек объекта.
Напомним, что в предыдущем уроке по Blender, рассказывается как установить фоновые изображения в каждом виде (окне проекции). Это полезно для тех, кто занимается моделированием техники по чертежам, референсным изображениям.
Не забудьте почитать новую статью, в которой разбираются все тонкости экспорта моделей формата .OBJ в 3Ds Max.
Перепечатка и использования данного материала без прямой обратной ссылки категорически запрещена!
Данная статья описывает процесс подготовки объектов в бесплатном программном обеспечении Blender с целью дальнейшей их интеграции в межплатформенную среду разработки Unity с целью дальнейшего использования в моделировании или разработки виртуальных лабораторных комплексов. Кроме объяснения особенностей процесса проектирование и переноса объектов приводится пошаговая инструкция, позволяющая избежать ошибок начинающим пользователям приведенных программных продуктов.
Ключевые слова: Blender, Unity, 3D-модели, текстурирование, карты нормалей, Collider, Rigidbody .
Введение
Blender — бесплатное программное обеспечение для создания трехмерной компьютерной графики, включающее в себя средства моделирования, скульптинга, анимации, симуляции, рендеринга, постобработки и монтажа видео со звуком, а также создания 2D-анимаций.
Unity — среда разработки компьютерных игр, обладающая наличием визуальной среды разработки, межплатформенной поддержки и модульной системы компонентов.
Разработка 3 D модели на примере гальванического элемента питания (батарейки) D – R 20
При создании модели батарейки (рис. 1), будем учитывать ее реальные размеры, это необходимо для того, чтобы она, к примеру, не была размером с дом. При разработке проектов на Unity и других графических движках, рекомендуется учитывать реальные размеры всех объектов, чтобы в последующем добавлении их в студию не было проблем с масштабами объектов.
Рис. 1. Батарейка 1.5v D–R20
Для создания батарейки добавим окружность диаметром 3см. В режиме редактирования проэкструдируем окружность на высоту 6см (рис. 2).
Также проэкструдируем вовнутрь верхнюю и нижнюю части окружности, с повторным экструдированием для создания участка изоляции батарейки. Что бы получилась граница между изолятором и контактом. При работе с верхней частью объекта необходимо также создать в центре вершину для плюсового контакта диаметром 0,7 см и высотой 0,2 см (рис. 3).
Рис. 3. Верхняя часть батарейки
Что бы сгладить острые края, можно добавить в контекстном меню объекта “Гладкое затемнение” и включить “Автосглаживание”. Но эта процедура увеличивает количество полигонов, что, в конечном счете, может негативно сказаться на обработке объекта после переноса в графический движок.
Перед наложением текстур необходимо проверять ориентацию граней, это требуется для того, чтобы лицевая часть граней не была повернута внутрь объекта. В режиме “Ориентация грани”, красным цветом обозначена оборотная сторона грани, синим соответственно лицевая. При импорте в Unity моделей, в которых оборотные стороны граней смотрят на камеру, данные стороны будут прозрачные. Чтобы этого избежать, красные грани необходимо отразить (рис. 4).
Рис. 4. Ориентация грани
Текстурирование
Перед наложением текстуры необходимо создать материал для заданного объекта. После этого в редакторе шейдеров добавляем узел “Изображение-текстура”. В нем загружаем нужную текстуру и передаем изображение текстуры в материал, соединяя линией “Цвет” и “Основной цвет” между таблицей текстуры и материала, должно получиться как на рис. 5.
Рис. 5. Редактор шейдеров
Для отображения текстуры необходимо сменить режим отображения на “Отображать в режиме предпросмотра материала”.
Для наложения текстуры перейдем в “UV Editing” и займемся расположением граней на текстуре. Выделяя грани батарейки, в окне UV-разметки, можно поэкспериментировать и выбрать наиболее подходящий тип разметки. Выделив грани объекта, их можно располагать на текстуре произвольно. Результат этой операции можно увидеть на рис. 6.
Рис. 6. Текстурирование
Создание карты нормалей
Нормаль — это перпендикуляр к поверхности. По нему движок определяет, под каким углом отражать свет. Благодаря нормали, плоская поверхность отражает свет так, словно на ней есть неровности. Подобного хватает, чтобы принять низкополигональную модель за что-то более детализированное.
Для создания нормалей в данной статье используется бесплатная программное обеспечение “NVIDIA Texture Tools Exporter Standalone”. Загрузив текстуру в программу, можно приступать к редактированию будущей карты нормалей. В разделе “Height Generation” можно изменить высоту карты. Пример создания карты нормалей приведен на рис. 7.
Рис. 7. Создания нормалей в “NVIDIA Texture Tools”
Сохранив получившуюся карту нормалей, можно импортировать ее в Blender. Процедура добавления такая же как при добавлении основной текстуры, за исключением создания материала, т. к. материал уже присутствует. Для передачи карты нормалей в материал, необходимо соединить “Цвет” из полученного изображения с “Нормаль” нашего материала (рис. 8).
Рис. 8. Добавление карты нормалей
Сетка для коллайдера
Наша модель почти готова, осталось создать сетку для добавления коллайдера в Unity (см. Создание “Mesh Collider” и “Rigidbody”). Для начала необходимо создать низкополигональную сетку поверх модели батарейки. Делается это так же, как и создание самой модели батарейки, за исключением того, что в параметрах добавления новой окружности, необходимо уменьшить количество вершин с 32 до 8 или меньше. Должна получиться простенькая “Защитная панель” поверх батарейки (рис. 9). Эта “панель” будет использоваться как коллайдер в Unity.
Рис. 9. “Защитная панель” для коллайдера
Экспорт и импорт
Выделяем полученную модель, камеру и источник освещения выделять не нужно [1]. Выбираем формат для экспорта, в настройках экспорта ставим галочку на “Выделенные объекты” и жмем “Экспорт”. Переносим экспортированный файл в Unity и добавляем его на сцену (рис. 10).
Рис. 10. Импорт объекта в Unity
Теперь необходимо отключить отображение “защитной панели”, убрав галочку с “Mesh Render” в инспекторе объекта, т. к. данная “панель” необходима только для создания меш коллайдера, видеть нам ее не нужно. После добавления текстур в данный проект, наша батарейка их автоматически распознает. (рис. 11)
Рис. 11. Добавление текстуры
При таком добавлении редактирование материала батарейки будет недоступно, поэтому стоит создать отдельный материал, и в него загрузить текстуру с картой нормалей. При создании материала, в “Albedo” закидываем основную текстуру, а в “Normal Map” соответственно нормаль.
Теперь готовый материал можно переместить на батарейку, а точнее на “Окружность”, которая и является самой батарейкой. В данном случае модель состоит из двух объектов, сама батарейка — “Окружность”, и ее защитная панель — “Окружность.001”. Чтобы в дальнейшем при создании более сложных моделей не возникло путаницы, следует переименовывать объекты, делать это можно как при создании самой модели в блендере, так и после добавления, в самом Unity.
Создание “Mesh Collider” и “Rigidbody”
Коллайдеры необходимы для того, чтобы придать объекту материю, без коллайдеров объекты в Unity “нематериальны” и проходят сквозь остальные объекты. Коллайдеры обеспечивают обнаружение столкновений с использованием различных “ограничивающих сеток” [2], одну из которых ранее мы создали в блендере. Есть 3 способа создания коллайдеров:
1) Можно использовать базовые коллайдеры такие как “Box Collider”, “Capsule Collider”, и накладывать их на объекты, но на это уйдет не мало времени если у нас сложный объект. Такой метод меньше всего влияет на производительность.
2) Использовать коллайдер по сетке заданного объекта. “Mesh Collider”. Это быстро, но такой метод не практичен, т. к. при нем очень сильно падает производительность.
3) Создать отдельную низкополигональную коллайдерную сетку при создании объекта и использовать ее как “Mesh Collider”. Такой способ меньше влияет на производительность чем 2й, и его мы используем далее.
Выбираем “Защитную панель”, т. е. “Окружность.001” и добавляем на нее Mesh Collider. Проверяем, чтобы в разделе Mesh была выбрана “Окружность.001”. Теперь добавим физику объекту, чтобы он обладал массой и на него действовало притяжение. Для этого выбираем Add Component и Rigidbody (рис. 12). Но есть проблема в таком методе. Она заключается в том, что начиная с версии Unity 5, “Mesh Collider” работает только с включенным “Is Kinematic”, т. е. с выключенной физикой, без воздействия силы притяжения [3].
Рис. 12. “Mesh Collider” и “Rigidbody”
Если отключить “Is Kinematic”, то коллайдер пропадет, и появится при включении “Convex”, но тогда его изначальный вид сильно изменится, и станет непригодным для использования, в данном случае он принял треугольный вид (рис. 13).
Рис. 13. При включении “Convex”.
Вывод
Начиная с версии Unity 5, меш коллайдеры стоит использовать только для статичных рельефных объектов. Если необходимо чтобы на объект действовала сила притяжения, то придется ограничиться стандартными “Box Collider” и “Capsule Collider”, но в таком случае создавать “Защитную панель” в блендере уже нет нужды.
1 Гараева Э. Р. Особенности подготовки 3D-объектов, смоделированных в Blender, для импорта в Unity 3D / Э. Р. Гараева, И. И. Бикмуллина, И. А. Барков // Прикаспийский журнал: Управление и высокие технологии. — 2020. — № 4 (52). — С. 66–74.
2 Брянский И. Н. К вопросу об основных элементах Unity / И. Н. Брянский, Д. А. Брыль // Международный научно-исследовательский журнал. — 2016. — № 12–3 (54). — С. 26–28.
Основные термины (генерируются автоматически): NVIDIA, коллайдер, создание, батарейка, бесплатное программное обеспечение, материал, наложение текстуры, основная текстура, создание карты нормалей, создание нормалей.
- Добавить несколько UV-карт очень просто, надо просто нажать на "плюсик" во вкладке UV-maps, которая на картинках обозначена самым правым зелёным кружком.
Что потом?
Их-же надо как-то прицепить к текстурам.
Прицепить их тоже очень просто - для этого существует специальный НОД - attributes.
Если вы используете русифицированный блэндер, убейтесь об стену, можете подсказать в комментариях как оно там называется =))
Переходите в окно редактирования нодов Node Editor, жамкаете Shift+A > input > Attribute,
В окошке Attribute вбиваете имя UV-карты, например sprite1 и соединяете точки Vector на этом ноде и на ноде Image Texture.
Вуаля.
Микшируете по вкусу и любуетесь результатами, на картинках все ноды хорошо видны.
Кхм-кхм. "Любуетесь" это я загнул, конечно же.
Текстуринг и разворачивание карт это попаболь. Я мечтаю избавиться от неё навсегда и насовсем.
Не знаю как обстоят дела на сегодня, но по-настоящему свободно рисовать текстуры можно только в z-brush-е.
По большому счёту, в блэндере я делаю иногда лишь Unwrap, экспортирую модель в OBJ и перехожу в Зебру.
К примеру, вот нужна тебе морщинка под глазом - рисуешь морщинку под глазом и она, МЛЯТЬ ПОД ГЛАЗОМ, А НЕ НА УХЕ где-нибудь.
Или на жопе, как в 3д максе, хаха.
Верю, что есть другие инструменты, всякие мармосеты-тулбаги, но я про них ничего не знаю, буду благодарен, если поделитесь информацией.
Пока делаю просто - все детали делаю геометрией, но это тоже не всегда это удобно, легко и свободно как хотелось бы. Но для больших рендеров от 12-24 мегапикселей лучше не придумаешь.
Что ещё.
Ни для кого не секрет сегодня, что рендер в 3Д это "рендер на GPU".
"Октан" как стандарт индустрии моушн-дизайна и иже с ними.
Всё остальное это не рендеры, а так, поделки ненужные.
Искал тут на днях решение по рендер-фермам, что-нибудь домашнее и мобильное, смотрел всякие видео, как люди вместо модуля WiFi в ноутбуках втыкают в слот mini-PCI-e внешнюю видеокарту GTX.
Приехал в гости к ребятам из Bizon (это просто рассказ, а не реклама, поэтому гугл в помощь) со своим "древним" MacBook air.
Ну как древним, он в 11-м году куплен, до сих пор прекрасно работает и всё бы ничего, но уже не торт.
И монитор не ретина и видеокарта не Nvidia.
Кароч, приехал в гости, воткнули в мой НОУТБУК Nvidia GTX-970 через TUNDERBOLT, поставили драйверы CUDA (open-CL нифига не хотел работать) и понеслась!
Вот эта картинка в 4K рендерилась не больше 10 минут, сцуко, на старом ноутбуке, которы рендерить-то толком не умеет =))))
Пришёл домой, перерендерил на рабочей станции, оценил время.
И если бы не громадные размеры блока питания. Блин, он просто огромный.
Для Titan-а он ещё больше. 300ватт всё-таки.
ЭХ. ребят, алюминивая коробочка для видеокарты плюс блок питания это уже совсем не мобильное решение, меня прям такая жалость разбирает по этому поводу. Так бы я бы сразу себе и купил парочку таких (в прошку можно втыкать две видеокарты, т.к. там два тандерболта) и рендерил бы себе видео 4к сидя где-нибудь на вилле в Тайланде или Бали.
Но не сегодня. не сегодня.
Winter has come.
Читайте также: