Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.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.WebGLRenderer以切换抗锯齿_Javascript_Three.js - Fatal编程技术网

Javascript 重新初始化THREE.WebGLRenderer以切换抗锯齿

Javascript 重新初始化THREE.WebGLRenderer以切换抗锯齿,javascript,three.js,Javascript,Three.js,所以我想要一个简单的解决方案。一个切换按钮,可根据用户的需要刷新Three.js场景,前提是用户是否需要场景的抗锯齿版本。我的刷新\u场景功能如下: function refresh_scene() { scene.remove( floor ); floor.geometry.dispose(); floor.material.dispose(); floor = null; scene.dispose(); scene = null;

所以我想要一个简单的解决方案。一个切换按钮,可根据用户的需要刷新Three.js场景,前提是用户是否需要场景的抗锯齿版本。我的
刷新\u场景
功能如下:

function refresh_scene()
{
    scene.remove( floor );
    floor.geometry.dispose();
    floor.material.dispose();
    floor = null;
    scene.dispose();
    scene = null;
    controls.dispose();
    controls = null;
    camera = null;
    renderer.dispose();
    renderer = null;
    canvas = null;
    cancelAnimationFrame(reqAnimFrame);
    visualizer();
}
每次按下按钮时都会调用此函数。然后,
visualizer()
将再次显示所有对象。这还包括获取画布、创建新渲染器、新场景等。出于某种原因,新渲染器不显示场景的抗锯齿版本,而是反复显示同一场景,尽管“切换”按钮切换一个随后在
可视化工具()中使用的
抗锯齿值
根据新值重新初始化渲染器的函数:

renderer = new THREE.WebGLRenderer({canvas, antialias: antialiasing_});

其中,
抗锯齿
是切换
true
false
的布尔值。我做错什么了吗?任何帮助都将不胜感激。如果需要,可以上载代码的其他部分。

项目
选项卡中提供了一个选项,用于启用/禁用抗锯齿。它毫无问题地工作。因此,您的应用程序中似乎存在问题。不幸的是,到目前为止,你所分享的并不清楚到底出了什么问题。考虑用一个简单的可编辑的实况示例来演示这个问题。确保您的设备支持反别名(可以在驱动程序级别关闭或者在浏览器中被列入黑名单)(用于Chrome检查)chrome://gpu/ ))该规范说“如果该值为真,且实现支持抗锯齿…”我假设
true
表示truthy,但最好使用
true
而不是
truthy
。如果antialias是
未定义的
并且在获取上下文时保持truthy和falsy值不变,则只有三种力量
false
。请参阅我快速地挖掘代码,您可以看到,正在更改的反别名设置需要重新创建渲染器。