在.cg文件中编写的OpenGL着色器代码与在vsh / fsh文件中的另一个之间有什么区别?

时间:2013-03-15 03:01:36

标签: xcode opengl-es shader

我是 OpenGL ES 2.0 初学者,我不明白为什么着色器不同类型代码。特别是.cg.vsh / .fsh之间的差异。

2 个答案:

答案 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