OpenGL 编程指南第7版 程序示例 prog1-3.py

# -*- coding: cp936 -*-
#OpenGL 编程指南第7版 程序示例 prog1-3.py
#双缓冲程序,绘制一个旋转的方块

from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *

spin=0.0

def init():
    glClearColor(0.0,0.0,0.0,0.0)
    glShadeModel(GL_FLAT)
    
def Display():
    glClear(GL_COLOR_BUFFER_BIT)
    glPushMatrix()
    glRotatef(spin,0.0,0.0,1.0)    
    glColor3f(1.0,1.0,1.0)
    glRectf(-25.0,-25.0,25.0,25.0)
    glPopMatrix()
    glutSwapBuffers()

def spinDisplay():
    global spin
    spin = spin + 2.0
    if spin > 360.0:
        spin = spin - 360.0
    glutPostRedisplay()

def reshape(w,h):
    glViewport(0,0,w,h)
    glMatrixMode(GL_PROJECTION)
    glLoadIdentity()
    glOrtho(-50.0,50.0,-50.0,50.0,-1.0,1.0)
    glMatrixMode(GL_MODELVIEW)
    glLoadIdentity()

def mouse(button,state,x,y):
    if button==GLUT_LEFT_BUTTON:
        if state == GLUT_DOWN:
            glutIdleFunc(spinDisplay)
    elif  button==GLUT_MIDDLE_BUTTON:
        if state ==  GLUT_DOWN:
            glutIdleFunc(0)
    
    
if __name__ == "__main__":
    glutInit()
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB)
    glutInitWindowSize(250,250)
    glutInitWindowPosition(100,100)
    glutCreateWindow(b'双缓冲示例程序prog1-3.py')
    init()
    glutDisplayFunc(Display)
    glutReshapeFunc(reshape)
    glutMouseFunc(mouse)
    glutMainLoop()

内容简介: 《OpenGL编程指南原书第7)》对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉。《OpenGL编程指南原书第7)》的上一个本覆盖了到OpenGL 2.1的内容。本涵盖了OpenGL 3.0和3.1的最新特性。本书以清晰的语言描述了OpenGL的功能以及许多基本的计算机图形技巧,例如创建和渲染3d模型、从不同的透视角度观察物体、使用着色、光照和纹理贴图使场景更加逼真等。另外,本书还深入探讨了许多高级技巧,包括纹理贴图、抗锯齿、雾和大气效果、nurbs、图像处理子集等。此外,《OpenGL编程指南原书第7)》还对一些重要的主题进行了讨论,例如提高性能、OpenGL扩展以及跨平台技术等。本书内容详实,讲解生动,图文并茂,是OpenGL程序员的绝佳编程指南OpenGL是一种功能强大的软件接口,既可以用于生成高质量的计算机图像,也可以用于编写使用2d和3d物体、位图和彩色图像的交互式应用程序。 《OpenGL编程指南原书第7)》对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉。《OpenGL编程指南原书第7)》的上一个本覆盖了截止OpenGL 2.1的内容。这一涵盖了OpenGL 3.0和3.1的最新特性。《OpenGL编程指南原书第7)》清晰的语言描述了OpenGL的功能以及许多基本的计算机图形技巧,例如创建和渲染3d模型、从不同的透视角度观察物体、使用着色、光照和纹理贴图使场景更加逼真等。本书还深入探讨了许多高级技巧,包括纹理贴图、抗锯齿、雾和大气效果、nurbs、图像处理等。另外,《OpenGL编程指南原书第7)》还对一些重要的主题进行了讨论,例如提高性能、OpenGL扩展以及跨平台技术等。 《OpenGL编程指南原书第7)》进行了一些更新,涵盖了OpenGL 3.0和3.1的最新特性,包括: 使用帧缓冲区对象进行离屏渲染和纹理更新。 各种新的缓冲区对象类型的示例,包括uniform缓冲区对象、变换反馈缓冲区和顶点数组对象。 使用纹理数组提高使用众多纹理的性能。 使用图元重启和条件渲染来高效地进行渲染。 介绍OpenGL的废弃机制,以及如何针对OpenGL未来本验证程序。 《OpenGL编程指南原书第7)》继续对OpenGL着色语言(glsl)展开讨论,并解释了使用这种语言创建复杂图形效果并提升OpenGL计算威力的机制。OpenGL技术资料库(OpenGL technical library)提供了大量的OpenGL教程和参考书籍,它可以帮助程序员深入理解OpenGL,完全释放OpenGL的潜力。这个资料库最初由sgi开发,目前由khronos OpenGL体系结构审核委员会(arb)工作组维护,这是负责指导OpenGL以及相关技术发展和演变的行业协会。 作者简介: Dave Shreiner是ARM公司的图形技术总监,长期担任SGI核心OpenGL组的成员。他首次开设了OpenGL的商业培训课程,拥有二十多年的计算机图形应用开发经验。Dava定期参加SIGGRAPH和其他全球性的图形工作会议。他是《OpenGL ES 2.0 Programming Guide》和《OpenGL Reference Manual》的作者,也是Addison-Wesley的OpenGL系列的编辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值