3
在我看來,在glVertexAttribPointer
(它指定與來自VBO的特定數據集關聯的屬性索引)和glBindAttribLocation
(其指定將索引分配給哪個節目頂點屬性變量名稱)之間,並不需要啓用或禁用屬性索引自己。什麼是可能需要一個指數是「被禁止」的情況呢?glEnableVertexAttribArray存在的真正原因嗎?
在我看來,在glVertexAttribPointer
(它指定與來自VBO的特定數據集關聯的屬性索引)和glBindAttribLocation
(其指定將索引分配給哪個節目頂點屬性變量名稱)之間,並不需要啓用或禁用屬性索引自己。什麼是可能需要一個指數是「被禁止」的情況呢?glEnableVertexAttribArray存在的真正原因嗎?
是什麼,可能需要一個指標是「被禁止」的情況呢?
如果你想設置一個恆定的頂點屬性值glVertexAttrib
,wi沒有通過一個完整的陣列。
yup。有趣的是,他們可以指定stride = 0對應一個常量屬性值。但是,stride = 0意味着打包,即stride = size * sizeof(type)。如果你考慮這個問題,這是違反直覺的......(對不起,我會喋喋不休的) – Bahbar 2012-02-01 12:58:44
@Bahbar:我認爲在功能中包含「隱藏」功能的API是違反直覺的。像glVertexAttribPointer這樣的函數只能用於提供指針及其格式(至少我會這樣做)。通過額外狀態進行常量/數組訪問之間的切換是我認爲一致和直觀的。 – datenwolf 2012-02-01 13:00:59
當然,我並不是爭辯說你應該爲了它而隱藏功能。但是stride = 0 _is_隱藏功能。如果這在規範中並不是特例,那麼你可以想象得到的效果是= 0,這實際上是一個不變的屬性。這就是我所說的:D – Bahbar 2012-02-01 13:03:42