首先,我是 glsl 和 Three.js 的初学者 :)。
这是我的shader1的顶点和片段着色器(非常简单):
void main() {
gl_Position = projectionMatrix * modelViewMatrix * vec4( position,1.0);
}
void main() {
gl_FragColor = vec4(1.0,0.0,0.0,1.0);
}
在我的 init() 函数中有:
var geometry = new THREE.CubeGeometry(2, 2, 2);
var material = new THREE.MeshLambertMaterial({color: 0xffaaff});
cube = new THREE.Mesh(geometry, material);
scene.add(cube);
var effect1 = new THREE.ShaderPass(THREE.ShaderExtras[ "shader1" ]);
effect1.renderToScreen=true;
composer = new THREE.EffectComposer( renderer);
composer.addPass(renderScene);
composer.addPass(effect1);
在我的函数 render() 中:
Renderer.clear() ;
composer.render();
但最后我所有的屏幕都是红色的,不仅是我的立方体。怎么了 ?
谢谢你。