我有一个使用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 );