У меня есть OBJ, который использует четыре текстуры. UV, определенные в файле, находятся в диапазоне от (0, 0) до (2, 2), так что (0.5, 0.5) относится к координате в первой текстуре, (0.5, 1.5) - координата UV во второй текстуре, (1.5, 0.5) - это координата в третьей текстуре, а (1.5, 1.5) - это координата в последней текстуре.
У меня уже есть правильная геометрия или объект three.js. Однако теперь мне нужно иметь возможность применять правильные карты текстур к этим объектам.
В коде:
У меня есть THREE.Mesh
с правильной геометрией (с координатами UV, такими, что U = [0, 2], V = [0, 2]) и фиктивный материал-заполнитель. В настоящее время я загружаю одну текстуру, например, так:
var texture = new THREE.TextureLoader().load('tex_u1_v1.png', function() {
object.material.map = texture;
object.material.map.needsUpdate = true;
});
Как и ожидалось, одна четверть меша текстурирована правильно. У меня есть еще три файла текстуры, tex_u1_v2.png
, tex_u2_v1.png
и tex_u2_v2.png
. Я хочу иметь возможность применять эти текстуры также и к object
(сетка THREE.js), чтобы в каждом сетке была текстура для каждого действительного UV.
Однако я не знаю, как добавить несколько материалов в object
после его создания. Более того, я не знаю, как указать мешу, что, например, tex_u1_v2.png
следует использовать для UV в диапазоне (U = [0, 2], V = [1, 2]).