gpt4 book ai didi

OpenGL - 固定管线着色器默认值(使用着色器模仿固定管线)

转载 作者:行者123 更新时间:2023-12-02 06:37:05 25 4
gpt4 key购买 nike

谁能给我提供类似于固定功能管道的着色器吗?

我最需要默认的片段着色器,因为我在网上找到了类似的顶点着色器。但如果你有一双那就没问题了!

我想使用固定管道,但具有着色器的灵 active ,因此我需要类似的着色器,以便能够模仿固定管道的功能。

非常感谢!

我是新来的,所以如果您需要更多信息,请告诉我:D

这就是我想要复制的:(纹理单元0)

  • glTranslatef 的功能
  • glColor4f 的功能
  • glTexCoord2f 的功能
  • glVertex2f 的功能
  • glOrtho 的功能(我知道它在幕后使用着色器做了一些神奇的事情)

就是这样。这就是我想从固定功能管道复制的所有功能。谁能向我展示如何使用着色器复制这些东西的示例?

最佳答案

这里有几个问题,这些问题将使使用着色器实现这一点变得更加困难。

首先,除了使用固定功能之外,您还可以使用即时模式。在转换到着色器之前,您应该切换到顶点数组。您可以编写一个类,它采用类似立即模式的命令,这些命令介于 glBegin (...) 之间。和glEnd (...)如果您绝对需要以这种方式构建软件,请将它们插入顶点数组。

至于glTranslatef (...)glOrtho (...)这些并没有什么特别的。他们创建平移矩阵和正交投影矩阵,并将“当前”矩阵乘以该矩阵。目前尚不清楚您使用的是什么语言,但这些函数的一种可能的替代可能来自使用像 glm 这样的库。 (C++)。

最大的障碍将是摆脱固定功能管道思维带来的“当前”状态心态。使用着色器,您可以完全控制几乎每个状态,并且不必使用乘以“当前”矩阵或设置“当前”颜色的函数。您只需将所需的确切矩阵或颜色值传递给着色器即可。这是解决这些问题的一种更好的方法,这就是为什么我真诚地认为你应该完全放弃固定功能方法而不是试图模仿它。

这就是为什么您希望“使用固定功能管道但具有着色器的灵 active ”从根本上说是没有意义的。

话虽如此,在 OpenGL 兼容模式下,GLSL 中有一些保留字引用了许多固定功能结构。其中包括类似 gl_MultiTexCoord<N> 的内容, gl_ModelViewProjectionMatrix等。它们可以用作过渡辅助工具,但从长远来看确实不应该依赖。

关于OpenGL - 固定管线着色器默认值(使用着色器模仿固定管线),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18806175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com