Python OpenGL第一个三角形(Pyopengl)
Posted WSX_WOLF
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python OpenGL第一个三角形(Pyopengl)相关的知识,希望对你有一定的参考价值。
根据顶点缓存来生成图元(Python OpenGL)
原文(英文链接)http://ogldev.atspace.co.uk/www/tutorial03/tutorial03.html
1 __author__ = "WSX" 2 3 import numpy as np 4 from OpenGL.GLUT import * 5 from OpenGL.GL import * 6 import ctypes 7 def Draw(): 8 glClear(GL_COLOR_BUFFER_BIT) 9 glEnableVertexAttribArray(0) 10 glBindBuffer(GL_ARRAY_BUFFER, VBO) 11 glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, None) #这里的None不能写为0 12 glDrawArrays(GL_TRIANGLES, 0, 3) 13 glDisableVertexAttribArray(0) #解析数据 例如一个矩阵里含有 位置 、颜色、多种信息 14 glutSwapBuffers() 15 16 17 def CreateBuffer(): #创建顶点缓存器 18 global VBO #设置为全局变量 19 vertex = np.array([-1.0,-1.0,0.0, 20 1.0,-1.0,0.0, 21 0.0,1.0,0.0],dtype="float32") #创建顶点数组 22 VBO = glGenBuffers(1) #创建缓存 23 glBindBuffer(GL_ARRAY_BUFFER , VBO) #绑定 24 glBufferData(GL_ARRAY_BUFFER , vertex.nbytes , vertex , GL_STATIC_DRAW) #输入数据 25 26 27 def main(): 28 glutInit([]) 29 glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA) # 显示模式 双缓存 30 glutInitWindowPosition(100, 100) # 窗口位置 31 glutInitWindowSize(500, 500) # 窗口大小 32 glutCreateWindow("sanjiao") # 创建窗口 33 glutInitContextVersion(4,3) #为了兼容 34 glutInitContextProfile(GLUT_CORE_PROFILE) #为了兼容 35 glutDisplayFunc(Draw) # 回调函数 36 glClearColor(0.0, 0.0, 0.0, 0.0) 37 CreateBuffer() 38 glutMainLoop() 39 40 main()
结果:
以上是关于Python OpenGL第一个三角形(Pyopengl)的主要内容,如果未能解决你的问题,请参考以下文章
Python之OpenGL笔记(5):OpenGL着色器语言(GLSL)应用画三角形