参考文献:《OpenGL超级宝典》、
用PyOpenGL叩开3D的心扉——OpenGL全解析(3)https://blog.csdn.net/thystar/article/details/45438269
1、在网址http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl 下载PyOpenGL‑3.1.2‑cp36‑cp36m‑win32.whl
2、拷贝上面文件到python文件夹下,在c:\ python>下运行命令:
pip install PyOpenGL‑3.1.2‑cp36‑cp36m‑win32.whl
OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口(Application programming interface)的规格,它用于生成二维、三维图像。这个接口由近三百五十个不同的函数调用组成,用来从简单的图元绘制复杂的三维景象。OpenGL常用于CAD、虚拟实境、科学可视化程式和电子游戏开发。
2D + 透视 = 3D
光靠线条的透视,大脑其实并不能得到唯一完美的结论,我们的3D艺术肯定还需要其他的东西来补足,就是后面两幅图中的重要演员——光照。事实上,一般最后的作品还需要纹理来帮忙;如果还能加上阴影等,会更真实。
观察方式:透视(perspective)OpenGL
正交(orthogonal) CAD
1.初始化窗口
glutInit()是用glut来初始化OpenGL;
glutInitDisplayMode(MODE)
glutInitWindowSize(400, 400) 设置出现的窗口的大小。
glutDisplayFunc(func)注册了一个函数,用来绘制OpenGL窗口,这个函数里就写着很多OpenGL的绘图操作等命令
2.绘图
glClear(GL_COLOR_BUFFER_BIT) #清除之前画面
glRotatef(0.1, 10,5,0) #(角度,x,y,z) 绕着向量(x,y,z)旋转
glutWireTeapot(0.5) #画线框茶壶
glFlush()#刷新显示
#coding:utf-8
import sys
from math import pi as PI
from math import sin, cos
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
def drawFunc():
#清除之前画面
glClear(GL_COLOR_BUFFER_BIT)
glRotatef(0.1, 10,5,0) #(角度,x,y,z)
glutWireTeapot(0.5) #画线框茶壶
#glutSolidTeapot(0.5) #画实心茶壶
#刷新显示
glFlush()
#使用glut初始化OpenGL
glutInit()
#显示模式:GLUT_SINGLE无缓冲直接显示|GLUT_RGBA采用RGB(A非alpha)
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA)
#窗口位置及大小-生成
glutInitWindowPosition(0,0)
glutInitWindowSize(400,400)
glutCreateWindow(b"first")
#调用函数绘制图像
glutDisplayFunc(drawFunc)
glutIdleFunc(drawFunc) #产生动画函数
#主循环
glutMainLoop()