OpenGL三维图形编程基础

合集下载

opengl计算机图形学之08-3D编程基础

opengl计算机图形学之08-3D编程基础

opengl计算机图形学之08-3D编程基础opengl计算机图形学之08-3D 编程基础
北师⼤珠海分校信息技术学院
计算机图形学实验报告
实验报告⽂件命名⽅式:学号姓名_实验序号_实验名称.doc
姓名学

专业计算机
任课教师黄静
实验
教师
黄静
评阅
教师
实验地点丽泽C304-1
书写
⽇期
20121112
实验
课时

实验
得分
实验序号与名称:实验1:OpenGL基础⼊门实验⽬的:
1.熟悉3D基本编程
2.熟悉视点观察函数的设置和使⽤
3.熟悉投影变换函数的设置和使⽤
4.熟悉基本3D图元的绘制
实验开发环境:
硬件要求:
PC机,主流配置,最好为独⽴显卡,显存512M以上。

软件环境:
操作系统:Windows XP。

语⾔开发⼯具:Microsoft Visual studio 2008,Visual C++。

并安装OpenGL图形函数库
实验要求:
1.当场检查,计现场分
2.实验所有步骤所⽣成的效果截图拷贝到实验报告⽂档⾥备查,并附上相
应的代码。

WORD⽂档命名⽅式:学号姓名-实验序号-实验名称。

⽐例:50% 实验内容与步骤⼩结、主要截图、
核⼼代码实现:
以下操作需要记录不同效果图和修改的相应参数:
1.让静⽌的⽴⽅体绕Z轴不停旋转gluLookAt(0,0,5,0,0,0,0,1,0); //视点设置函数。

OpenGL编程基础

OpenGL编程基础

每四个顶点一组用于构造一个四边形。如果顶点个数不是四的倍数,多余 的顶点将被忽略
将指定的顶点用于构造四条形边。在第一对顶点之后,每对顶点定义一个 四边形。和GL_QUADS的顶点顺序不一样,每对顶点以指定顺序的逆序使 用,以便保证绕法的一致
将指定的顶点用于构造一个凸多边形。多边形的边缘决不能相交。最后一
深灰
2021/11/14
红色成分 0.0 1.0 0.0 1.0 1.0 0.0 0.25
绿色成分 0.0 0.0 1.0 1.0 0.0 1.0 0.25
蓝色成分 0.0 0.0 0.0 0.0 1.0 1.0 0.25
14
OpenGL初步编程
在Windows下开发和创建一个OpenGL程 序的基本步骤:
(1)跨平台特性
OpenGL与硬件、窗口和操作系统是相互独立的。 为了构成一个完整功能的图形处理系统,其设计实现 共分 5 层:图形硬件、操作系统、窗口系统、 OpenGL和应用软件。
因而, OpenGL可以集成到各种标准窗口和操作 系统中。例如,操作系统包括UNIX,Windows NT, Windows 95/98, DOS等;窗口系统包括X Windows, Microsoft Windows等。
(3)网络透明性
建立在客户/服务器模型上的网络透明性是 OpenGL的固有特性,它允许一个运行在工作站上的 进程在本机或通过网络在远程工作站上显示图形。利 用这种性质能够均衡各工作站的工作负荷,共同承担 图形应用任务。
(4)高质量和高性能
无论是在CAD/CAM、三维动画还是可视化仿真 等领域,OpenGL高质量和高效率的图形生成能力都 能得到充分的体现。在这些领域中,开发人员可以利 用OpenGL制作出效果逼真的二、三维图像来。

OpenGL编程指南

OpenGL编程指南

