use*_*030 5 javascript webgl three.js
我使用的是EffectComposer:
renderer = new THREE.WebGLRenderer();
renderer.setDepthTest(false);
...
composer = new THREE.EffectComposer( renderer);
Run Code Online (Sandbox Code Playgroud)
所以我想禁用深度测试,但是当我这样做时:
composer.render();
var gl = renderer.context;
alert(gl.getParameter(gl.DEPTH_TEST));
Run Code Online (Sandbox Code Playgroud)
值为true而不是false.如何禁用深度测试?
谢谢.
我意识到这是三年之后,但我在研究Three.js(版本r73)中的z缓冲区时遇到了它.为了在渲染器中禁用DEPTH_TEST,我最终执行了以下操作(Google Chrome版本47.0.2526.106 m):
var renderer = new THREE.WebGLRenderer( { antialias: true });
renderer.setClearColor(0xaaaaaa);
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.context.disable(renderer.context.DEPTH_TEST);
document.body.appendChild(renderer.domElement);
var render = function () {
requestAnimationFrame(render);
renderer.render(scene, camera);
};
render();
var gl = renderer.context;
alert(gl.getParameter(gl.DEPTH_TEST));
Run Code Online (Sandbox Code Playgroud)
renderer.context.disable(renderer.context.DEPTH_TEST)在创建渲染器时使用键.
我一开始尝试使用renderer.setDepthTest(false),但它实际上没有加载.我没有深入研究,看看这只是与我现有项目的交互,实际的错误,还是可能删除,但是现在我建议只使用上述工作方法.