Javascript 使用three.js动态打开/关闭抗锯齿
是否可以使用three.js动态地打开/关闭抗锯齿?我尝试了以下根本不起作用的方法:Javascript 使用three.js动态打开/关闭抗锯齿,javascript,3d,three.js,webgl,antialiasing,Javascript,3d,Three.js,Webgl,Antialiasing,是否可以使用three.js动态地打开/关闭抗锯齿?我尝试了以下根本不起作用的方法: ` var rendererAA = new THREE.WebGLRenderer({{ antialias: true }}); rendererAA.setSize( window.innerWidth, window.innerHeight ); document.body.appendChild( rendererAA.domElement ); var rendererNA = new THREE
`
var rendererAA = new THREE.WebGLRenderer({{ antialias: true }});
rendererAA.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( rendererAA.domElement );
var rendererNA = new THREE.WebGLRenderer({{ antialias: false }});
rendererNA.setSize( window.innerWidth, window.innerHeight );
rendererNA.domElement = rendererAA.domElement;
var renderer = rendererAA;
function render() {
if (somePredicate) {
renderer = rendererAA;
}else {
renderer = rendererNA;
}
requestAnimationFrame( render );
renderer.render( scene, camera );
}`
如果活动渲染器为rendererNA(somePredicate=false),则场景将冻结,并且抗锯齿没有更改
我还尝试将非活动的渲染器DomeElement设置为null,但没有帮助。我受到这个问题的启发:
但是没有明确的答案。这在Three.js中目前是不可能的 您需要重新创建整个上下文,以允许AA打开和关闭,并且不能只是在这两者之间切换。我建议您使用布尔变量来确定在客户端执行之前AA是否打开和关闭。E.h.HD/SD,如果HD布尔值AA=true,则使用WebGLRenderer允许AA和反转。但您不能在运行时动态地更改它 可能重复的