3d форум по Blender
Blender => Вопросы от новичков => Тема начата: Friend123 от 31 Август 2017, 10:21:30
-
Добрый день.
Имеется модель четырехполосной дороги (1 меш) и 2 уличных светильника вдоль нее (2 меша). Модели оттекстурированы, на каждый меш наложен один или несколько материалов, например на дороге имеется разделительная полоса (трава), разметка дороги, тротуар - всё это отдельные материалы. Приложил картинку.
Задача стоит такая - сделать конечную модель для Unity3D, чтобы был 1 меш (объединить дорогу и светильники), но самое главное - чтобы на модель был наложен всего один материал(!), одна общая текстура.
Я сильно новичок в блендере, я вообще не моделлер, а программист. Изучаю его от недостатка людей в проекте. Насколько я понимаю, чтобы получить сей результат, нужно делать это через UV-развертку, но может быть имеется какой-то более простой способ? Моделей у меня таких немало и боюсь убью на это огромную массу времени. По сути-то модели уже готовые и текстурированные, просто их нужно преобразовать.
-
Объединить через "cntr+J" выделить предварительно все объекты
Создай для общего меша еще одну развертку, создай пустую текстуру
Переключись на новую развертку и располож на ней все развертки объектов как тебе удобно (как я понял развертки уже есть для каждой модели если нет надо ручками или смартУВ развернуть)
Запеки дуфузию общего меша на новую текстуру по созданной тобой развертки
Создай новый материал с запеченной текстурой и назнач его объеденному мешу
-
Объединить через "cntr+J" выделить предварительно все объекты
Создай для общего меша еще одну развертку, создай пустую текстуру
Переключись на новую развертку и располож на ней все развертки объектов как тебе удобно (как я понял развертки уже есть для каждой модели если нет надо ручками или смартУВ развернуть)
Запеки дуфузию общего меша на новую текстуру по созданной тобой развертки
Создай новый материал с запеченной текстурой и назнач его объеденному мешу
Я так и делал, объединил меши, создал развертку для общего меша. Но тут я немного встал, потому что развертка получилась какая-то немного "кривая" (светильники вон как расперло, их приходиться скейлить), приложил. Я так понимаю, чтобы развернуло более четко, надо на швы резать по ребрам? А что такое смартУВ?
-
Так первоначальные объекты были развернуты? Если нет то надо их развернуть нормально а потом уже объединить. SmartUV автоматически через одно место разворачивает объект. Для упаковки частей развертки юзай ПакУИ (cntr+p)
-
Так первоначальные объекты были развернуты? Если нет то надо их развернуть нормально а потом уже объединить. SmartUV автоматически через одно место разворачивает объект. Для упаковки частей развертки юзай ПакУИ (cntr+p)
Полагаю, что развернуты не были (если чисто визуально смотреть). Понял. Спасибо за совет. Буду пробовать!
-
>> немного "кривая" (светильники вон как расперло, их приходиться скейлить), приложил.
... для юнити делай развертку по Lighmap pack, особо если будешь потом еще нормали запекать ...
... а лучше выложи модели ...
-
>> немного "кривая" (светильники вон как расперло, их приходиться скейлить), приложил.
... для юнити делай развертку по Lighmap pack, особо если будешь потом еще нормали запекать ...
... а лучше выложи модели ...
Модель приложил (текстур много, без них), сделал развертки для каждого объекта, уж не знаю насколько корректно получилось, пытаюсь теперь их объединить в единую.
Спс, почитаю про Lighmap pack, нормали в перспективе будут. Приходиться всё самому делать, нету моделлера свободного ))
-
... еще это дополнение посмотри https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/UV/TextureAtlas ...
>> Модель приложил (текстур много, без них)
... выложи все что есть в каком-нибудь файловом обменнике (яндекс диск, майл облако и т.п.) ...
-
... еще это дополнение посмотри https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/UV/TextureAtlas ...
>> Модель приложил (текстур много, без них)
... выложи все что есть в каком-нибудь файловом обменнике (яндекс диск, майл облако и т.п.) ...
Спасибо, гляну плагин.
Полностью выложил тут: https://cloud.mail.ru/public/2Tnx/3yDBrkjnt
-
... ссылка битая ...
-
... ссылка битая ...
Работает: https://cloud.mail.ru/public/2Tnx/3yDBrkjnt
-
Получилось создать развертку и одну текстуру с помощью видео: https://www.youtube.com/watch?v=Tj-S5QAac3U
Но получилась на выходе фигня (запекал текстуры только, не Full Render, потому что он черный выдает), текстуры стали размытые какие-то (приложил картинку).
На верхней картинке - исходная модель с кучей материалов на частях меша. Нижняя - это уже с новой разверткой (где 1 текстура, 1 материал).
Вероятно, что в исходном файле использовалось некое смешение материалов, или текстуры запеклись по-другому (или еще что-то нужно запекать?).
Ребята, куда покопать можно?
-
>> Вероятно, что в исходном файле использовалось некое смешение материалов, или текстуры запеклись по-другому (или еще что-то нужно запекать?).
>> Ребята, куда покопать можно?
... а т осознал уже причину? до запекания в моделях использовались несколько текстур и некоторые из них как тайловые, а теперь все это у тебя упаковано в один файл с меньшей площадью ...
... копать нужно в осмысленное запекание и возможно не стоит объединять столбы и дорогу в один объект ...
>> сделать конечную модель для Unity3D, чтобы был 1 меш (объединить дорогу и светильники)
... зачем это делать? поясни ...
... насколько в курсе, юнити эти объекты объединит сама в статическую группу ...
-
... зачем это делать? поясни ...
... насколько в курсе, юнити эти объекты объединит сама в статическую группу ...
Цель простая - оптимизация. Когда у меня на сцене объект с кучей материалов на нем (около 10), и если таких объектов понятное дело не один и не десять, то начинаются жуткие тормоза. После того как я сделал объединение текстур (в один материал) - тормоза пропадают, что логично.
Это же касается и той ситуации, когда в одну модель я запихал и дороги, и столбы, и всякие урны, скамейки, чтобы движок рендерил все объекты за один проход - опять же оптимизация.
-
Крутил тут вертел - пришел к выводу, что можно использовать атлас текстур и куски его накладывать на части дороги. Также сделано и в модели, только используются отдельные файлы-изображения.
В приложении "кусок после" я попытался изобразить сей момент, вопрос в том - как затайлить данный кусок атласа на кусочек модели? Repeat почему-то не помогает в настройках текстуры, хотя отдельное изображение тайлится нормально. Пересмотрел уроки разные - тоже ничего такого не говорится как сделать.
-
Ну наверное нужно подразделить этот газон, вдоль на равные полигоны, каждый полигон отдельно развернуть и накладывать на таил.
Или ещё можно привязать к нужным полигонам своё отдельное изображение в редакторе развёрток, хотя это уже не атлас будет.
-
Ну наверное нужно подразделить этот газон, вдоль на равные полигоны, каждый полигон отдельно развернуть и накладывать на таил.
Или ещё можно привязать к нужным полигонам своё отдельное изображение в редакторе развёрток, хотя это уже не атлас будет.
Да вот не хотелось бы дробить меш на более мелкие куски. Хм, т.е. никак не избежать - либо увеличивать количество полигонов, либо количество текстур/материалов.
Просто думал может есть какая-то простая технология тайлинга данного куска из атласа на выбранную часть меша, типа repeat. Просто получается, что если применяется отдельное изображение для меша, то оно тайлится успешно.
-
Не вижу тут путей решения "стандартными" средствами, тем более простых. Но возможно здесь поможет программирование.
Нужно загрузить текстурный атлас в буфер памяти, потом вырезать из этого буфера тайлы в свой отдельные буферы.
И вот потом, уже эти буферы с тайлами накладывать на полигоны. У полигонов должны быть будут или отдельные развёртки, или какой либо другой идентификатор, например группа вершин. Для того чтобы знать, какой буфер куда накладывать.
Только конечно все эти буферы немного увеличат расход памяти.
Как реализовать этот алгоритм в коде, на каком либо языке, я не знаю.
Идея взята из принципов работы 2д игр использующих spitesheet (множество спрайтов в одном файле изображения)
(https://i.stack.imgur.com/UYrFf.png)
-
Не вижу тут путей решения "стандартными" средствами, тем более простых. Но возможно здесь поможет программирование.
Нужно загрузить текстурный атлас в буфер памяти, потом вырезать из этого буфера тайлы в свой отдельные буферы.
И вот потом, уже эти буферы с тайлами накладывать на полигоны. У полигонов должны быть будут или отдельные развёртки, или какой либо другой идентификатор, например группа вершин. Для того чтобы знать, какой буфер куда накладывать.
Только конечно все эти буферы немного увеличат расход памяти.
Как реализовать этот алгоритм в коде, на каком либо языке, я не знаю.
Идея взята из принципов работы 2д игр использующих spitesheet (множество спрайтов в одном файле изображения)
(https://i.stack.imgur.com/UYrFf.png)
Спасибо за совет, но я решил сделать модель с нуля, уменьшить ее и раздробить для более четкого наложения текстур.
-
Дополнение в помощь: http://blender-3d.ru/forum/index.php/topic,1949.new.html#new