【Python OpenGL】【2】第一个三角形(Pyopengl)

本文介绍如何使用PythonOpenGL从顶点缓存生成图元。通过创建顶点缓存器并利用OpenGL函数绘制三角形,展示了如何设置绘图环境、绑定缓存及绘制过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根据顶点缓存来生成图元(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()

结果:

 

转载于:https://www.cnblogs.com/WSX1994/p/9095362.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值