2

我目前正在学习 GLSL。看起来,一旦您学习了一种着色器语言,学习其他一种语言似乎并不会太难。是否类似于学习 wxWidgets 之类的小部件工具集,然后切换到 Qt?一旦您了解了一个小部件工具集中发生了什么,另一个工具集会做类似的事情,因为它们最终在某个时候做几乎相同的事情?从一种着色器语言转换到另一种着色器语言的经历是什么?

4

5 回答 5

6

Cg 和 HLSL 几乎相同(相同的内置函数名称)。GLSL 的外观和感觉有点不同(即,使用类似函数mix而不是),但整体过渡仍然很容易。唯一的区别在于细节和各自的API(即矩阵存储顺序之类的东西)。lerpmain

在着色语言之间切换比在 GUI 工具包之间切换要容易得多……

于 2010-06-25T17:51:42.040 回答
4

HLSL 与 GLSL 有一些不同之处。和我读到的没什么不同。那里有一些翻译工具。有一个 SourceForge 项目HLSL To GLSL 工具。另外,我相信NVidia Cg 工具包可以生成 HLSL 或 GLSL。

于 2010-06-28T19:57:14.533 回答
1

你是对的 - GLSL/HLSL/Cg 着色语言是 C 编程语言的子集,所以它们非常相似。

于 2010-09-01T08:45:33.633 回答
1

以我有限的经验,我同意这里的每个人的观点,它们非常非常相似,在它们之间切换不是问题。但是,请注意,就像大多数 OpenGL/DirectX 冲突的情况一样,我发现 HLSl 有一些更好的便利功能,使其使用起来更有趣。我在这里说的是小事,比如saturate。但是,除了细微的结构差异(例如传递输入)之外,基本概念是 100% 相同的。

享受!着色器很有趣。

于 2010-07-22T06:44:15.877 回答
-3

directx 3d的起源在于opengl。微软将opengl api重新编程到一定程度,因此语言应该是相似的。

于 2010-06-25T23:45:43.003 回答