谁能给我提供类似于固定功能管道的着色器?
我最需要默认的片段着色器,因为我在网上找到了类似的顶点着色器。但如果你有一双应该没问题!
我想使用固定管道,但具有着色器的灵活性,因此我需要类似的着色器,以便我能够模仿固定管道的功能。
非常感谢!
我是新来的,所以如果您需要更多信息,请告诉我:D
这就是我想要复制的:(纹理单元 0)
- glTranslatef 的功能
- glColor4f 的功能
- glTexCoord2f 的功能
- glVertex2f 的功能
- glOrtho 的功能(我知道它在幕后使用着色器做了一些神奇的事情)
就是这样。这就是我想从固定功能管道复制的所有功能。谁能向我展示如何使用着色器复制这些东西的示例?
这里有几个问题将使使用着色器实现这一点变得更加困难。
首先也是最重要的,除了使用固定功能之外,您还可以使用即时模式。在转换到着色器之前,您应该切换到顶点数组。您可以编写一个类,它采用类似立即模式的命令,这些命令将介于glBegin (...)
and glEnd (...)
如果您绝对需要以这种方式构建您的软件,请将它们推入顶点数组。
As for glTranslatef (...)
and glOrtho (...)
这些并没有什么特别的。他们创建平移矩阵和正交投影矩阵,并将“当前”矩阵乘以该矩阵。目前尚不清楚您使用的是什么语言,但这些函数的一种可能的替代可能来自使用类似的库glm http://glm.g-truc.net/0.9.4/index.html (C++).
最大的障碍将是摆脱固定功能管道思维带来的“当前”状态心态。使用着色器,您可以完全控制几乎每个状态,并且不必使用乘以“当前”矩阵或设置“当前”颜色的函数。您只需将所需的确切矩阵或颜色值传递给着色器即可。这是解决这些问题的一种更好的方法,这就是为什么我真诚地认为你应该完全放弃固定功能方法而不是试图模仿它。
这就是为什么您希望“使用固定功能管道但具有着色器的灵活性”从根本上来说没有什么意义。
话虽如此,在 OpenGL 兼容模式下,GLSL 中有一些保留字引用了许多固定功能结构。这些包括诸如gl_MultiTexCoord<N>
, gl_ModelViewProjectionMatrix
等等。它们可以用作过渡援助,但从长远来看确实不应该依赖。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)