Как наложить текстуру на сетку, экспортированную из blender как wrl и импортированную в threejs с помощью VRMLLoader - PullRequest
0 голосов
/ 03 мая 2019

Я экспортировал простую сетку из blender как wrl.У меня также есть «умная развертка».Я использую эту сетку только для ее геометрии и применяю материал через ThreeJS.Затем я связываю текстуру с импортированной сеткой, а также устанавливаю для свойства needsUpdate материала (MeshPhongMaterial) значение true.

Результат выглядит следующим образом:

enter image description here

Применяемая текстура:

enter image description here

Ниже приведены выдержки из кода:

function generateCustomTHREEMeshFromWRL(name) {
    return vrmlLoader.parse(getResource(name).content).children[0]
    //the getResource(name).content returns the entire wrl file content
}
mesh = generateCustomTHREEMeshFromWRL('unwrapped.wrl')  
mesh.material.map = textureLoader.load('lavatile.jpg')
mesh.material.needsUpdate = true;
scene.add(mesh)

Файл WRL выглядит следующим образом:

#VRML V2.0 utf8
#modeled using blender3d http://blender.org

# 'Cube'
Shape {
    appearance Appearance {
        material Material {
        }
    }
    geometry IndexedFaceSet {
        coord Coordinate {
            point [ -1.000000 -1.000000 1.000000 -1.000000 -1.000000 -1.000000 1.000000 -1.000000 -1.000000 1.000000 -1.000000 1.000000 -1.000000 1.000000 0.999999 -0.999999 1.000000 -1.000001 1.000000 1.000000 -1.000000 1.000000 1.000000 1.000000 ]
        }
        colorPerVertex FALSE
        color Color {
            color [ 0.80 0.80 0.80 ]
        }
        colorIndex [ 0 0 0 0 0 0 0 0 0 0 0 0 ]
        coordIndex [ 1 3 0 -1 7 5 4 -1 4 1 0 -1 5 2 1 -1 2 7 3 -1 0 7 4 -1 1 2 3 -1 7 6 5 -1 4 5 1 -1 5 6 2 -1 2 6 7 -1 0 3 7 -1 ]
    }
}

Это представление о действиях, которые я выполняю в блендере enter image description here

...