three.js 中的自定义抗锯齿设置

Custom antialiasing settings in three.js

我正在尝试找到一种方法来指定三个抗锯齿设置。js/WebGL 尝试改进结果。

问题是,使用完全相同的代码,如果我在 Retina 显示器上加载模型,抗锯齿效果非常好(即使我之后将它移到我的非 Retina 外接显示器),但它都是像素化的如果我先在非视网膜屏幕上加载它。

这是一张屏幕截图(均在 Chrome 上显示,均显示在视网膜显示屏上)。左侧加载在非视网膜上,右侧加载在视网膜上:https://i.imgur.com/krNavZU.png

我从中得到的是 three.js 在初始化抗锯齿时以某种方式使用了像素密度。有什么办法可以调整它以便我可以将它强制为更好的东西吗?

非常感谢您的帮助:)


旁注:郑重声明,Firefox 上的抗锯齿效果似乎也更好,有人知道为什么吗?

以防万一有人想做我正在尝试的同样类型的调整,我会回答我自己的问题。

根据 WaclawJasper 的评论,我在 Three.js 中找到了一些与我的问题相关的文档。来自 http://threejs.org/docs/#Reference/Renderers/WebGLRenderer:

.setPixelRatio ( value )

Sets device pixel ratio. This is usually used for HiDPI device to prevent blurring output canvas.

我在初始化时使用了 renderer.setPixelRatio( window.devicePixelRatio );,这就是渲染取决于页面首次加载位置的原因 loaded.

关于抗锯齿,我现在在非视网膜屏幕上使用 renderer.setPixelRatio(2); 人为地提高像素密度。这会导致更有效的抗锯齿,但会增加计算量。