Форум

Экспорт материалов

09 февраля 2016 14:02
Материалы экспортируются только с объектами?
Т.е. мне надо например динамически создавать объекты и менять им материал.
Не нашел как задать новый материал объекту кроме как скопировать с уже существующего объекта.
09 февраля 2016 17:32
Добрый день.

Материалы экспортируются только с объектами?

Да

Т.е. мне надо например динамически создавать объекты и менять им материал.

Попробуйте использовать прокси-объекты, на которых будет лежать метериал и которые не будут рендериться (галочка Do not render в настройках объекта). И не забудьте, что они должны быть динамическими (галочка Force dynamic там же)
09 февраля 2016 18:39
Добрый день, Роман. Спасибо, понял.
11 февраля 2016 17:34
1. Допустим, есть базовый объект с материалом белого цвета.
И два прокси-объекта, на одном материал черного цвета, на другом белого (белый такой же материал, как на базовом объекте)

2. Скриптом создаем копии базового объекта, копируя на него, то белый, то черный материал с прокси-объектов
с помощью material.inherit_material, но получается, что белый цвет один раз затирает черный (или наоборот) и в итоге все получается одного цвета.
Есть подозрение, что при создании копии базового объекта надо создавать его со своим материалом. Только как?
Или как-то по-другому решается?
11 февраля 2016 17:54
Добрый день.

При вызове функции копирования третьим параметром можно передать true (случай глубокого копирования), что будет означать, что объект будет иметь уникальную геометрию и привязанный к ней материал. Если его не передавать, то всё будет браться по ссылке при копировании, т.е. изменение одного приведёт к изменению другого.

Для глубокого копирования на объекте необходимо выставить свойство "Dynamic Geometry" в настройках объекта (рядом с Force Dynamic Object)
11 февраля 2016 18:01
Спасибо, Роман. Как всегда, все просто оказывается
23 февраля 2016 14:19
У меня есть материал с двумя UV картами ( UVMap0, UVMap1). Как можно организовать переключение между этими картами?
24 февраля 2016 12:47

У меня есть материал с двумя UV картами ( UVMap0, UVMap1). Как можно организовать переключение между этими картами?
Динамически во время работы приложения и без программирования только вот так. Value можно управлять при помощи редактора нодовой логики.
Blend4Web и всё такое. Тридешу тридэ, моделю модели.
25 февраля 2016 18:49
да, этот вариант работает, спасибо

по ходу попал в непонятную ситуацию - если в добавляю еще одну третью UV карту, то она не работает
то есть с двумя все нормально, а у третьей координаты все время 0,0,0
такое подозрение что информация по третьей UV карте не выгружается в json
25 февраля 2016 19:01
… так и есть, включил проверку во время экспорта и нашел этот код? …

if mesh.uv_textures:
# export 2 uv_textures only
mesh_uv_count = len(mesh.uv_textures)
if mesh_uv_count > 2:
warn("Only 2 UV textures are allowed for a mesh. The mesh \"" + mesh.name
+ "\" has " + str(mesh_uv_count) + " UVs.")
mesh_data["uv_textures"].append(mesh.uv_textures[0].name)
mesh_data["uv_textures"].append(mesh.uv_textures[1].name)

почему только 2 UV textures?
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.