javascript – 如何将着色器添加到从OBJMTLLoader加载的THREE.Object3D

我有一个使用THREE.OBJMTLLoader加载的模型.

var loader = new THREE.OBJMTLLoader();
loader.addEventListener('load', function(event) {
    var mesh = event.content;
    scene.add(mesh);
});
loader.load('model/machine.obj', 'model/machine.mtl');

我需要将顶点和片段着色器应用于此模型.这该怎么做?

解决方法:

除了Gero3的答案之外,这还可以确保内容中的所有网格都能获得正确的材质:

var material = new THREE.ShaderMaterial( {

    uniforms: shader.uniforms,
    fragmentShader: shader.fragmentShader,
    vertexShader: shader.vertexShader

} );

var object = event.content;
object.traverse( function ( child ) {

    if ( child instanceof THREE.Mesh ) {

        child.material = material;

    }

} );
scene.add( object );
上一篇:javascript-使用Earcut对来自OpenType.js的路径数据进行三角剖分


下一篇:从Android模拟器使用WebView WebGL