Opengl 混合Cg和GLSL着色器

Opengl 混合Cg和GLSL着色器,opengl,glsl,cg,Opengl,Glsl,Cg,我刚刚得到了一个旧的OpenGL(2.1)/Cg(3.1)代码,我应该对其进行改进,特别是延迟着色渲染,我想更改其中一个过程的内核 我添加了GLSL(3.30),因为我已经习惯了很多。这似乎是可行的,但我想知道,如果将两者(GLSL/Cg)混为一谈,是否会对性能产生一些影响。换句话说,生成的asm代码应该是完全同质的?不能在单个着色器中混合使用GLSL和Cg,但在不同的着色器中,它应该可以正常工作。Cg代码只是以任何方式转换为GLSL(除非您使用的是Nvidia驱动程序,在这种情况下,它可能会直

我刚刚得到了一个旧的OpenGL(2.1)/Cg(3.1)代码,我应该对其进行改进,特别是延迟着色渲染,我想更改其中一个过程的内核


我添加了GLSL(3.30),因为我已经习惯了很多。这似乎是可行的,但我想知道,如果将两者(GLSL/Cg)混为一谈,是否会对性能产生一些影响。换句话说,生成的asm代码应该是完全同质的?

不能在单个着色器中混合使用GLSL和Cg,但在不同的着色器中,它应该可以正常工作。Cg代码只是以任何方式转换为GLSL(除非您使用的是Nvidia驱动程序,在这种情况下,它可能会直接转换为着色器asm代码)。如果您想查看Cg编译器生成的GLSL代码是否存在效率低下的问题。

您应该能够在Cg代码上运行cgc作为预处理器,并在必要时将其输出GLSL!使用-profile选项选择GLSL