是否可以使用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,这没有用。我受到这个问题的启发:
Dynamically turn on/off antialiasing and shadows in WebGLRenderer
但是没有明确的答案。
答案 0 :(得分:0)
目前使用Three.js是不可能的。
您需要重新创建整个上下文以允许AA打开和关闭,并且不能在此之间切换。我建议您使用布尔变量来确定在执行客户端之前AA是否打开和关闭。 E.H. HD / SD,如果HD boolean AA = true,则使用WebGLRenderer来允许AA和反向。但是你不能在运行时动态地改变它。