three.js добавляет текстуру к объекту JSON

1

Я создал 3D-модель в Blender. Затем я экспортировал его с экспортером Three.js и загрузил его в JavaScript. Все работает отлично, кроме текстуры не отображается. Я добавил текстуру в Blender как изображение.

Файл JSON:

{
"normals":[0,-1,0,...]
"vertices":[-0.0101738,1.5,6.55678,-0.0101738,1.5,...]
"materials":[{
    "DbgIndex":0,
    "blending":1,
    "colorSpecular":[1,1,1],
    "opacity":1,
    "colorDiffuse":[0.8,0.554325,0.316799],
    "mapDiffuseWrap":["repeat","repeat"],
    "transparent":false,
    "wireframe":false,
    "DbgColor":15658734,
    "depthWrite":true,
    "specularCoef":50,
    "mapDiffuse":"parket.jpg",
    "mapDiffuseRepeat":[1,1],
    "visible":true,
    "mapDiffuseAnisotropy":1,
    "shading":"phong",
    "depthTest":true,
    "doubleSided":false,
    "colorEmissive":[0,0,0],
    "DbgName":"Les"
},{
    "DbgIndex":1,
    "blending":1,
    "colorSpecular":[1,1,1],
    "opacity":1,
    "colorDiffuse":[0.287043,0.0523764,0.0102247],
    "transparent":false,
    "wireframe":false,
    "DbgColor":15597568,
    "depthWrite":true,
    "specularCoef":50,
    "visible":true,
    "shading":"phong",
    "depthTest":true,
    "doubleSided":false,
    "colorEmissive":[0,0,0],
    "DbgName":"\u010crna"
},{
    "DbgIndex":2,
    "blending":1,
    "colorSpecular":[1,1,1],
    "opacity":1,
    "colorDiffuse":[0.8,0.136903,0.018619],
    "transparent":false,
    "wireframe":false,
    "DbgColor":60928,
    "depthWrite":true,
    "specularCoef":50,
    "visible":true,
    "shading":"phong",
    "depthTest":true,
    "doubleSided":false,
    "colorEmissive":[0,0,0],
    "DbgName":"Rjava"
}],
"metadata":{
    "materials":3,
    "uvs":0,
    "generator":"io_three",
    "type":"Geometry",
    "vertices":276,
    "normals":109,
    "faces":241,
    "version":3
},
"faces":[35,22,0,1,2,0,0...]
"uvs":[]

}

JSON Loader:

                var loader = new THREE.JSONLoader();
                loader.load( 'samosteza.json', function ( geometry, material ) {
                    mesh = new THREE.Mesh( geometry, material);
                    mesh.scale.x = mesh.scale.y = mesh.scale.z = 30;
                    mesh.translation = THREE.GeometryUtils.center(geometry);
                    mesh.translateY(-150);
                    scene.add( mesh )
                }, 'parket.jpg');

Кто-нибудь знает, как отображать текстуру? У меня есть текстура ("parket.jpg") в той же папке, что и файл index.html.

РЕДАКТИРОВАТЬ:

Я только что узнал, что текстура показана, но не подсказка. У меня есть текстура дерева, и все, что я вижу, это коричневый цвет. Я попытался изменить текстуру с другой, но всегда получаю один цвет на объекте, а не полную текстуру.

Изображение 174551

Текстура:

Изображение 174551

Теги:
three.js

1 ответ

0

Может быть, это поможет вам?

mesh.material.map = THREE.ImageUtils.loadTexture( src );
mesh.material.needsUpdate = true;
  • 0
    Нет, результат все тот же.
  • 0
    На основании документации " threejs.org/docs/index.html#api/loaders/JSONLoader " не должно быть третьего параметра ... также в документации указано, что у них есть материалы [0]. Не могли бы вы проверить источник еще раз? Также, где вы добавили вышеупомянутые 2 строки?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню