我遇到了一個問題,我不知道應該如何妥善處理。我最近開始爲自己的遊戲創建一個粒子系統,並且一直在使用稱爲「粒子」的結構來處理我的粒子數據。 '粒子'包含渲染的頂點信息。glBuffer與堆內存
我遇到問題的原因是我將我的粒子結構集中在堆內存中以節省大量的分配,但是我不確定如何在glBufferData中使用指針數組,我在glBufferData需要實際的結構實例,而不是指向結構實例的指針。
我知道我可以重建一個浮動數組,每個渲染只是爲了繪製我的粒子,但是有沒有像glBufferData這樣的OpenGL調用,我錯過了某處,可以通過數據去引用指針我供應?理想情況下,我希望避免爲了複製數據而迭代數組。
我居然想出如何做我想做的事,我映射緩衝區的指針和填充它自己,我不wan't使用任何舊的特點我寧願學習如何做的事情新的方式。 – user1294021
@ user1294021:那麼,映射緩衝區並不是真正的堆內存。它是映射到進程地址空間的GPU系統交換內存的一部分。此外,您必須先取消映射緩衝區,然後才能從中進行繪製。 – datenwolf
是的,我也未映射,謝謝,這是做到這一點最有效的方法嗎?這主要是我需要尊重我的指針,所以我可以將數據傳遞到緩衝區。 – user1294021