混合Cg和GLSL着色器

时间:2014-03-04 10:34:32

标签: opengl glsl cg

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

我正在添加GLSL(3.30)因为我更习惯了。它似乎有效,但我想知道它是否会对某些性能影响混合起来(GLSL / Cg)。换句话说,生成的asm代码应该完全同质吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

你应该能够在你的Cg代码上运行cgc作为预处理器并让它输出GLSL,捏一下!使用-profile选项选择GLSL。