vertex-buffer

    2熱度

    1回答

    我有OpenGL代碼使用一個VAO爲所有模型數據和兩個VBO。第一個用於標準頂點屬性,如位置和法線,第二個用於模型矩陣。我使用的是instanced draw,因此我將模型矩陣作爲實例化數組(基本上是頂點屬性)加載。 首先,我將標準頂點屬性加載到VBO,並使用glVertexAttribPointer設置所有內容。然後我將模型矩陣加載到另一個VBO。現在我必須在循環中調用glVertexAttri

    2熱度

    1回答

    所以我一直在學習OpenGL 3.3的https://open.gl/,我對某些東西感到非常困惑。 VAO-s。根據我的理解,他們用於存儲glVertexAttribPointer調用。 VBO-s。他們存儲vertecies。所以,如果我正在做多個對象的東西,我需要每個對象的VBO嗎? 着色程序 - 爲什麼我們需要多個程序,他們到底做了什麼? 這行代碼到底是什麼:glBindFragDataLo

    0熱度

    1回答

    我正在研究一個項目,我需要選擇網格的兩個頂點並計算它們之間的最短路徑。我使用GL_ARRAY_BUFFER和GL_ELEMENT_ARRAY_BUFFER來綁定OpenGL緩衝區並通過glDrawElements繪製它們。 找到最短路徑在這裏不是問題。問題在於頂點選擇。我需要通過點擊鼠標來選擇頂點並存儲它們的ID以用於進一步處理。我有一些函數返回鼠標位置,但我找不到可以獲取頂點ID或三角形ID的方

    0熱度

    1回答

    我有一個3D網格(稀疏的八叉樹),每個葉子(最深的節點)存儲一個3d點的顏色。我想將整個八叉樹轉換爲一個3d點的線性數組(頂點緩衝區),可以直接上傳到OpenGL。 以一種令人反感的方式,我可以迭代八叉樹的所有節點並填充線性數組。 現在,我面臨的問題是,當我向稀疏八叉樹中添加新的3d點並想更新頂點緩衝區時,我必須遍歷完整的八叉樹才能將數據導入OpenGL。 有沒有人有一個想法如何避免只有幾點更新/

    -1熱度

    1回答

    我們的應用程序崩潰.. 調試代碼here 放眼望去,here他們說,這往往是由於不正確的頂點屬性設置 這是怎麼設置我的VBO和維羅: /** * Init Vbo/vao. */ float[] vertexData = new float[]{ 0, 0, 1, 0, 1, 1}; debugVbo =

    2熱度

    1回答

    所以我在看another SO question regarding the command glVertexAttribPointer,我遇到了一些困惑。在接受這個問題的答案解釋, 但有狀態的附加隱含一塊也存儲離開屬性0,當你撥打電話:將數據從當前綁定到GL_ARRAY_BUFFER 緩衝區中讀取 這對我有意義,但是如果我有多個緩衝區綁定爲GL_ARRAY_BUFFER? glVertexAtt

    1熱度

    1回答

    在DirectX 11應用程序中爲靜態和動態對象分開頂點緩衝區有什麼好處?我的方法是將場景中所有對象的頂點存儲在同一個頂點緩衝區中。 但是,我只需要重新映射整個集合的少量對象(1到5)(最多200個對象)。大多數對象是靜態的,不會以任何方式進行轉換。這樣做的最佳方法是什麼?

    2熱度

    1回答

    我試圖繪製一些簡單的東西,如使用VBO的三角形。 的示例代碼設置在這裏github上: https://github.com/dwmkerr/sharpgl/blob/master/source/SharpGL/Samples/WinForms/ModernOpenGLSample/Scene.cs 下面的 '使用' 語句正確編譯我。 using SharpGL; using SharpGL.S

    2熱度

    1回答

    比方說,我有頂點數組和VBO指針: std::vector<Vertex> vertices; GLuint vbo; glBindBuffer(GL_ARRAY_BUFFER, vbo); 現在我緩存數據: glBufferData( GL_ARRAY_BUFFER, vertices.size()*sizeof(Vertex), &vertices[0],

    1熱度

    1回答

    我想圍繞在OpenGL中的各種類型的GLSL着色器。 目前,我正在爲2d分層瓦實施而苦苦掙扎。出於某種原因,傳入我着色器的int值始終爲0(或更可能爲null)。 我目前有2048x2048px 2d紋理組成的20x20瓷磚。我試圖紋理一個四邊形,並根據我傳入頂點着色器的整個塊的大小來更改拼貼的索引。 我正在傳遞一個vec2的浮點數來表示quad的位置(真的是TRIANGLE_STRIP)。我也試