【问题标题】:Computer graphics: polygon mesh计算机图形学:多边形网格
【发布时间】:2021-03-09 23:05:23
【问题描述】:
所以多边形网格定义如下:
class Triangle{
int vertices[3]; //vertex indices
float nx, ny, nz; //face-plane normal
};
-
这是表示使用平面着色的网格的便捷方式吗?解释
-
建议使用 Gouraud 着色时使用这种网格格式的对象。解释
-
建议使用 Gouraud 着色时网格格式不佳的对象。解释
所以对于 1,我说是的,因为面平面法线可以很容易地转换为面中间的一个点。我在某处读到法线没有位置?
对于 2 我说的是一个球;更柔和的角度
还有3个一盒;更陡的角度。
我不知道,我想我并没有真正理解法线向量是什么。
【问题讨论】:
标签:
graphics
polygon
normals
【解决方案1】:
-
大部分是的
从几何计算是可以的,但是从渲染方面来说,只有索引形式的三角形有时可能会出现问题(取决于渲染引擎、硬件等)。通常将三角形点直接以矢量形式而不只是索引会更快,有时三角形包含两者...但是这是浪费空间。
-
取决于你如何分类什么可以,什么不可以。
像球体这样的光滑物体看起来像这样
虽然像立方体这样的平面网格在渲染时不会出现明显的形状扭曲(但只有像平面阴影这样的颜色,所以照明会被破坏)
所以这个问题的答案取决于你想要实现更少的照明误差,或者更好的形状识别等等。基本上使用 1 法线作为面部会将 Gourard 变成平面阴影。
可以通过将大平面分成更多三角形来改善照明
-
由于与 #2 相同的原因而无法回答
所以如果你想回答#2,#3,你需要弄清楚它的好与坏是什么意思......