0
我有一個運行於每個頂點6個字節的一些打包的頂點數據:GLES2.0 glVertexAttribPointer:使用奇數Stride和Offset值的性能損失?
glVertexAttribPointer Shader.pos3d_loc, 3, GL_UNSIGNED_BYTE, True, 6, 0
glVertexAttribPointer Shader.norm_loc, 3, GL_UNSIGNED_BYTE, True, 6, 3
是否有通過使用不的4個字節的倍數的進步和偏移引起的任何性能損失(如隱藏的內存拷貝)?
此時不做任何複製。您可以將數據複製到頂點緩衝區,或者根據需要逐個訪問這些值。這些值只是告訴openGL如何解釋你的緩衝區。例如normal [i] .x =(float)((ubyte)(((void *)ptr)[stride * i]))其中ubyte來自GL_UNSIGNED_BYTE參數。 –
謝謝:)我明白這個函數的功能,但我知道有幾個對齊和格式相關的陷阱,GL會以很大的性能代價在內部無聲地轉換數據。我想知道是否指定奇數步長和對齊會導致GL在最終呈現調用發生時在內部重新緩衝數據。 – Peeling