OpenGL基础图形编程- 总目录出处:中国游戏开发者[ 2001-09-20 ]作者:总目录第一章OpenGL与三维图形世界1.1 OpenGL使人们进入三维图形世界1.2 OpenGL提供直观的三维图形开发环境1.3 OpenGL称为目前三维图形开发标准第二章OpenGL概念建立2.1 OpenGL基本理解2.2 OpenGL工作流程2.3 OpenGL图形操作步骤第三章Windows NT环境下的OpenGL3.1 Windows NT下的OpenGL函数3.2 OpenGL基本功能3.3 Windows NT下OpenGL结构第四章OpenGL基本程序结构第五章OpenGL数据类型和函数名第六章OpenGL辅助库的基本使用6.1 辅助库函数分类6.2 辅助库应用示例第七章OpenGL建模7.1 描述图元7.1.1 齐次坐标7.1.2 点7.1.3 线7.1.4 多边形7.2 绘制图元7.2.1 定义顶点7.2.2 构造几何图元第八章OpenGL变换8.1 从三维空间到二维平面8.1.1 相机模拟8.1.2 三维图形显示流程8.1.3 基本变换简单分析8.2 几何变换8.2.1 两个矩阵函数解释8.2.2 平移8.2.3 旋转8.2.4 缩放和反射8.2.5 几何变换举例8.3 投影变换8.3.1 正射投影8.3.2 透视投影8.4 裁剪变换8.5 视口变换8.6 堆栈操作第九章OpenGL颜色9.1 计算机颜色9.1.1 颜色生成原理9.1.2 RGB色立体9.2 颜色模式9.2.1 RGBA模式9.2.2 颜色表模式9.2.3 两种模式应用场合9.3 颜色应用举例第十章OpenGL光照10.1 真实感图形基本概念10.2 光照模型10.2.1 简单光照模型10.2.2 OpenGL光组成10.2.3 创建光源10.2.4 启动光照10.3 明暗处理10.4 材质10.4.1 材质颜色10.4.2 材质定义10.4.3 材质RGB值和光源RGB值的关系10.4.4 材质改变第十一章OpenGL位图和图像11.1 位图11.1.1 位图和字符11.1.2 当前光栅位置11.1.3 位图显示11.2 图像11.2.1 象素读写11.2.2 象素拷贝11.2.3 图像缩放11.2.4 图像例程第十二章OpenGL纹理12.1 基本步骤12.2 纹理定义12.3 纹理控制12.3.1 滤波12.3.2 重复与约简12.4 映射方式12.5 纹理坐标12.5.1 坐标定义12.5.2 坐标自动产生第十三章OpenGL复杂物体建模13.1 图元扩展13.1.1 点和线13.1.2 多边形13.2 法向计算13.2.1 法向基本计算方法13.2.2 法向定义13.3 曲线生成13.3.1 曲线绘制举例13.3.2 曲线定义和启动13.3.3 曲线坐标计算13.3.4 定义均匀间隔曲线坐标值13.4 曲面构造13.4.1 曲面定义和坐标计算13.4.2 定义均匀间隔的曲面坐标值13.4.3 纹理曲面13.4.4 NURBS曲面第十四章OpenGL特殊光处理14.1 光照模型14.1.1 全局环境光14.1.2 近视点与无穷远视点14.1.3 双面光照14.2 光源位置与衰减14.3 聚光与多光源14.3.1 聚光14.3.2 多光源与例程14.4 光源位置与方向的控制14.5 辐射光第十五章OpenGL效果处理15.1 融合15.1.1 Alpha值与融合15.1.2 融合因子15.1.3 融合实例15.2 反走样15.2.1 行为控制函数15.2.2 点和线的反走样15.2.3 多边形的反走样15.3 雾15.3.1 雾的概论和例程15.3.2 雾化步骤第十六章OpenGL显示列表16.1 显示列表概论16.1.1 显示列表的优势16.1.2 显示列表的适用场合16.2 创建和执行显示列表16.2.1 创建显示列表16.2.2 执行显示列表16.3 管理显示列表16.4 多级显示列表第十七章OpenGL帧缓存和动画17.1 帧缓存17.1.1 帧缓存组成17.1.2 缓存清除17.2 动画【下页】【打印】【关闭】[ 字号:大·中·小]OpenGL基础图形编程- OpenGL与3D图形世界出处:中国游戏开发者[ 2001-09-20 ]作者:目录1.1 OpenGL使人们进入三维图形世界1.2 OpenGL提供直观的三维图形开发环境1.3 OpenGL成为目前三维图形开发标准1.1、OpenGL使人们进入三维图形世界我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这些物体。

