Cg中使用的动态编译和某些脚本中使用的Interpreter有什么区别?

时间:2012-04-26 16:56:45

标签: interpreter cg dynamic-compilation

在Cg教程中,它说Cg使用动态编译。我注意到它的编译器与解释器有一些相似之处,因为它们不需要在第一遍中编译所有代码,如果存在错误,你将在运行exe时找到它。

然而,他们之间有什么区别。谁能给我一些细节?非常感谢。

1 个答案:

答案 0 :(得分:0)

在这种情况下,Cg代码在运行时编译。这类似于编译为中间形式(例如p代码等)的解释器。在GPU上执行此操作的主要原因是,根据运行时计算机的配置,编译结果可能略有不同。 Cg(通常)编译为OpenGL汇编程序(例如,片段程序的'fp40'或'arbfp')。

这个编译后的汇编程序代码确实被GPU驱动程序进一步编译成微码,但这个过程对程序员来说是完全隐藏的(除非它们在NVIDIA等处工作)。