2014-03-04 88 views
0

我剛剛得到了一箇舊的OpenGL(2.1)/ Cg(3.1)代碼,我應該改進它,特別是延遲着色渲染,其中我想更改其中一個通道的內核。混合Cg和GLSL着色器

我添加GLSL(3.30)因爲我更習慣了。這似乎工作,但我想知道是否可能是一些性能影響混合(GLSL/Cg)。換句話說,生成的asm代碼應該完全同質?

回答

0

您不能在單個着色器中混合使用GLSL和Cg,但在不同着色器中,它應該可以正常工作。 Cg代碼無論如何都會被轉換爲GLSL(除非您使用的是Nvidia驅動程序,在這種情況下,它可能會直接轉換爲着色器代碼)。你可以看看Cg編譯器生成的GLSL代碼,如果你想看看它做的奇怪的事情是否可能是低效的。

0

你應該能夠在你的Cg代碼上運行cgc作爲預處理器並讓它輸出GLSL!使用-profile選項來選擇GLSL。