Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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
THREE.JS Anti-Alias在多场景设置中不起作用_Three.js_Antialiasing - Fatal编程技术网

THREE.JS Anti-Alias在多场景设置中不起作用

THREE.JS Anti-Alias在多场景设置中不起作用,three.js,antialiasing,Three.js,Antialiasing,让抗锯齿在较小的场景(覆盖在大场景之上)上正常工作的诀窍是什么 看看这里的小提琴: 当你点击你看到的任何一个立方体时,一个新的较小的“detailsScene”会在主场景的顶部打开,而“detailsScene”中的立方体看起来不太好。(这里看起来可能没那么糟糕,但相信我,在我的真实项目中,我加载了一个“.glb”模型,它在那里看起来非常糟糕。而且它不是关闭的模型。我知道这一点,因为当我将它加载到我的主场景中时,它看起来100%完美。除非出于某种原因我不得不将它重新加载到这个较小的场景中…?)

让抗锯齿在较小的场景(覆盖在大场景之上)上正常工作的诀窍是什么

看看这里的小提琴:

当你点击你看到的任何一个立方体时,一个新的较小的“detailsScene”会在主场景的顶部打开,而“detailsScene”中的立方体看起来不太好。(这里看起来可能没那么糟糕,但相信我,在我的真实项目中,我加载了一个“.glb”模型,它在那里看起来非常糟糕。而且它不是关闭的模型。我知道这一点,因为当我将它加载到我的主场景中时,它看起来100%完美。除非出于某种原因我不得不将它重新加载到这个较小的场景中…?)

否则,我非常确定我使用以下方法为这个较小的场景设置了正确的渲染器:

detailsRenderer.setPixelRatio( window.devicePixelRatio );
(您将在fiddle代码的JS中的第192行找到该位。)


有什么想法吗?

抗锯齿工作正常。场景只是有点模糊,因为画布是按比例放大的,而渲染器渲染的大小较小。您应该始终设置渲染器的大小,使其与画布大小匹配。仅将画布元素传递给渲染器显然是不够的,无法让渲染器知道渲染场景的大小

detailsrender.setSize(detailsCanvas.offsetWidth,detailsCanvas.offsetHeight);