2

似乎当 overdraw 设置为 true 时,画布渲染器实际上将填充扩展到面的边缘之外,因此它们重叠了一点。这通常很好,但是当材料是透明的时,这些重叠的边缘会产生不受欢迎的线框类型伪影。

请参阅示例中的粉红色箭头:示例

有没有办法玩实际扩展了多少填充?恐怕源代码只是在我头上,但如果有人能指出处理的地方(源代码中的哪一行),那将不胜感激。如果做不到这一点,希望有人知道另一种解决方案或解决方法。

我意识到使用 WebGL 渲染器时问题会消失,但我被要求尽可能在 Canvas 上进行这项工作。

4

1 回答 1

3

是的。恐怕没有解决方案CanvasRenderer

但是如果你想尝试一些值......这是执行此操作的函数:

https://github.com/mrdoob/three.js/blob/master/src/renderers/CanvasRenderer.js#L1011-1025

你可以试试这个...

idet = ( 1 / Math.sqrt( det ) ) * 0.5;

然后,在你的系统中安装了 python,转到 /utils 并运行它来生成一个新的 Three.js:

python build.py --common

这是为了在你完成后缩小它:

python build.py --common --minified

但我认为你可能会在不同的浏览器中得到不同的结果。

很想知道你是否解决了这个问题。

于 2012-08-04T19:51:17.647 回答