0

在所有多边形都具有相同的法线和相当大的颜色差异的多边形网格中插入颜色的最佳方法是什么?使用 GLSL(带有 gouraud 或 phong 着色)是正确的方法还是我应该在其他地方(在 cpu 端)使用它?还是我完全错了?

ps:我使用的是OpenGL 4.0+

我想在这样的网格上插入颜色。

彩色多边形网格

4

1 回答 1

0

根据您的图片,您需要对每个三角形(面)进行平面着色。在您的顶点缓冲区中,您可以为每个三角形添加顶点颜色属性。事实上,它将是每个顶点的颜色,因此如果您使用交错的顶点缓冲区数组,它可能如下所示:

[
 vertex1.x , vertex1.y , vertex1.z ,vertex1color.r ,vertex1color.g ,vertex1color.b,
 vertex2.x , vertex2.y , vertex2.z ,vertex2color.r ,vertex2color.g ,vertex2color.b,
 vertex3.x , vertex3.y , vertex3.z ,vertex32color.r vertex3color.g ,vertex3color.b

..... the same for the rest of triangles ...
]

然后,在顶点着色器中为输出颜色设置一个变量,然后片段着色器使用它来“绘制”您的片段。现在,重要的是不要为该变量设置插值但平坦。这样颜色就不会被插值穿越原始人。 是一个如何做到这一点的示例。(如果您使用的是 GLSL 330 或更高版本,则将“变化”替换为 in / out )

于 2013-06-10T17:33:21.017 回答