0
我有一個緩衝區,我想填補連續變換反饋,我想知道如何完全做到這一點。glBindBufferRange與變換反饋的使用
glBindBufferRange
有五個參數,據我瞭解,前三個是相當於glBindBufferBase
的參數,但我對offset
和size
參數的幾個問題。
如果我的第一反饋產生n
元,從GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN
檢索,我的原語點,我想從那個位置繼續在緩衝區中,應補償的glBindBufferRange
設置爲n*4*sizeof(GLfloat)
變換? (假設我檢索vec4幾何着色器輸出)
的文檔只是說,offset
和size
應該是基本的機臺(雖然他們有兩種不同類型,GLintptr和GLsizeiptr),但我不完全相信這意味着,所以我假設字節,這是正確的?
對不起,它有點不清楚。這些是完全獨立的變換反饋。我真的想知道如何計算從哪裏開始寫入第二個反饋的緩衝區,即使用的偏移量,所以我不會在緩衝區中留下空隙或覆蓋已寫入的內容。 – leohutson
@leohutson:看到我的最後一句話。 –
非常感謝您的幫助,我認爲我現在明白了。如果你不介意,我想問一個稍微切題的問題。在我當前的代碼中,在我的初始轉換反饋之後,我有一個while循環作爲屏障,只是暫停程序,直到GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN查詢可用。如果我要擺脫這種情況,只是自己計算預期的基元數量,綁定重新綁定緩衝區並在之後立即執行第二個反饋,還是存在併發問題是否安全? – leohutson