我计算出一个具有完全相同位置但加倍的顶点的立方体的网格,如下所示:
+----+
/ /
/ /
Q0> +----+ <Q1
P0> +----+ <P1
| |
| |
+----+
P0
和Q0
具有完全相同的位置,但是是两个不同的顶点。 P1
和Q1
相同。
我的着色器需要的是顶点处的单独元数据(UV0
,UV1
,颜色,等等)。这就是为什么即使在同一位置,我也必须将顶点加倍。
也就是说,我的问题如下。在P0->P1
和Q0->Q1
的接缝处呈现了一个间隔。它通常小于一个像素,但仍然可以感知。看看这张效果图拼贴:
我用4个蓝色箭头指出了这些工件。到BL角较小的图像是完美对准的相机,而较大的图像是倾斜的相机。
我没有抗锯齿(我需要像素化的艺术风格),并且纹理没有经过过滤且没有mipmap。如有必要,我可以提供纹理的完整设置。
我的问题是为什么这些假象会出现在成角度的三角形接缝上?三角形之间还有多个接缝,这些接缝是共面的,没有接缝可见。
UV在epsilon(像素的1/100)上方有一个很小的填充物,以减少纹理渗出。纹理位于阵列中,而不位于地图集中!
该算法基于int
,并且仅基于Vector3
和float
的网格构造。这意味着算法中不会存在任何舍入误差,这是非常简单的顺便说一句。
伪像必须是转换后到Vector3
的来源,并且看起来像是舍入误差,但是我希望从硬件中确定顶点的位置会导致Peano-Jordan纹素完美对齐。
这是怎么回事,我该如何去除那些工件?
答案 0 :(得分:0)
现在解决了。
首先,我将纹理设置为Clamp
模式(它是Repeat
)。那解决了问题。但是,按照绝对必要Repeat
的方式在过程上生成网格。
因此,我必须删除Clamp
(并将其设置回Repeat
)。但是到那时,很清楚发生了什么:没有空隙,并且所有东西都是像素完美的。问题在于纹理填充,它是像素的1/100,因此太低了。我把它提高到一半像素,问题就消失了!
出于道德原因,我不会接受自己的回答,因此,此内容仅出于后代目的。