在 OpenGL 中设置统一
Setting uniform in OpenGL
我有一件形式的制服:
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
重载,它应该是一个颜色索引,但可以很好地处理简单的浮点数。
我有一件形式的制服:
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
重载,它应该是一个颜色索引,但可以很好地处理简单的浮点数。