я успешно применил текстуры к геометрии куба с этим:Как применить текстуру к пользовательскому геометрии в Three.js
var geometry = new THREE.CubeGeometry(10, 10, 10);
var meshMaterial = new THREE.MeshPhongMaterial({ transparent: false, map: THREE.ImageUtils.loadTexture('/app/images/wood.jpg') });
meshMaterial.side = THREE.DoubleSide;
var mesh = new THREE.Mesh(geometry, meshMaterial);
С этим я получаю хороший текстурированный куб, как это:
Теперь я хочу, чтобы применить ту же текстуру (512x512 JPG изображения) в пользовательской модели я загружаю из STL и это то, что я получаю (в этом случае пирамида):
Это код:
loader.load(jsonParam.url, function (geometry) {
var meshMaterial = new THREE.MeshPhongMaterial({ transparent: false, map: THREE.ImageUtils.loadTexture('/app/images/wood.jpg') });
meshMaterial.side = THREE.DoubleSide;
var mesh = new THREE.Mesh(geometry, meshMaterial);
mesh.castShadow = false;
mesh.receiveShadow = true;
scene.add(mesh);
});
Почему текстура не применяется, и я получаю только то, что, как представляется, в среднем цвета текстуры?
Имеет ли ваша модель УФ-координаты? – 2pha
@ 2pha Нет, это модель STL, мне нужно UV-картографирование? – Andres
да. без UV-отображения, шейдер не знает, какую часть изображения помещать где-то на модель. – 2pha