Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在制作一个体素引擎,将世界分成块,每个块有 32 x 32 x 32 个块。我一直在实现许多渲染优化,例如不渲染被实体体素覆盖的面或为相同的相邻体素进行面合并。
问题是我想实现逐顶点环境遮挡,从 CPU 计算遮挡并将其传递给着色器,就像那个图像一样。它几乎可以正常工作,但是由于 OpenGL 对片段的最终颜色进行了线性插值,因此面合并会在较大的面上产生更大的渐变。
我现在想知道是否有办法解决这个问题,通过告诉片段着色器片段离顶点有多远或类似的东西。
最好完全放弃您的“面部合并”系统。虽然不仅仅是因为它可以让你更有效地做这些遮挡的事情。
人脸合并系统的一个问题是,只有当两个共享位置是二进制相同值时,渲染器才保证两个三角形之间的边不会有间隙。您的面部合并系统有许多部分共享边的三角形。在这些情况下,GPU 不保证任何关于边缘的事情。这可能会导致边缘之间出现明显的裂缝。