#javascript #three.js
#javascript #three.js
Вопрос:
Я смог загрузить OBJ-файл и связать с ним MTL, чтобы придать ему текстуру. Однако, похоже, я не могу определить, какую текстуру я хочу связать с моделью непосредственно из кода, я могу заставить текстуру отображаться в модели, только если она упоминается в файле MTL.
Я просмотрел документацию, я просмотрел примеры, и я снова и снова гуглил, но я просто понятия не имею, как применить текстуру.
Это мой текущий код для загрузки модели и файла материала
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setPath( '/3Dproject/models/' );
mtlLoader.load( 'tshirt.mtl', function( materials ) {
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials( materials );
objLoader.setPath( 'models/' );
objLoader.load( 'tshirt.obj', function ( object ) {
object.position.x = 0;
object.position.y = -50;
object.scale.x = 2;
object.scale.y = 2;
object.scale.z = 2;
scene.add( object );
}, onProgress, onError );
});
Это мой файл материалов
# MTL written from 3Dprojectmodelstshirt.obj
newmtl texture
Kd 0.48 0.48 0.48
Ns 256
d 1
illum 2
Ka 0 0 0
Ks 0.04 0.04 0.04
map_Kd texture.jpg
Если я загружу свою текстуру в Javascript следующим образом
var texloader = new THREE.TextureLoader();
var skinTexture = texloader.load('/3Dproject/models/texture.jpg', function (tex) {
skinTexture = tex;
});
Как я могу затем применить его к своей модели?
Рабочий пример на http://creativiii.com/3Dproject/old-index.html
Комментарии:
1. Вы могли бы найти свой объект в ТРЕХ. Создайте сцену и перепишите ее материал.
Ответ №1:
Обычно текстура назначается через material.map
свойство.
object.material.map = skinTexture;