我在渲染 3D 网格对象时遇到问题。我在 C# 中准备了 3D 网格对象并进行了渲染。不幸的是,必须锋利的边缘是弧度的。
谁能解释一下是什么原因。
我正在使用 Visual Studio 2008 - C# Express Edition。3D 闭合网格对象具有 appr。66.000 个顶点。同时,它不仅有平面,还有曲面
我的意思是两个平面相交的边缘不是直的。
您的顶点只有一个法线 - 这是共享该顶点的所有三角形的法线的平均值。
为了获得平坦的阴影,每个顶点必须被视为具有 [n] 个法线 - 其中 [n] 是共享顶点的三角形的数量,并且每个法线必须与三角形的法线相同。一些系统要求顶点确实有 [n] 条法线,但如果您知道您在所有三角形上都是平面着色,那么您可以从三角形继承法线,这并不是绝对必要的。如果(正如 Warren Young 提到的)某些部分是平面阴影而其他部分是平滑阴影,那么您将需要在平面阴影三角形相交的那些顶点处分配额外的法线。
如果没有您正在使用的建模系统的详细信息,(甚至可能没有!)我无法建议您如何实现这一目标。