0
我想通過一個浮點數到我的頂點着色器,所以我可以將gl_PointSize設置爲浮點數。但是,它不工作,我認爲它使用glVertexAttribPointer是由於我:OpenGL ES:將單浮點數傳遞給頂點着色器?
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;
}
任何幫助,將不勝感激!
是什麼讓你覺得'glVertexAttribPointer'調用是罪魁禍首? – derhass
當我嘗試傳輸一個浮點數時,它的名稱中有頂點,我想不出還有什麼可能導致這個問題,因爲另一部分後來工作正常。 – MysteryPancake
嗯,_Vertex_並不意味着_Vector_。在GL中,頂點只是一組_attributes_,其中每個屬性可以是標量或二維到四維向量,因此您在這裏使用的頂點屬性很好。你真的實際_enable_頂點屬性數組1? – derhass