THREE.JS 抗锯齿在多场景设置中不起作用
THREE.JS Anti-Alias not working in multi-scene set-up
让抗锯齿在覆盖在大场景之上的小场景上正常工作的技巧是什么?
在此处查看 fiddle:
https://jsfiddle.net/gilomer88/j974zmq0/6/
当您点击任何一个立方体时,您会看到一个新的较小的“detailsScene”在主场景的顶部打开 - 而那个“detailsScene”中的立方体看起来不太好。 (这里看起来可能没那么糟糕,但相信我,在我的真实项目中,我正在加载一个“.glb”模型,那里看起来真的很糟糕。而且它不是关闭的模型。我知道,因为当我加载它在我的主场景中看起来 100% 完美。除非出于某种原因我必须将它重新加载到这个较小的场景中...?)
否则我很确定我为这个较小的场景设置了正确的渲染器,使用:
detailsRenderer.setPixelRatio( window.devicePixelRatio );
(您会在 fiddle 代码的 JS 的第 192 行找到该位。)
有什么想法吗?
抗锯齿工作正常。场景有点模糊,因为 canvas 被放大,而渲染器以较小的尺寸渲染。您应该始终设置渲染器的大小,使其与 canvas 大小相匹配。仅仅将 canvas 元素传递给渲染器显然不足以让渲染器知道它应该渲染场景的大小。
detailsRenderer.setSize(detailsCanvas.offsetWidth, detailsCanvas.offsetHeight);
让抗锯齿在覆盖在大场景之上的小场景上正常工作的技巧是什么?
在此处查看 fiddle: https://jsfiddle.net/gilomer88/j974zmq0/6/
当您点击任何一个立方体时,您会看到一个新的较小的“detailsScene”在主场景的顶部打开 - 而那个“detailsScene”中的立方体看起来不太好。 (这里看起来可能没那么糟糕,但相信我,在我的真实项目中,我正在加载一个“.glb”模型,那里看起来真的很糟糕。而且它不是关闭的模型。我知道,因为当我加载它在我的主场景中看起来 100% 完美。除非出于某种原因我必须将它重新加载到这个较小的场景中...?)
否则我很确定我为这个较小的场景设置了正确的渲染器,使用:
detailsRenderer.setPixelRatio( window.devicePixelRatio );
(您会在 fiddle 代码的 JS 的第 192 行找到该位。)
有什么想法吗?
抗锯齿工作正常。场景有点模糊,因为 canvas 被放大,而渲染器以较小的尺寸渲染。您应该始终设置渲染器的大小,使其与 canvas 大小相匹配。仅仅将 canvas 元素传递给渲染器显然不足以让渲染器知道它应该渲染场景的大小。
detailsRenderer.setSize(detailsCanvas.offsetWidth, detailsCanvas.offsetHeight);