Как наложить несколько текстур на одну модель в фрейме

у вас есть модель в Maya/Blender, которая имеет несколько UV.

Я думал, что в .mtl есть вся информация о материалах/текстурах (поскольку я вижу ссылки в .mtl), но, видимо, мне нужно связать каждую текстуру с объектом @ src="texture.jpg".

Есть ли другой способ, кроме как объединить эти текстуры в photoshop/gimp или разбить мою модель на отдельные .obj, имеющие собственную текстуру?

Должен ли я больше изучать пользовательские параметры затенения в aframe/three.js @ registerShader?


person Piotr Adam Milewski    schedule 01.04.2017    source источник


Ответы (2)


Формат OBJ/MTL не поддерживает несколько наборов UV. Я не уверен, что он также может не поддерживать несколько материалов с одной и той же геометрией. FBX и Collada поддерживают несколько UV, так что вы можете попробовать один из них.

Но поиск «threejsmultiple UVs» показывает, что сделать несколько UVs без пользовательских шейдеров непросто, даже если у вас есть более новый формат модели. Возможно, я бы попытался объединить ваши несколько UV в один набор в программном обеспечении для моделирования, если это возможно.

person Don McCurdy    schedule 01.04.2017
comment
большое спасибо, я искал примеры в three.js/aframe, надеясь, что я что-то упустил :) Я буду придерживаться запекания UV или разделения OBJ - person Piotr Adam Milewski; 02.04.2017

Файлы MTL могут связывать разные карты текстур с разными группами материалов в файле OBJ, но файл OBJ может описывать только один набор UV на полигрань. Независимо от того, поддерживает ли это ваш писатель OBJ или читатель OBJ THREE, это другой вопрос.

На заметку: фактическая спецификация Wavefront OBJ интересна тем, что поддерживает все виды вещей, которые никто не реализовывал после 1999 года или около того, включая патчи NURBS с кривыми обрезки и карты текстур 1D (по сути, LUT).

https://en.wikipedia.org/wiki/Wavefront_.obj_file

person Scott Singer    schedule 22.04.2017