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