我有一套形式的制服:
uniform float abc;
我在 Haskell 代码中得到它:
abc <- GL.get (GL.uniformLocation program "abc")
如何向其传递 GLfloat
值?
我从here看到我可能应该使用 uniform1
,但该函数不是由模块导出的。
所有其他实例:
instance UniformComponent a => Uniform (Vertex2 a)
instance UniformComponent a => Uniform (Vertex3 a)
instance UniformComponent a => Uniform (Vertex4 a)
instance UniformComponent a => Uniform (TexCoord1 a)
instance UniformComponent a => Uniform (TexCoord2 a)
instance UniformComponent a => Uniform (TexCoord3 a)
instance UniformComponent a => Uniform (TexCoord4 a)
instance UniformComponent a => Uniform (Normal3 a)
instance UniformComponent a => Uniform (FogCoord1 a)
instance UniformComponent a => Uniform (Color3 a)
instance UniformComponent a => Uniform (Color4 a)
instance UniformComponent a => Uniform (Index1 a)
似乎没有涵盖这个简单的情况。
我能做什么?
最佳答案
显然it's a known bug在 API 中。
目前一个可能的替代方案是使用 Index1
重载,它应该是颜色索引,但对于简单的浮点效果很好。
关于opengl - 在 OpenGL 中设置统一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29450186/