2011-02-16 37 views
0

背景下的有點不同的緩衝區:OpenGL的頂點數組指針,每個組件

我工作在GPU上的仿真器(在NV2A如果你想知道)在推緩衝水平,和我想要使用OpenGL實現繪圖。我必須仿真的GPU命令包含用於每個頂點組件的單獨指針(因此,位置與霧座標,顏色,紋理座標等位於完全不同的存儲器地址中)。其他數據(如頂點組件大小,類型和步距)是也存在於推緩衝區中,但這些與這個問題並不相關。

我一直在閱讀關於頂點數組對象,但就我的測試而言,您可以使用glVertexAttribPointer設置的指針都應該與頂點緩衝對象相關 - 這是我想要避免的,因爲我已經已經獲得了內存中的數據副本。

問題:

是否有可能在OpenGL繪製使用每個頂點組件單獨指針(沒有任何的OpenGL API管理)的頂點?代碼看起來如何,粗糙? PS:由於我在模擬GPU,所以我也必須考慮頂點着色器程序。我還沒有在這些方面做過工作,所以對此也有任何建議。 TIA!

+0

打算在覈心配置文件或兼容性配置文件中使用OpenGL嗎? – shoosh 2011-02-16 22:27:44

回答

2

你不需要使用VBOs,glVertexAttribPointer在沒有VBO綁定的情況下需要一個普通的CPU指針(你可以調用glBindBuffer(GL_ARRAY_BUFFER, 0)來確保)。是的,您可以爲每個屬性流設置一個地址。