2
在我的頂點着色器,我有如何將值傳遞給OpenGL中的頂點着色器屬性數組?
in float data[6];
這意味着,如果我有100個頂點,我想通過600間浮動。 glVertexAttribPointer
只支持最大爲4的尺寸。如果我使用尺寸1,那麼它會自動拾取6個元素?
在我的頂點着色器,我有如何將值傳遞給OpenGL中的頂點着色器屬性數組?
in float data[6];
這意味着,如果我有100個頂點,我想通過600間浮動。 glVertexAttribPointer
只支持最大爲4的尺寸。如果我使用尺寸1,那麼它會自動拾取6個元素?
glsl中的屬性數組被視爲具有連續屬性位置的多個獨立屬性。你將不得不分別爲它們設置頂點屬性指針。
如果您使用idx = glGetAttribLocation(program_index, "data")
查詢第一個元素的位置,那麼將具有位置idx + 1
。然後你可以遍歷它們並用索引和每個數組元素的正確字節偏移調用glVertexAttribPointer*
。