我正在使用PyOpenGL為蟒蛇和PyQt5編寫一個3D圖形工具包。我正在編寫自己的著色器來配合它,如果這有幫助的話。我試圖做的是從使用glBegin到使用頂點緩沖區(qū)數(shù)組。我在使用VBO時發(fā)現(xiàn)了以下內(nèi)容:http://www.songho.ca/opengl/gl_vbo.html - 我只能從中抓取一些信息,因為它是在C / C++中。如何讓 VBO 與蟒蛇和 PyOpenGL 一起工作 - 這是在 Python2 中,因此是相當(dāng)有限的。但是,我無法將每個形狀對象的頂點編譯為場景VBO所需的內(nèi)容拼湊在一起。我也不知道數(shù)組中的數(shù)據(jù)是如何布局的。我的初始化和繪制GL函數(shù)如下,我的頂點和片段著色器的GLSL代碼也是如此。 def initGL(self): self.vertProg = open(self.vertPath, 'r') self.fragProg = open(self.fragPath, 'r') self.vertCode = self.vertProg.read() self.fragCode = self.fragProg.read() self.vertShader = shaders.compileShader(self.vertCode, GL_VERTEX_SHADER) self.fragShader = shaders.compileShader(self.fragCode, GL_FRAGMENT_SHADER) self.shader = shaders.compileProgram(self.vertShader, self.fragShader)#paintGL uses shape objects, such as cube() or mesh(). Shape objects require the following:#a list named 'vertices' - This list is a list of points, from which edges and faces are drawn.#a list named 'wires' - This list is a list of tuples which refer to vertices, dictating where to draw wires.#a list named 'facets' - This list is a list of tuples which refer to vertices, ditating where to draw facets.#a bool named 'render' - This bool is used to dictate whether or not to draw the shape.#a bool named 'drawWires' - This bool is used to dictate whether wires should be drawn.#a bool named 'drawFaces' - This bool is used to dictate whether facets should be drawn.在這個項目的最終形式中,我想在我的緩沖區(qū)中包含頂點位置,顏色甚至發(fā)光的信息。(當(dāng)我最終把它放到光線行軍中時,這將實現(xiàn)。我還需要一種方法來指定我是否應(yīng)該繪制電線和面。如何設(shè)置和配置一個或多個虛擬操作系統(tǒng),以將所有這些信息傳輸?shù)?GPU 和 OpenGL?
1 回答

慕標(biāo)琳琳
TA貢獻1830條經(jīng)驗 獲得超9個贊
經(jīng)過一段時間的研究,我決定嘗試使用不太具體的搜索詞。我最終偶然發(fā)現(xiàn)了這個網(wǎng)站:https://www.metamost.com/opengl-with-python/
添加回答
舉報
0/150
提交
取消