代码之家  ›  专栏  ›  技术社区  ›  Paul Kelly

着色器语言之间是否存在重大差异?

  •  2
  • Paul Kelly  · 技术社区  · 14 年前

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

    5 回复  |  直到 13 年前
        1
  •  4
  •   Walt Ritscher    14 年前

    HLSL与GLSL有一些不同之处。和我读到的没什么不同。外面有一些翻译工具。有一个SourceForge项目 HLSL To GLSL tool . 而且,我相信 NVidia Cg toolkit 可以生成HLSL或GLSL。

        2
  •  6
  •   Alexander Gessler    14 年前

    Cg和HLSL几乎相同(相同的内置函数名)。GLSL的外观和感觉有些不同(即。 mix 而不是 lerp ,使用 main -就像函数一样),但总体过渡还是很容易的。唯一的区别在于细节和各自的API(例如矩阵存储顺序)。

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

        3
  •  1
  •   Perrako    14 年前

    在我有限的经验中,我同意在座的每个人的观点,他们非常非常相似,在他们之间切换不是问题。不过,请注意,就像大多数OpenGL/DirectX冲突的情况一样,我发现HLSl还有一些很好的便利函数,使用起来更有趣。我说的是小事,比如 ,这里。然而,除了微小的结构差异,比如传递输入,基本概念是百分之百相同的。

    好好享受!着色器非常有趣。

        4
  •  1
  •   Agnius Vasiliauskas    14 年前

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

        5
  •  -3
  •   M3t0r    14 年前

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