Linux OpenGL 实践篇-2 创建一个窗口】的更多相关文章

OpenGL 作为一个图形接口,并没有包含窗口的相关内容,但OpenGL使用必须依赖窗口,即必须在窗口中绘制.这就要求我们必须了解一种窗口系统,但不同的操作系统提供的创建窗口的API都不相同,如果我们在学习OpenGL时要去学习一整套的窗口系统,这将带来很多的不便,所以出现了GLUT.GLUT全称OpenGL Utility Toolkit,是一套和窗口系统无关的软件包,为我们提供了窗口创建,用户输入输出处理等功能.优点是:简小,精悍.注意GLUT并不是一个功能特别全面的窗口系统工具包,所以构建…
问:linux如何使用Python创建一个web服务? 答:一句话,Python! 一句代码: /usr/local/bin/python -m SimpleHTTPServer 8686 > http.log 2>&1 &…
import win32con,win32gui class MyWindow(): def __init__(self): #注册一个窗口类 wc = win32gui.WNDCLASS() wc.lpszClassName = 'MyWindow' wc.hbrBackground = win32con.COLOR_BTNFACE+1 #这里颜色用法有点特殊,必须+1才能得到正确的颜色 wc.lpfnWndProc = self.wndProc #可以用一个函数,也可以用一个字典 class…
本次实践是绘制两个三角形,重点理解顶点数组对象和OpenGL缓存的使用. 顶点数组对象 顶点数组对象负责管理一组顶点属性,顶点属性包括位置.法线.纹理坐标等. OpenGL缓存 OpenGL缓存实质上是OpenGL服务端的一块内存区域,用于存储数据.OpenGL的所有数据都是存储在缓存对象中的. 在本次实践的思路是创建一个顶点数组对象来管理所绘制的三角性的顶点数据,数据存储在缓存对象中,然后使用绘制API绘制三角形. 首先,创建顶点数组对象,函数原型:void genVertexArrays(G…
下面我们一起来创建一个背景为蓝色的窗口作为游戏编程的开始: import sys import pygame def creat_screen(): #初始化pygame pygame.init() #设置窗口大小并保存在screen对象中 screen = pygame.display.set_mode((500,500)) #设置窗口的名字 pygame.display.set_caption("My First Screen") #游戏的主循环 while True: #给屏幕填…
原文地址:http://ogldev.atspace.co.uk/ 原文中使用gnu make进行项目管理,本系列文章使用visual studio2012.在翻译过程中并非直译,加入了一些笔者个人观点. OpenGl官方使用规范中并没有提供创建和操作窗口的API,目前像window.linux等支持图形化界面的操作系统都支持OpenGl,提供一个与OpenGl上下文绑定的窗口系统.例如在X window中可以使用GLX创建窗口,Windows平台和MacOS平台则可以分别使用WGL.CGL.直…
在之前的实践中我们都是在当前的窗口中渲染,即使用的缓存都是由glutCreateWindow时创建的缓存,我们可称之为默认缓存.它是唯一一个可以被图形服务器的显示系统识别的帧缓存,我们在屏幕上看到的只能是这个缓存. 虽然我们可以对这个缓存作非常多的操作,应用不同的技术,但在不同的缓存间迁移大量的数据,我们还需要很多的操作,而帧缓存对象(framebuffer object)就是为此存在的.帧缓存可以实现理屏渲染技术.纹理贴图的更新.以及缓存乒乓技术(GPGPU用到的一种数据传输技术)的实现非常的…
纹理 在之前的实践中,我们所渲染的物体的表面颜色都是纯色或者根据顶点位置计算出的一个颜色,这种方式在表现物体细节方面是比较吃资源的,因为我们每增加一个细节,我们就需要定义更多的顶点及其属性.所以美术人员和程序员更多的是使用纹理来表现模型的细节. 纹理简单来说就是一个二维图片,OpenGL通过顶点的UV坐标把图片的内容贴到物体的表面,这样我们只需要少量的顶点和一张贴图就可以表现出足够的细节.可以想象一下,有一面墙,每一块转的纹理不同,如果使用增加顶点数据的方式来渲染,需要的数据不可预计,但如果使用…
本次实践所使用环境为CentOS 7. 参考:http://www.xuebuyuan.com/1472808.html OpenGL开发环境搭建: 1.opengl库安装 opengl库使用mesa库,安装命令: yum intall mesa* mesa库是一个开源的三维计算机图形库,以开源的形式实现了opengl应用程序接口.具体介绍:https://www.mesa3d.org/intro.html. 2.glut安装 下载freeglut,下载地址为: https://github.c…
程序式纹理 简单的来说程序式纹理就是用数学公式描述物体表面的纹路 .而实现这个过程的着色器我们称之为程序纹理着色器,通常在这类着色器中我们能使用的输入信息也就是顶点坐标和纹理坐标. 程序式纹理的优点 1.程序式纹理的内存占用比预存纹理要低的多:因为程序式纹理主要是算法的实现,数据都是通过计算产生的: 2.程序生成的纹理没有固定的面积和分辨率,可以随意的应用到不同大小的物体,而不用担心精度不够的问题: 3.程序式纹理可以写入一些算法的关键参数,可以方便的供程序修改从而创建出有趣的效果,而预存的纹理…