Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 Cg 教程中,它说 Cg 使用动态编译。我注意到它的编译器与解释器有一些相似之处,因为它们不需要在第一遍编译所有代码,如果存在错误,您会在运行 exe 时找到它。
但是,它们之间有什么区别。谁能给我一些细节?非常感谢。
在这种情况下,Cg 代码是在运行时编译的。这类似于编译成中间形式(例如 p 代码等)的解释器。在 GPU 上执行此操作的主要原因是,编译结果可能会因运行时计算机的配置而略有不同。Cg (通常)编译为 OpenGL 汇编器(例如,'fp40' 或 'arbfp' 用于片段程序)。
确实,这个编译的汇编代码被 GPU 驱动程序进一步编译成微码,但这个过程对程序员是完全隐藏的(除非他们在 NVIDIA 等公司工作)。