![](/img/trans.png)
[英]How pass a variable ( not uniform) float value from c++ to a vertex shader OpenGL ES 2.0
[英]OpenGL ES: Pass single float to vertex shader?
我试图将单个浮点数传递给我的顶点着色器,以便可以将gl_PointSize设置为该浮点数。 但是,它不起作用,我认为这是由于我使用glVertexAttribPointer:
glVertexAttribPointer(1, 1, GLenum(GL_FLOAT), GLboolean(GL_FALSE), GLsizei(MemoryLayout<Vertex>.size), BUFFER_OFFSET(2 * MemoryLayout<Float>.size))
我需要缓冲区偏移量,因为在此之前我还要使用glVertexAttribPointer设置位置:
glVertexAttribPointer(0, 2, GLenum(GL_FLOAT), GLboolean(GL_FALSE), GLsizei(MemoryLayout<Vertex>.size), BUFFER_OFFSET(0))
这是我的顶点结构:
struct Vertex {
var x, y, size: Float
}
这是顶点着色器:
attribute vec4 Position;
attribute float Size; // I tried vec4, no luck
void main(void) {
gl_PointSize = Size;
gl_Position = Position;
}
任何帮助,将不胜感激!
Reto Koradi有了答案! 编译着色器以正确绑定它时,需要事先调用glBindAttribLocation。 现在都在工作!
另外,在主持人问我之前,我不能接受他的答案作为正确答案,因为这是对我的原始问题的评论。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.