http://http.developer.nvidia.com/Cg/TessellationControlShader.html
我对CG有一些疑问。
CG支持哪些OpenGL版本?在他们的网站上他们说
Opengl功能要求
OpenGL 1.0
这对我来说有点奇怪。对我来说,这意味着我需要至少使用OpenGL 1.0来使用CG中的所有OpenGL功能。所有新的OpenGL功能都缺失了吗?
计算着色器似乎也缺失了
GeometryShader,PixelShader,TessellationEvaluationShader, VertexShader,FragmentProgram,GeometryProgram, TessellationControlProgram,TessellationEvaluationProgram, VertexProgram
CG现在是替代GLSL 4.x的可行替代方案吗?我可以在CG中编写所有可以在GLSL 4.3中编写的着色器吗?
答案 0 :(得分:4)
CG现在是替代GLSL 4.x的可行替代方案吗?我可以在CG中编写所有可以在GLSL 4.3中编写的着色器吗?
没有。虽然一些OpenGL 4.x功能(例如曲面细分)从Cg 3.1开始暴露,但其他功能却没有。
Cg 3.1(及其OpenGL名称)中值得注意的缺失功能包括:
一般来说,Cg往往比最新的OpenGL版本落后两三年。
答案 1 :(得分:4)
Cg has been end-of-lifed by NVidia so it will not be developed going forward:
Cg Toolkit是一款不再受到积极开发或支持的传统NVIDIA工具包。 Cg 3.1是我们的最新版本,虽然我们继续向开发人员提供它,但我们不建议在新的开发项目中使用它,因为可能不支持未来的硬件功能。
所以我认为最好的答案是否。
答案 2 :(得分:3)
我很确定 OpenGL-1.0 是一个错字。 DirectX-11与 OpenGL-4.0 的功能级别有关。现在看一下Numpad上 4 下面的键是什么。
事实上,没有任何一款NVidia GPU只支持OpenGL配置文件,只支持OpenGL-1.0。 OpenGL-1.0的历史可以追溯到20年前。
CG现在是替代GLSL 4.x的可行替代方案吗?
好吧,我个人没有看到使用Cg的原因,除非您想要使用一组常用着色器支持OpenGL和DirectX。但是为什么要进行跨API兼容?如果您的目标是可移植性,那么OpenGL将胜过DirectX。
恕我直言,继续使用Cg的主要原因是,如果您必须维护已使用Cg的旧产品。请记住,在OpenGL使用高级着色语言之前很久就会引入Cg。
我可以在CG中编写所有可以在GLSL 4.3中编写的着色器吗?
是