OpenGl学习总结.doc_第1页
OpenGl学习总结.doc_第2页
OpenGl学习总结.doc_第3页
OpenGl学习总结.doc_第4页
OpenGl学习总结.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 openGl 基本框架21.1 Opengl简介21.2 openGl 的工作方式31.2.1 Opengl 体系结构31.2.2 openGl 流水线31.2.3 OpenGl状态机41.3 OpenGl 操作步骤41.4 OpenGl 组成41.5 OpenGl 数据类型51.6 OpenGl 函数命名约定52. Linux Mesa 安装62.1 下载Mesa软件包62.2 For DRI and hardware acceleration72.3. 整理安装步骤82.3.1 下载mesalib 和gult包82.3.2 安装其他包92.3.3 安装dri2proto 和 libdrm, pixman92.3.4. 编译安装102.4 安装glut113. OpenGL 简介113.1 什么是OpenGL113.2 OpenGL 一些概念123.3 OpenGL是一个状态机133.4 OpenGl 渲染管线133.4.1 显示列表143.4.2 求值器143.4.3 基于顶点的操作143.4.4 图元装配143.4.5 像素操作153.4.6 纹理装配153.4.7 光栅化153.4.8 片段操作163.5 动画163.5.1 暂停刷新163.5.2 动画 = 重绘 + 交换173.6 OpenGl 废弃机制174. 状态管理和绘制几何物体184.1 绘图工具箱184.1.1 清除窗口184.1.2 指定颜色191 openGl 基本框架1.1 Opengl简介1.2 openGl 的工作方式1.2.1 Opengl 体系结构1.2.2 openGl 流水线1.2.3 OpenGl状态机1.3 OpenGl 操作步骤1.4 OpenGl 组成1.5 OpenGl 数据类型1.6 OpenGl 函数命名约定2. Linux Mesa 安装2.1 下载Mesa软件包1)进入/download.html 下载 MesaLib-8.0.5.tar.gz,MesaGLUT-7.9.2.tar.gz 2)把两个解压到同一个文件里,然后在shell里cd 到解压目录运行ubuntuubuntu:/opt/OpenGl/Mesa-8.0.5$ ./configure出现这个错误:configure: error: makedepend is required to build Mesa安装xutils-devubuntuubuntu:/opt/OpenGl/Mesa-8.0.5$ sudo apt-get install xutils-dev 3)./configure出现错误:error: Package requirements (glproto = 1.4.14) were not met:No package glproto found ( 在网址/source/precise/x11/中,找到x11proto-gl (1.4.14-2),然后点击进去下载x11proto-gl_1.4.14.orig.tar.gz,安装库:a) ./configure b) make -j4 c) make install )解决方法:sudo apt-get install x11proto-gl-dev 4)./configureerror: Package requirements (dri2proto = 2.6) were not met:No package dri2proto found 安装库: sudo apt-get install x11proto-dri2-dev 5)./configureerror: Package requirements (x11 xext xdamage xfixes x11-xcb xcb-glx) were not met:No package xdamage foundNo package xfixes foundNo package x11-xcb foundNo package xcb-glx found 安装库:sudo apt-get install libx11-xcb-dev sudo apt-get install libxcb-glx0 sudo apt-get install libxcb-glx0-devsudo apt-get install libxdamage-dev 6)./configure configure: error: Expat required for DRI. 见2.2 2.2 For DRI and hardware acceleration1下载libdrm-2.4.35.tar.gz解压后进入libdrm目录1) 运行./configure出现:error: Package requirements (pciaccess = 0.10) were not met:No package pciaccess found安装:sudo apt-get install libpciaccess-dev2) 运行./configure生成makefile3)make4)make install2下载dri2proto-2.8.tar.gz解压后进入dri2proto目录 1)./configure2) make install3 安装xorg-x11-serve1)从下面网址下下载xorg-x11-servesudo apt-get install xserver-xorg-dev(.tw/pub/Linux/Ubuntu/ubuntu/pool/main/x/xorg-server/2)解压后进入解压目录./configureconfigure: error: Package requirements (pixman-1 = 0.15.20) were not met:No package pixman-1 found3) 安装pixman/oneiric/libpixman-1-0 下载pixman ./configuremakesudo make install4)./configureconfigure: error: Package requirements (xf86driproto = 2.1.0) were not met:sudo apt-get install x11proto-xf86dri-dev5) ./configurechecking for SHA1 implementation. configure: error: No suitable SHA1 implementation foundsudo apt-get install openssl )4. 进入Mesa目录./configureconfigure: error: Expat required for DRIsudo apt-get install libexpat-dev5. ./configureconfigure: error: LLVM is required to build Gallium R300 on x86 and x86_64sudo apt-get install llvm2.3. 整理安装步骤2.3.1 下载mesalib 和gult包进入/download.html 下载 MesaLib-8.0.5.tar.gz,MesaGLUT-7.9.2.tar.gz 2)把两个解压到同一个文件里2.3.2 安装其他包sudo apt-get install xutils-devsudo apt-get install x11proto-gl-devsudo apt-get install x11proto-dri2-devsudo apt-get install libx11-xcb-devsudo apt-get install libxcb-glx0sudo apt-get install libxcb-glx0-devsudo apt-get install libxdamage-devsudo apt-get install libpciaccess-devsudo apt-get install xserver-xorg-devsudo apt-get install x11proto-xf86dri-devsudo apt-get install libexpat-devsudo apt-get install llvm2.3.3 安装dri2proto 和 libdrm, pixman/install.html下载1下载libdrm-2.4.35.tar.gz解压后进入libdrm目录1) 运行./configure2) 运行./configure生成makefile3)make4)make install2下载dri2proto-2.8.tar.gz解压后进入dri2proto目录 1)./configure2) make install3. 安装pixman/oneiric/libpixman-1-0 下载pixman ./configuremakesudo make install2.3.4. 编译安装进入解压的Mesa-8.0.51)运行 ./configureprefix: /usr/localexec_prefix: $prefix libdir: $exec_prefix/lib includedir: $prefix/include2)编译Mesa make linux-x863) 安装Make install4) 卸载sudo apt-get autoremove xutils-devsudo apt-get autoremove x11proto-gl-devsudo apt-get autoremove x11proto-dri2-devsudo apt-get autoremove libx11-xcb-devsudo apt-get autoremove libxcb-glx0sudo apt-get autoremove libxcb-glx0-devsudo apt-get autoremove libxdamage-devsudo apt-get autoremove libpciaccess-devsudo apt-get autoremove xserver-xorg-devsudo apt-get autoremove x11proto-xf86dri-devsudo apt-get autoremove libexpat-devsudo apt-get autoremove llvm#delete include and libcd /usr/local#libdrmsudo rm -r include/libdrmsudo rm lib/libdrm*#dri2protosudo rm -r include/libkmssudo rm lib/libkm*#pixman-1sudo rm -r include/pixman-1sudo rm lib/libpixman*#mesasudo rm -r include/EGL sudo rm -r include/GLsudo rm -r include/KHRsudo rm -r include/VGsudo rm -r include/X11sudo rm lib/libEGL*sudo rm lib/libGL*sudo rm lib/libOpenVG*sudo rm lib/libOSMesa*2.4 安装glutsudo apt-get install freeglut3库路径:/usr/lib/i386-linux-gnu3. OpenGL 简介3.1 什么是OpenGL3.2 OpenGL 一些概念渲染:是计算机根据模型创建图像的过程。最终完成了渲染的图像是由屏幕上绘制的像素组成的。模型:根据几何图元创建的,也称为物体(object).几何图元包括点、直线和多边形等,它们是通过顶点(vertex)指定的。像素:显示硬件可以在屏幕的最小可视元素。(在内存中,和像素有关的信息(ep:像素的颜色)组成位平面的形式。位平面:是一块内存区域,保存了屏幕上每个像素的1个位的信息。(ep:它指定了一个特定像素的颜色中红色成分的强度)。位平面又可以组织成帧缓冲区(framebuffer)的形式,后者保存了图像硬件为了控制屏幕上所有像素的颜色和强度所需要的全部信息。3.3 OpenGL是一个状态机3.4 OpenGl 渲染管线3.4.1 显示列表3.4.2 求值器3.4.3 基于顶点的操作3.4.4 图元装配3.4.5 像素操作3.4.6 纹理装配3.4.7 光栅化3.4.8 片段操作3.5 动画3.5.1 暂停刷新如果帧率超过屏幕刷新率只会浪费图形处理的能力,因为监视器不能以这么快的速度更新,这样超过刷新率的帧率就浪费掉了。3.5.2 动画 = 重绘 + 交换3.6 OpenGl 废弃机制4. 状态管理和绘制几何物体4.1 绘图工具箱4.1.1 清除窗口在发送命令清除多个缓冲区之前,如果想使用并不是默认的RGBA值,深度值、累积值和模板索引值,就必须为每个缓冲区设置需要清除的值。 glClearColor() 设置颜色缓冲区的值 glClearDepth()设置深度缓冲区的值 glClearIndex()设置清除相应缓冲区的颜色索引值 glClearAccum() 设置累计累计缓冲区的颜色值 glClearStencil()清除模板缓冲区的颜色值4.1.2 指定颜色OpenGL 程序员首先设置颜色或颜色方案,然后再绘制物体。在这种颜色方案被修改之前,所有的物体都用这种颜色方案进行绘制。为了设置颜色,可以使用glColor3f()函数。这个函数接受3个参数,它们都是0.01.0之间的浮点数,分别表示颜色的红、绿和蓝色成分。4.1.3 强制绘图完成4.2 顶点数组红宝书阅读笔记缓冲区对象 前面的顶点数组使得几何图元的显示方便了很多,但是如果每次都要向OPENGL发送一大块数据,而这数据其实并没有修改过,那么这传输就是冗余的。所以这里添加了缓冲区对象,将顶点数组存储在服务器端的缓冲区对象中。1. 创建缓冲区对象glGenBuffers(GLsizei n,GLuint *buffers) 任何非零的无符合整数都可以作为缓冲区对象的标识符使用。这个函数的作用就是向系统申请n个缓冲区,系统把这n个缓冲区的标识符都放进buffers数组中。还可以调用glIsBuffer()函数判断一个标识符是否正被使用。2. 激活

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论