Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用three.js动态打开/关闭抗锯齿_Javascript_3d_Three.js_Webgl_Antialiasing - Fatal编程技术网

Javascript 使用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

是否可以使用three.js动态地打开/关闭抗锯齿?我尝试了以下根本不起作用的方法:

`
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和反转。但您不能在运行时动态地更改它

可能重复的