Opengl 使用Gouraud着色为球体着色

Opengl 使用Gouraud着色为球体着色,opengl,Opengl,我正试图给一个球体加上阴影。我计算了球体每个顶点的法线,但我不知道面上的其他像素将如何着色。有什么帮助吗?我使用的是OpenGL 3+。对于Gouraud着色,照明模型计算为三角形每个顶点的颜色,然后在三角形像素上线性插值 在OpenGL中,您只需将顶点着色器中每个顶点的照明模型计算为颜色向量,作为变量传递给片段着色器,然后自动免费完成线性插值 如果需要Phong着色,请将顶点法线直接传递给片段着色器,该着色器也将自动进行线性插值,然后使用该插值法线计算片段着色器中的照明模型。显示您的代码和问题

我正试图给一个球体加上阴影。我计算了球体每个顶点的法线,但我不知道面上的其他像素将如何着色。有什么帮助吗?我使用的是OpenGL 3+。

对于Gouraud着色,照明模型计算为三角形每个顶点的颜色,然后在三角形像素上线性插值

在OpenGL中,您只需将顶点着色器中每个顶点的照明模型计算为颜色向量,作为变量传递给片段着色器,然后自动免费完成线性插值


如果需要Phong着色,请将顶点法线直接传递给片段着色器,该着色器也将自动进行线性插值,然后使用该插值法线计算片段着色器中的照明模型。

显示您的代码和问题。基本上,在角点处计算的颜色将简单地插值到曲面上。我不明白在镶嵌面上的其他像素将如何着色。你想让它们如何着色?这是我不知道的>>线性插值是免费自动完成的。因此,基本上对于着色,我不会弄乱主代码,我只需要编辑*.vert和*.frag文件?禁用此插值的唯一方法是启用glShadeModelGL_平面与较旧的OpenGL兼容配置文件。不,您可以在着色器中执行除上面之外的所有操作。