繁体   English   中英

使用three.js动态打开/关闭抗锯齿

[英]Dynamically switch antialiasing on/off with three.js

是否可以使用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),则场景只是冻结,并且抗锯齿没有变化。

我还尝试将不活动的渲染器domElement设置为null,这没有帮助。 这个问题启发了我:

在WebGLRenderer中动态打开/关闭抗锯齿和阴影

但是没有确切的答案。

目前无法使用Three.js。

您需要重新创建整个上下文,以允许打开和关闭AA,并且不能在两者之间进行切换。 我建议您具有布尔变量,这些变量确定在执行客户端之前是否打开和关闭AA。 Eh HD / SD,如果HD布尔值AA = true,请使用WebGLRenderer允许AA和反向。 但是您不能在运行时动态更改此设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM