0
私は頂点シェーダに単一のfloatを渡そうとしているので、gl_PointSizeをfloatに設定することができます。しかし、それは働いていないと私はそれがglVertexAttribPointer使用して、私が原因だと思う:OpenGL ES:シングルフロートを頂点シェーダに渡しますか?
glVertexAttribPointer(0, 2, GLenum(GL_FLOAT), GLboolean(GL_FALSE), GLsizei(MemoryLayout<Vertex>.size), BUFFER_OFFSET(0))
この:私は、私もこれを使用して、その前にglVertexAttribPointerを使用して位置を設定していますので、オフセットバッファを必要とする
glVertexAttribPointer(1, 1, GLenum(GL_FLOAT), GLboolean(GL_FALSE), GLsizei(MemoryLayout<Vertex>.size), BUFFER_OFFSET(2 * MemoryLayout<Float>.size))
を私の頂点構造である:
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では、Vertexは単に_attributes_のセットです。各属性はスカラまたは2次元から4次元のベクトルになります。ここでは頂点属性の使用は問題ありません。実際にvertex attrib array 1を有効にできませんでしたか? – derhass