2

我正在寻找一种可以将 cg/hlsl 混合着色器转换为 glsl es 着色器的工具。我尝试了 hlsl2glsl,它不理解关键字“extern”,尽管它是一个可行的 hlsl 关键字并且已经查看了 cgc,但没有找到关于如何为 glsl es 编译的文档。

谢谢

4

2 回答 2

3

老问题,我知道,但无论如何我都会提供这个答案。

我在 [合法地] 想要使用一些针对 Unity 的精细 CG 着色器代码时遇到了这个问题 ;-)

查看 Github 上的 CG-shader-to-GLSL-shader Python 转换脚本“ cg2glsl.py ”(它需要cgc在包中找到的命令nvidia-cg-toolkit,大多数操作系统都支持。

'从 cg 着色器转换'中简要概述了它的用法

引自 Tomaka17 的 CG-to-GLSL 相关博文“Turning Cg into GLSL, then using the code”

Cg 是 nVidia 开发的着色语言。基本上,你用 Cg 编写所有的着色器……事实上,Cg 会将你的代码编译成特定于 API 的语言。

Tomaka17 的示例中,他使用 C++ 拦截 nVidia CG 库调用以提取编译后的 GLSL 代码,我认为这在概念上与cg2glsl.py将执行的操作相同(尽管不必通过其 Python 用法编译代码)。

于 2013-11-12T11:31:58.153 回答
2

cgc 文件名 -profile glslv/glslf

但是你必须为 glsl es 添加 presecion,cg 编译器不是这个

于 2013-06-13T12:17:16.967 回答