为什么两个 3D 对象的交叉点是锯齿形的?
Why is intersection of two 3D objects zig-zag?
我以前没有使用 DirectX 的经验,我只是被分配到一个需要快速修改的项目。
我目前正面临这个问题:我的表面实际上是一个带纹理的平面,由 1024x1024 点(地形)定义。它渲染得很好,我很满意。然后是一个与地形相交的正交黄色半透明平面。从侧面看,如下图(注意地势有多平坦):
但是,如果我从不同的角度看同一个场景,我会看到两个平面以之字形相交,好像其中一个平面并不是真正的平面。这让我很烦。看起来像一个天真的画家的算法被用来将地形的各个三角形与黄色平面相交。
知道如何说服 DirectX 创建平滑的交叉点吗? (会不会是我找不到一个参数的问题?)
Why?
Z 缓冲区分辨率不足。
May it be just a matter of one parameter which I can't find?
主要参数是传递给顶点着色器的世界*视图*投影矩阵。
通过将近处和远方 Z 裁剪平面移动到一起来修复、限制视图区域的 Z 大小的一种方法。
或者,如果您处理大地形并希望查看以千米为单位的场景,则需要对数深度或类似的东西,请参阅this article 比较几种方法。
我以前没有使用 DirectX 的经验,我只是被分配到一个需要快速修改的项目。
我目前正面临这个问题:我的表面实际上是一个带纹理的平面,由 1024x1024 点(地形)定义。它渲染得很好,我很满意。然后是一个与地形相交的正交黄色半透明平面。从侧面看,如下图(注意地势有多平坦):
但是,如果我从不同的角度看同一个场景,我会看到两个平面以之字形相交,好像其中一个平面并不是真正的平面。这让我很烦。看起来像一个天真的画家的算法被用来将地形的各个三角形与黄色平面相交。
知道如何说服 DirectX 创建平滑的交叉点吗? (会不会是我找不到一个参数的问题?)
Why?
Z 缓冲区分辨率不足。
May it be just a matter of one parameter which I can't find?
主要参数是传递给顶点着色器的世界*视图*投影矩阵。
通过将近处和远方 Z 裁剪平面移动到一起来修复、限制视图区域的 Z 大小的一种方法。
或者,如果您处理大地形并希望查看以千米为单位的场景,则需要对数深度或类似的东西,请参阅this article 比较几种方法。