OpenGL基础

OpenGL基础

InitializeOpenGL() SetPixelFormat() SetLogicalPalette()
wglGetCurrent() wglGetCurrentDC() wglMakeCurrent() wglUseFontBitmaps()
OpenGL图形的实现方式
OpenGL与Windows绘图方式的区别: OpenGL与Windows绘图方式的区别: Windows采用GDI绘图(DCWindows采用GDI绘图(DC-设备描述表) OpenGL采用渲染上下文RC绘图(RC-渲染描述表) OpenGL采用渲染上下文RC绘图(RC-渲染描述表) OpenGL使用特殊的像素格式 OpenGL使用特殊的像素格式
MFC环境OpenGL单文档应用程序框架 MFC环境OpenGL单文档应用程序框架
(1) VC6.0下创建一个MFC工程: VC6.0下创建一个MFC工程 下创建一个MFC工程: File→New →MFC AppWiazard(exe)→A Simple Application →Finish (2) 添加包含文件和库文件路径 Tools →Options →Directories →添加Include路径 (gl.h glu.h glaux.h glut.h的目录) (3) 添加OpenGL库 添加OpenGL OpenGL库 Project →Settings… →Link → Object/library Module添加 “opengl.lib glu32.lib glaux.lib →OK (4) 添加消息响应函数: 添加消息响应函数: WM_CREATE,WM_DESTORY,WM_SIZE,WM_TIMER (5)修改StdAfx.h文件添加 .h” (5)修改StdAfx.h文件添加“.h”说明 修改StdAfx.h文件添加“ (6)修改View.h添加成员函数说明和成员变量 (6)修改View.h添加成员函数说明和成员变量 修改View.h (7)修改View.cpp函数 P10(7)修改View.cpp函数(见P10-P15) 修改View.cpp函数( (8)编译运行 (8)编译运行

第三章OpenGL编程基础PPT课件

第三章OpenGL编程基础PPT课件

GLUT的子程序的前缀使用字母“glut”。
二、GLUT函数:P32-37
1ห้องสมุดไป่ตู้初始化和创建窗口函数:
2、处理窗口和输入函数:
3、绘制三维物体:
4、管理后台处理:
5、运行程序:glutMainLoop(void);
2020/10/13
5
3.3 OpenGL初步编程
一个OpenGL程序一般包括以下几个部分:P38 (1)定义绘制对象 (2)初始化 (3)渲染屏幕图像
第三章OpenGL编程基础
OpenGL是目前用于开发可移植、可交互的 2D和3D图形应用程序的首选环境,也是目前最 广泛采用的计算机图形标准。
OpenGL所具有的功能基本上涵盖了计算机图 形学所要包括的各个方面的内容。
2020/10/13
1
主要内容
3.1 OpenGL简介 3.2 OpenGL应用工具包GLUT 3.3 OpenGL初步编程
详见:OpenGL入门学习
2020/10/13
8
谢谢您的指导
THANK YOU FOR YOUR GUIDANCE.
感谢阅读!为了方便学习和使用,本文档的内容可以在下载后随意修改,调整和打印。欢迎下载!
汇报人:XXXX 日期:20XX年XX月XX日
9
2020/10/13
6
3.3 OpenGL初步编程
一、OpenGL函数命名与数据类型:P38-39
二、OpenGL库和头文件:
动态库:opengl32.dll glu32.dll glut32.dll 放入 windows\system32目录下
静态库:opengl32.lib glu32.lib glut32.lib放入VC安装目录 的LIB目录下

OpenGL介绍与编程入门

OpenGL介绍与编程入门

OpenGL‎编程入门什么是Ope‎n GL•是一个功能强‎大的图形库,用户可以很方‎便地开发所需‎要地有多种特‎殊视觉(如光照,纹理,透明,阴影)的三维图形。

•与软硬件平台‎无关的三维图‎形软件包,可运行于多种‎窗口系统之上‎•包含图元生成‎、投影、光照、光栅化等图形‎显示过程所需‎的功能OpenGL‎的组成•OpenGL‎实用库–实用函数43‎个–函数以glu‎开头–例:gluPer‎s pecti‎v e();–完成更高层的‎图形处理如曲‎线曲面的生成‎、图象操作等•OpenGL‎辅助库–包括函数31‎个–函数以aux‎开头–例:auxIni‎t Windo‎w();–主要用于窗口‎管理–OpenGL‎(Open Graphi‎c s Librar‎y)是图形硬件的‎一个软件接口‎,也是该领域的‎工业标准。

图形程序员利‎用这些指令可‎以创建高质量‎的交互式的三‎维应用。

OpenGL‎的前身是SG‎I(Silico‎n Graphi‎c s)公司为其图形‎工作站开发的‎I RIS GL。

IRIS GL虽然功能‎强大但是移植‎性不好,于是SGI公‎司便在IRI‎S GL的基础上‎开发了Ope‎n GL。

OpenGL‎是一个与硬件‎无关的软件接‎口。

可以在不同的‎平台如Win‎d ows 95、Window‎s NT、Unix、Linux、MacOS、OS/2之间进行移‎植。

因此,支持Open‎G L 的软件具‎有很好的移植‎性,可以获得非常‎广泛的应用。

OpenGL‎是网络透明的‎,具有网络功能‎。

即便客户机和‎服务器是不同‎类型的计算机‎O penGL‎程序也可以在‎网络上运行。

这一点对于制‎作大型3D图‎形、动画非常有用‎。

例如,《玩具总动员》、《泰坦尼克》等电影的电脑‎特技画面就是‎通过应用Op‎e nGL的网‎络功能,使用120多‎台图形工作站‎共同工作来完‎成的。

OpenGL‎的发展一直处‎于一种较为迟‎缓的态势,每次版本的提‎高新增的技术‎很少,大多只是对其‎中部分做出修‎改和完善。

OpenGL介绍与编程入门

OpenGL介绍与编程入门

OpenGL编程入门什么是OpenGL•是一个功能强大的图形库,用户可以很方便地开发所需要地有多种特殊视觉(如光照,纹理,透明,阴影)的三维图形。

•与软硬件平台无关的三维图形软件包,可运行于多种窗口系统之上•包含图元生成、投影、光照、光栅化等图形显示过程所需的功能OpenGL的组成•OpenGL实用库–实用函数43个–函数以glu开头–例:gluPerspective();–完成更高层的图形处理如曲线曲面的生成、图象操作等•OpenGL辅助库–包括函数31个–函数以aux开头–例:auxInitWindow();–主要用于窗口管理–OpenGL(Open Graphics Library)是图形硬件的一个软件接口,也是该领域的工业标准。

图形程序员利用这些指令可以创建高质量的交互式的三维应用。

OpenGL的前身是SGI(Silicon Graphics)公司为其图形工作站开发的IRIS GL。

IRIS GL虽然功能强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。

OpenGL是一个与硬件无关的软件接口。

可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。

因此,支持OpenGL 的软件具有很好的移植性,可以获得非常广泛的应用。

OpenGL是网络透明的,具有网络功能。

即便客户机和服务器是不同类型的计算机OpenGL程序也可以在网络上运行。

这一点对于制作大型3D图形、动画非常有用。

例如,《玩具总动员》、《泰坦尼克》等电影的电脑特技画面就是通过应用OpenGL的网络功能,使用120多台图形工作站共同工作来完成的。

OpenGL的发展一直处于一种较为迟缓的态势,每次版本的提高新增的技术很少,大多只是对其中部分做出修改和完善。

随着DirectX的不断发展和完善,OpenGL的优势逐渐丧失,至今虽然已有3Dlabs提倡开发的2.0版本面世,在其中加入了很多类似于DirectX中可编程单元的设计,但厂商的用户认知程度并不高,未来的OpenGL发展前景迷茫。

OpenGL学习笔记:三维数学基础(一)坐标系、向量、矩阵

OpenGL学习笔记:三维数学基础(一)坐标系、向量、矩阵

OpenGL学习笔记:三维数学基础(⼀)坐标系、向量、矩阵接触OpenGL和计算机图形学有⼀段时间了,⼀直想写⼀点东西,记录⾃⼰的学习历程,或许也能够为有意愿向计算机图形学发展的菜鸟们提供⼀条捷径。

闲话不多说,本章主要介绍计算机图形学中三维数学的⼀些基础知识,主要包括2D、3D笛卡尔坐标系,向量、矩阵的数学和⼏何意义以及公式。

由于篇幅限制,其中的推导过程本⽂不作叙述,感兴趣的读者可以去看《3D数学基础+图形与游戏开发》,已上传,链接地址在本⽂末尾。

⼀、计算机图形学计算机图形学(Computer Graphics)是⼀种使⽤数学算法将⼆维或三维图形转化为计算机显⽰器的栅格形式的科学。

其⼴泛应⽤于游戏、动画、仿真、虚拟现实(VR)、增强现实(AR)等领域。

在数学之中,研究⾃然数和整数的领域称为离散数学,研究实数的领域称作连续数学。

在计算机图形学中,为虚拟世界选择度量单位的关键是选择离散的精度。

⼀种错误的观点认为short、int是离散的,⽽float、double是连续的,⽽事实上,这些数据类型都是离散的。

于是,计算机图形学有如下准则:计算机图形学第⼀准则:近似原则——如果它看上去是对的,它就是对的。

⼆、笛卡尔坐标系2D笛卡尔坐标系是⼀个精确定位点的框架。

2D坐标的标准表⽰法是(x,y),相信⼤家初中都学过。

⼀般,标准的笛卡尔坐标系是x轴向右,y轴向上。

⽽计算机图形学中的屏幕坐标往往是x轴向右,y轴向下。

如图1所⽰。

图1:2D笛卡尔坐标系和2D屏幕坐标系3D笛卡尔坐标系类似,增加了第三个维度,z轴。

3D坐标系分为完全不同的2种坐标系,左⼿坐标系和右⼿坐标系。

判断⽅法为,左⼿坐标系:伸出左⼿,让拇指和⾷指成“L”形,⼤拇指向右,⾷指向上,其余⼿指指向前⽅。

此时,拇指、⾷指和其余三指分别代表x、y、z轴的正⽅向。

右⼿坐标系,相同,只是把左⼿换成右⼿。

如图2所⽰。

图2:左⼿坐标系与右⼿坐标系其中左⼿坐标系⼴泛应⽤于计算机图形学、D3D之中,⽽右⼿坐标系⼴泛应⽤于OpenGL、线性代数、3DSMax之中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开发人员可以在各种硬件平台利用OpenGL进 行图形软件开发
进行图形开发实践的必备工具
OpenGL发展历史(8/8)
OpenGL并不是唯一
OpenGL是一个相当比OpenGL更优秀、更专业(功 能专一,且纯粹)的开发包,也许并不是标 准,但应用于一些超高端的、更专业的图形 工作站,服务于一些特定应用(电影制作、 游戏等等)
opengl2.0支持OpenGL Shading Language、新的shader扩展特性以及其 他多项增强特性。
智能手机和Pocket PC的OpenGL ES 2.0版, 2007
补充
2008年8月初Khronos工作组在Siggraph 2008大会上宣布了OpenGL 3.0图形接口规范,GLSL1.30 shader语言和其他新增功能将再次未来开放3D接口发展指明方向。
OpenGL发展历史(6/8)
OpenGL成为高性能图形和交互式视景处 理的工业标准
NVIDIA、ATI等显卡制造商支持OpenGL标准 Windows系列、Linux、Unix、OS/2等各平台
都提供对OpenGL的支持
OpenGL发展历史(7/8)
OpenGL的普及应用
计算机硬件性能的提高和OpenGL本身的不断 发展,使得OpenGL不再只属于专用图形工作 站
OpenGL是函数库;DirectX则是组件库 OpenGL各版本向后兼容;DirectX的体系结构则在不
停变化,并不向后兼容
OpenGL与DirectX(5/5)
目前应用
一般显卡厂商都支持OpenGL和DirectX,同时 针对两者进行硬件优化
教学、科研方面OpenGL是主流,游戏开发、 商业应用则基本采用DirectX
OpenGL三维图形编程基础
OpenGL概述
主讲: 李胜
参考书
《OpenGL编程指南》,机械工业出版社,俗称 “OpenGL红宝书”
第三章 OpenGL概述
OpenGL发展历史 OpenGL基本特点 OpenGL与DirectX OpenGL基本功能 OpenGL语法特点 OpenGL状态机制
OpenGL标准
由SGI等OARB成员以投票方式产生标准 OARB公布规范文档(Specification),各软
硬件厂商据此开发自己系统上的实现 只有通过了OARB规范全部测试的实现才能
称为OpenGL
OpenGL发展历史(4/8)
OpenGL标准
1.0版,1992年7月 1.1版,1995年12月 1.2版,1998年3月,最常用版本 1.2.1版,1998年10月 1.3版,2001年8月 1.4版,2002年7月 1.5版,2003年7月, 2.0版,2004年 OpenGL2.0版本发布 OpenGL 2.0标准的主要制订者是逐渐在ARB中占据主动地位的3Dlabs。
OpenGL 3.0 API开发代号为Longs Peak,和以往一样,OpenGL 3.0仍然作为一个开放性和跨平台 的3D图形接口标准,在Shader语言盛行的今天,OGL3.0增加了新版本的shader语言:GLSL 1.30, 可以充分发挥当前可编程图形硬件的潜能。同时,OGL3.0还引入了一些新的功能,例如顶点矩 阵对象,全帧缓存对象功能,32bit浮点纹理和渲染缓存,基于阻塞队列的条件渲染,紧凑行半 浮点顶点和像素数据,四个新压缩机制等等。
矩阵变换
无论多复杂的图形都是由基本图元组成并经 过一系列变换来实现的
OpenGL提供四种基本变换:平移、旋转、按 比例缩放、镜像
OpenGL提供两种投影变换:平行投影(正射 投影)、透视投影
OpenGL基本功能(6/11)
颜色管理
OpenGL提供了两种颜色模式:RGBA模式,颜色索 引模式(Color index)
OpenGL基本特点(1/3)
跨平台的工业标准 标准支持灵活
各平台开发商可以自由地开发适合于各自系 统的OpenGL执行实例
OpenGL功能可由特定的硬件实现,也可用纯 软件例程实现,或者以软硬件结合的方式实 现,只要支持标准即可
OpenGL基本特点(2/3)
运行稳定,容易使用
OpenGL基本功能(2/11)
物体建模与图元(Primitive)绘制
OpenGL认为,所有的物体都是由点、线、多 边形构成的,点、线、多边形被称为图元 (Primitive)
OpenGL一共定义了十种图元(Primitive)
OpenGL基本功能(3/11)
物体建模与图元(Primitive)绘制
DirectX库采用COM组件思想设计,提供二进 制级的组件接口
OpenGL与DirectX(2/5)
DirectX简介
DirectX提供多媒体程序开发所需的全面的API支持
z 图形,DirectX Graphics z 声音,DirectSound,DirectMusic z 交互,DirectInput z 多人网络游戏,DirectPlay z 流媒体,DirectShow
RGBA模式为每个像素点指定颜色,可提供丰富多彩 的色彩效果,其中A是混合因子,用于各种特效处理
对于显示能力不足的硬件,可采用颜色索引模式,系 统提供一个颜色表,通常有256或4096种颜色,各像 素点通过索引颜色表项得到颜色值
OpenGL基本功能(7/11)
光照和材质
在现实生活中,物体因为受光照射和自身对 各种频率光波的吸收与反射能力的不同,而 呈现各自不同的颜色
第一个图形软件包:图形核心系统,GKS ISO(国际标准化组织)和ANSI(美国标准化所)标
准:层次结构交互图形系统,PHIGS,扩充后形成 PHIGS+ SGI的图形库:GL,扩充后形成OpenGL,实际上的 图形工业标准 ……
OpenGL发展历史(2/8)
OpenGL(开放性图形库Open Graphics Library) 标准
OpenGL与DirectX(4/5)
OpenGL与DirectX的不同点
OpenGL是跨平台标准,且有各个平台的实现; DirectX仅仅应用于Windows,由Microsoft独立开发
OpenGL仅仅提供图形绘制功能,甚至没有交互功 能;DirectX则提供了多媒体程序开发所需的全部API
2010年刚刚推出了Opengl4.0版,特性待研究。
OpenGL发展历史(5/8)
OpenGL成为高性能图形和交互式视景处理的工 业标准
SGI、IBM、DEC、SUN、HP等大型硬件厂商都采用 OpenGL作为三维图形标准
动画软件Soft Image、动画软件3D Studio MAX、仿 真软件Open Inventor、VR(虚拟现实)软件World Tool Kit、CAM(计算机辅助制造)ProEngineer、 GIS(地理信息系统)软件ARC/INFO等软件的制造 厂商都以OpenGL为基础进行开发
OpenGL渲染流水线 OpenGL相关函数库 使用GLUT函数库 使用WGL函数库 OpenGL相关资源 作业
建立OpenGL中的重要概念
OpenGL发展历史(1/8)
一幅图胜过千言万语 在研究三维图形的过程中,人们开发了各种图
形工具库(软件包,即一系列函数的集合)
GL_LINES
GL_POINTS
GL_LINE_STRIP GL_LINE_LOOP
GL_POLYGON
GL_TRIANGLES
GL_TRIANGLE_STRIP
GL_QUADS GL_QUAD_STRIP
GL_TRIANGLE_FAN
OpenGL基本功能(4/11)
物体建模与图元(Primitive)绘制
需要跨平台应用时,只能用OpenGL
OpenGL基本功能(1/11)
物体建模与图元(Primitive)绘制 矩阵变换 颜色管理 光照和材质 纹理映射(Texture mapping) 反走样(Antialiasing) 图像特效 双缓存(Double buffering)动画
2009年3月又公布了升级版新规范OpenGL 3.1,也是这套跨平台免费API有史以来的第九次更新。 OpenGL 3.1将此前引入的OpenGL着色语言“GLSL”从1.30版升级到了1.40版,通过改进程序增强 了对最新可编程图形硬件的访问,还有更高效的顶点处理、扩展的纹理功能、更弹性的缓冲管 理等等。
物体建模的意思就是将物体用图元(Primitive) 表示,由于三点决定一个平面,所以物体常 用三角面片来表示,三角面片越多,物体越 复杂
OpenGL提供了各种图元的绘制函数,以及一 些复杂三维物体(球、锥、多面体、茶壶)、 曲线曲面(贝塞尔、NURBS)的绘制函数
OpenGL基本功能(5/11)
相应的OpenGL函数 一个成功的OpenGL扩展会被融入在未来的
OpenGL版本之中 因此,OpenGL能紧跟最新硬件发展和计算机
图形绘制算法的发展
OpenGL与DirectX(1/5)
DirectX简介
DirectX是Microsoft公司开发的底层应用程序 接口,用于Windows平台下游戏软件和多媒 体系统的开发
OpenGL的实现
z 假设光仅仅由三原色(RGB)组成 z 物体对三原色分别有不同的反射率(即材质) z 利用物理光学模型,计算物体实际的颜色
OpenGL基本功能(8/11)
纹理映射(Texture mapping)
由于物体采用图元(Primitive)表示(点、线、多边 形),绘制时,有效渲染的地方也仅仅是这些点、线、 多边形,其它位置的颜色值则通过插值实现,这就造 成了物体绘制的不真实
相关文档
最新文档