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

时间:2016-02-24 13:41:42

标签: three.js webgl antialiasing

我正在尝试找到一种方法来指定three.js / WebGL中的一些抗锯齿设置,以尝试改善结果。

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

这是一个截图(两者都在Chrome上,都显示在视网膜显示屏上)。左侧是视网膜上的非视网膜:https://i.imgur.com/krNavZU.png

我从中得到的是,在初始化抗锯齿时,three.js以某种方式使用像素密度。无论如何要调整这个以便我可以强迫它做更好的事情吗?

非常感谢您的帮助:)

附注:为了记录,似乎抗锯齿功能在Firefox上运行得更好,有谁知道为什么?

1 个答案:

答案 0 :(得分:4)

万一有人想要做同样的调整,我会回答我自己的问题。

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

  

.setPixelRatio(value)

     

设置设备像素比率。这通常用于HiDPI设备,以防止模糊输出画布。

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

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