我是 OpenGL ES 2.0 初学者,我不明白为什么着色器的不同类型代码。特别是.cg
和.vsh
/ .fsh
之间的差异。
答案 0 :(得分:4)
Cg 是由 NVIDIA 拥有和运营的着色语言。 GLSL 是 OpenGL 的着色语言。 Cg 基于代表 GLSL 版本和着色器阶段类型的"profile"编译为某种形式的 GLSL 。
如果您使用 OpenGL ES ,则应忽略 Cg 。您不能在 OpenGL ES 中使用 Cg ,因为 ES 的 GLSL 版本的要求 Cg 无法履行。因此,如果您使用 Cg 看到一些教程,请忽略它。
扩展名完全无关紧要。使用最清楚的扩展名; OpenGL 不会读取文件,因此您需要将着色器字符串提供给glView。
答案 1 :(得分:1)
如果您使用 Nvidia 的 CG工具包,则通常使用.cg
作为文件扩展名,
但如果您使用 GLSL着色器,则可以使用.vsh
,.fsh
,.frag
,.vert
或.glsl
。