计算机图形学课程设计-三维真实感图形设计与绘制

合集下载

计算机图形学真实感图形绘制PPT课件

计算机图形学真实感图形绘制PPT课件

i1
i1
2020年9月28日
19
10.2 基于简单光照模型的多边形绘制
恒定光强 Gouraud明暗处理 Phong明暗处理
2020年9月28日
20
恒定光强
只用一种颜色绘制整个多边形 光源在无穷远处,则多边形上所有点的L·N 为常数,衰减函数也是一个常数。 视点在无穷远处,则多边形上所有点的V·R 为常数。 多边形是景物表面的精确表示,即不是一个 含曲线面景物的近似表示。
第十章 真实感图形绘制
基本概念 简单光照模型 基于简单光照模型的多边形绘制
2020年9月28日
1
基本概念
真实感图形绘制:通过综合利用数学、物理学、 计算机以及心理学等知识在计算机图形输出设 备上绘制出能够以假乱真的美丽景象。
光强(度):描述物体表面朝某方向辐射光的 颜色,它既能表示光能大小又能表示其色彩组 成的物理量。
n
n
IaK a f(di)Ip,iK d(L iN ) f(di)Ip,iK s(H iN )n
i 1
i 1
2020年9月28日
16
颜色
选择颜色模型(color model) 面向硬件的颜色模型:RGB、CYM 面向视觉感知的颜色模型:HSI
为颜色分量指定光照模型
2020年9月28日
17
2020年9月28日
2
基本概念
光照模型(Illumination model),也称明暗模 型,主要用于物体表面某点处的光强度计算。 简单的光照模型 复杂的光照模型
2020年9月28日
3
基本概念
真实感图形绘制过程 根据假定的光照条件和景物外观因素,依
据一定的光照模型,计算可见面投射到观察者 眼中的光强度大小,并将它转换成适合图形设 备的颜色值,生成投影画面上每一个象素的光 强度,使观察者产生身临其境的感觉。

三维图形设计课程设计

三维图形设计课程设计

三维图形设计课程设计一、课程目标知识目标:1. 学生能够理解并掌握三维图形的基本概念、性质及分类;2. 学生能够运用相关软件(如AutoCAD、SketchUp等)进行三维图形的设计与绘制;3. 学生能够运用几何知识对三维图形进行尺寸标注和计算。

技能目标:1. 学生能够运用所学的三维图形设计方法,独立完成简单三维图形的设计与绘制;2. 学生能够通过实际操作,提高空间想象能力和动手能力;3. 学生能够运用所学的知识,分析和解决实际问题。

情感态度价值观目标:1. 学生对三维图形设计产生兴趣,激发学习热情;2. 学生在学习过程中,培养团队协作、沟通交流的能力;3. 学生能够认识到三维图形设计在现实生活中的应用,提高对学科价值的认识。

本课程针对初中年级学生,结合学生年龄特点和认知水平,注重培养学生的空间想象能力和实际操作能力。

通过本课程的学习,使学生掌握三维图形设计的基本知识和技能,激发学生的学习兴趣,提高学生的综合素质。

同时,课程目标具体、可衡量,有助于教师进行教学设计和评估。

二、教学内容1. 三维图形基本概念与性质:包括点、线、面、体的基本定义,三维图形的分类及性质,通过实例分析使学生直观理解。

2. 三维图形绘制工具与软件操作:介绍AutoCAD、SketchUp等三维图形设计软件的基本功能与操作方法,让学生掌握软件的使用技巧。

3. 三维图形设计与绘制:学习如何运用软件进行简单三维图形的设计与绘制,包括正方体、长方体、圆柱、圆锥等基本几何体。

4. 三维图形尺寸标注与计算:教授如何对三维图形进行尺寸标注,以及运用几何知识进行尺寸计算。

5. 实际案例分析与制作:结合实际案例,让学生动手设计与绘制具有一定难度的三维图形,提高学生的实际操作能力。

教学内容按照以下进度安排:第一课时:三维图形基本概念与性质第二课时:三维图形绘制工具与软件操作第三课时:三维图形设计与绘制(基本几何体)第四课时:三维图形尺寸标注与计算第五课时:实际案例分析与制作教学内容与课本紧密关联,遵循科学性和系统性原则,确保学生能够循序渐进地掌握三维图形设计的相关知识。

计算机图形学实验及课程设计

计算机图形学实验及课程设计
计算机图形学实验及课程设计
孔令德 2012年春于太原
实验任务书
一、实验目的与要求
实验目的:巩固学生对计算机图形学的直线扫描转换原理、 有效边表填充原理、三维透视投影原理、ZBuffer深度缓冲消隐 原理和真实感图形生成原理的理解,增加学生对真实感图形生 成算法的感性认识,强化训练学生使用Visual C++的MFC编写 相关图形类的技能。 此前,课堂上已经完成《计算机图形学实践教程(Visual C++版)》的43个验证性实验的讲解,在此基础上,要求学生 能综合使用全部教学内容完成综合性实验。 实验要求:要求学生在实验前了解综合性实验的目的和要 求,观察实验效果图。在实验中认真理解每个类的结构,通过 搭积木的方式完成实验任务。实验结束后按要求整理相关类的 源程序,撰写实验报告,尤其需要对难点和重点进行详细说明。


使用双缓冲技术在屏幕上绘制三维立方体的二维透视投影图。
使用键盘方向键旋转立方体线框模型。 按下鼠标左键缩小立方体,按下鼠标右键增大立方体。
使用工具条上的“动画”图标播放立方体线框模型的旋转动画。
实验7立方体线框模型透视投影
7.3 效果图
立方体线框模型透视投影效果如图7-1所示。
图7-1 立方体线框模型透视投影效果图
图9-1 动态绘制Bezier曲线效果图
实验10 交互式三次B样条曲线
10.1 实验目的
掌握三次B样条曲线的基函数。 掌握分段三次B样条曲线的绘制方法。 掌握三次B样条曲线的特殊构造技巧。 掌握图形顶点可视化移动技巧。
实验10 交互式三次B样条曲线
10.2 实验要求
给定9个控制点:P0 (104,330),P1= (204,231), P2= (286,362),P3= (363,145),P4= (472,527), P5= (548,228),P6= (662,40),P7= (830,450), P8= (930,350)。绘制三次B样条曲线。 移动鼠标光标到控制点上,光标变为手形,显示 其坐标信息。 拖动控制点,曲线形状随之发生改变,验证三次 B样条曲线的特殊构造技巧。

计算机图形学第7讲真实感图形的绘制PPT课件

计算机图形学第7讲真实感图形的绘制PPT课件

2020年9月28日
39
简单光照明模型
Gouraud明暗处理算法
计算多边形顶点的平均法向
nb n
nc
用与顶点相邻的所有多边形 的法向的平均值近似作为该
na
nd
顶点的近似法向量
用Phong光照明模型计算顶 点的平均光强
插值!
I1 I2
2020年9月28日
I0
I4 I3
40
简单光照明模型
光强插值
(R) 、(G) 、(B) 为正值 (R) 、(G) 、(B)为方向,代表颜色
降维到色度平面(R) +(G)+(B)=1
2020年9月28日
9
基础概念
球面坐标系
2020年9月28日
10
基础概念
立体角(Solid Angle)
投影面积
Anv
2020年9月28日
v
11
基础概念
光通量
单位时间内通过面元的光能量(单位W)
饱和度(Saturation)-纯度(Purity)
颜色纯度
纯度越高:单一波长且更亮(激光)
亮度(Lightness)-明度(Luminance)
光的亮度 光在单位时间内从单位面积向单位立体角所发射的能量
2020年9月28日
5
2020年9月28日
6
颜色
红、绿、蓝三原色 (RGB)
1862年Helmhotz提出 视锥网膜存在三种细胞,分别感应红绿蓝三种颜色
N4 N3
D
F B
E
C
46
简单光照明模型
Phong明暗处理:双线性法线插值
通过更加平滑的法向量变化,以产生高光效果

计算机图形学-真实感图形显示

计算机图形学-真实感图形显示

隐藏面的消除-画家算法 (2/4)
v 基本思想
画家消隐算法
{
对场景中的多边形按深度进行排序, 形成深度优先级队列; 按从远到近的顺序显示多边形;
}
v 也称优先级表算法
哈尔滨工业大学计算机学院 苏小红
16
隐藏面的消除-画家算法 (3/4)
v 基本步骤
生成深度优先级队列
v据视点距离远的多边形优先级低,排在队列的前端 v据视点距离近的多边形优先级高,排在队列的后端
4)比较CP与Pin的深度,检查CP是否真正离视点最近
是,则CP为可见表面 不是,则取Pin为新的CP,重复步骤3)
5)将位于CP之外的景物表面组成外裁剪结果多边形表
取表中深度最大的表面为CP,重复步骤3)
6)递归进行直到外裁剪结果多边形表为空时为止
哈尔滨工业大学计算机学院 苏小红
23
隐藏面的消除- BSP树算法(1/2)
v BSP树算法
Binary Space Partitioning 景物空间消隐算法 基于BSP树,对景物表面进行二叉分类 与画家算法类似,景物多边形由远至近绘制
v 特别适合的场合
场景中物体位置固定不变、仅视点移动
哈尔滨工业大学计算机学院 苏小红
24
隐藏面的消除-BSP树算法(2/2)
v 基本步骤
选一剖分平面P1,将场景空间分割成 两个半空间
剖分结果表示为一棵BSP树
v 叶节点:景物 v 左分支:位于剖分平面前面的景物 v 右分支:位于剖分平面后面的景物
依据视点位置,对子空间进行分类
v 包含视点的子空间标识为“front” v 另一侧子空间标识为“back”
递归搜索该BSP树,优先绘制标识为

计算机图形学课程设计-三维真实感图形设计与绘制

计算机图形学课程设计-三维真实感图形设计与绘制

计算机图形学课程设计报告一、实验题目三维真实感图形设计与绘制(1)题目容说明:本题目要求应用OpenGL的光照技术和纹理技术实现一个简单的三维真实感图形的程序设计。

具体要现功能:1)通过对话方式实现交互式设计光照模型功能。

2)实现三维模型纹理映射功能3)用鼠标跟踪球方法实现三维模型的空间旋转2)实现鼠标跟踪球方法程序二、需求分析真实感图形的设计与绘制,是计算机图形学中的一个重要研究领域,也是三维实体造型系统和特征造型系统的重要组成部分。

一般地,三维实体在计算机显示屏上有三种表现形式:简单线框图、线框消隐图和真实感图形。

其中,简单线框图能够粗略表达实体的形状,但由于简单线框图的二义性,从而导致表达其的实体形状具有不确定性。

而线框消隐图虽然能反映实体各表面间的相互遮挡关系,从而达到消除简单线框图产生的二义性的目的,但是这两者一样地只能反映实体的几何形状和实体间的相互关系,而不能反映实体表面的特征,如表面的颜色、材质、纹理等。

所以,只有真实感图形才能表现实体的这些特征,因此,在三维实体造型中,生成三维实体的光照模型,进行实体的真实感绘制与显示占有重要的地位,是很有必要的,也是我做此设计的初衷。

在设计中,我主要使用Opengl绘制真实感图形,它作为一种强大的三维图形开发工具,通过便捷的编程接口提供了处理光照和物体材质、颜色属性等通用功能。

真实感图形学是计算机图形的核心容之一,是最能直接反映图形学魅力的分支。

寻求能准确地描述客观世界中各种现象与景观的数学模型,并逼真地再现这些现象与景观,是图形学的一个重要研究课题。

很多自然景物难以用几何模型描述,如烟雾、植物、水波、火焰等。

本文所讨论的几种建模及绘制技术都超越了几何模型的限制,能够用简单的模型描述复杂的自然景物。

在计算机的图形设备上实现真实感图形必须完成的四个基本任务。

1. 三维场景的描述。

三维造型。

2. 将三维几何描述转换成为二维透视图。

透视变换。

3. 确定场景中的所有可见面。

计算机图形学-第五章 三维真实感图形

计算机图形学-第五章 三维真实感图形
计算机图形学
第五章 三维真实感图形
—— 光照明模型
2023/6/18
1
计算机图形学
5.1 什么是真实感图形
所谓真实感图形是指用计算机绘制场景时,生成一幅类似 于照片的图形。
光照明模型是生成真实感图形的基础。简言之,光照明模 型即根据光学物理的有关定律,计算景物表面上任一点投向观 察者眼中的光亮度的大小和色彩组成的公式。对于在光栅图形 设备上显示的真实感图形,我们需要依据光照明模型计算每一 象素上可见的景物表面投向观察者的光亮度。光照明模型分为 局部光照明模型和整体光照明模型。
从实验结果来看, Lambert 漫反射模型用来模拟理想漫反射
2023/6/18
19
计算机图形学
表面(如石灰粉刷的墙壁、纸张等)的光亮度分布是可行的。 但对表现诸如金属材料制成的物体表面的光亮度分布时,则显 得非常呆板,没能表现其特有的光泽,其主要原因是该模型没 有考虑这些表面的镜面反射效果。
5.3.2 Phong 光照明模型
射率。在实际场景中,一个物体表面即使不直接暴露于光源之
下, 只要其周围的物体被照明,它也可能看得见。这是由于物体
2023/6/18
14
计算机图形学
还会接收到从周围环境投射来的光。在图形学中,称这部分光 为环境光(ambient light)或泛光。环境光是一种分布式光源, 精确模拟它非常耗时。在局部光照明模型中,我们常假定环境 反射光是均匀入射的漫反射光,并用一常数来表示其强度。这 样 Lambert 漫反射光照明模型可写成:
根据光的反射定律,反射光和入射光对称地分布在表面法 线的两侧。对于纯镜面,入射光线严格遵循光的反射定律单向 地反射出去(图 a)。对于一般景物表面,由于表面实际上是由 许多朝向不同的微小平面组成,其镜面反射光分布于镜面反射 方向 R 的周围(图 b)。由于一般镜面反射光的计算较为复杂, 在实际应用中,常作适当的简化处理。

三维制图课课程设计

三维制图课课程设计

三维制图课课程设计一、教学目标本节课的教学目标是让学生掌握三维制图的基本概念、方法和技巧,能够运用相关软件进行简单的三维模型设计。

具体来说,知识目标包括了解三维制图的基本原理、熟悉三维建模的基本操作和方法;技能目标包括能够独立完成三维模型的构建、掌握基本的渲染和动画制作技巧;情感态度价值观目标包括培养学生的创新意识、提高学生的问题解决能力,以及培养学生的团队合作精神。

二、教学内容本节课的教学内容主要包括三维制图的基本概念、三维建模的基本方法、以及三维模型的渲染和动画制作。

具体来说,首先介绍三维制图的基本概念,如三维空间、坐标系、视图等;然后讲解三维建模的基本方法,包括创建基本几何体、编辑几何体、组合几何体等;最后介绍三维模型的渲染和动画制作,如材质、纹理、光照、摄像机、动画轨迹等。

三、教学方法为了达到本节课的教学目标,采用多种教学方法相结合的方式进行教学。

首先,通过讲授法向学生介绍三维制图的基本概念和方法;其次,通过案例分析法让学生通过实际操作案例来掌握三维建模的基本技巧;然后,通过讨论法让学生在小组内交流和分享自己的学习和创作心得;最后,通过实验法让学生在计算机上实际操作,巩固所学的知识和技能。

四、教学资源为了支持本节课的教学内容和教学方法的实施,准备了一系列的教学资源。

教材方面,选择国内权威出版的《三维制图教程》作为主教材,辅助以相关的参考书籍和网络资源;多媒体资料方面,制作了详细的PPT演示文稿,并搜集了一些优秀的三维模型设计案例进行展示;实验设备方面,确保每个学生都能 access 到计算机和相应的三维制图软件,以进行实际操作。

五、教学评估本节课的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。

评估主要包括以下几个方面:1.平时表现:通过观察学生在课堂上的参与度、提问回答、小组讨论等表现,评价学生的学习态度和积极性。

2.作业:布置适量的作业,要求学生独立完成,通过作业的完成质量评估学生对三维制图知识和技能的掌握程度。

计算机图形学第八章-真实感图形生成技术PPT课件

计算机图形学第八章-真实感图形生成技术PPT课件
写入刷新缓冲器,且用z(x,y)重置Zbuffer(x,y); (4) 所有多边形都处理完后,显示消隐图。
深度缓冲器算法便于硬件实现。实际上,在当今生 产的大多数高档图形工作站,除了帧缓存外,还带有 用于消隐的深度缓存,从而克服了深度缓存算法占用 大量存储单元的缺点。
2021/3/5
14
8.1.4 区域细分算法 区域细分算法也称为Warnock算法。这种算法在图像空
设平面方程为 Ax+By+Cz+D=0
法向矢量为 N﹦Ai﹢Bj﹢Ck
则cosβ﹦C/|N|。作为判断依据,只需要知道cosβ的正负 号就够了。因为|N|恒大于 0,所以cosβ的符号由C决定, 因此,当C<0 时,为可见面。当C≥0时,为不可见面。
2021/3/5
7
由于三点可以构成一个平面,和三点可以构成两个
画家算法也称表优先级算法或深度优先排序算法。 这种算法排序操作同时在对象空间和图象空间完成, 而在图象空间产生消隐图。实现时首先以深度优先级 进行排序,距观察点远的面优先级低,近的面优先级 高,以此建立一张深度优先级表。然后按优先级表顺 序将各面送入帧缓冲器进行显示。
2021/3/5
10
深度优先级表的建立是动态进行的。假定观察方向
图3
2021/3/5
6
设平面外法线同Z轴方向的夹角为β,则cosβ为单位平面 外法线矢量在Z轴上的分量。β角同可见性的关系为:
(1)当 0≤β≤90 时,cosβ>0,此面背向观察者 为不可见面。
(2)当 ﹦90 时,cosβ﹦0,此面平行于Z轴,可以认 为是不可见面。
(3)当 90≤β≤180 时,cosβ<0,此面朝向观察 者的,为可见面。 Nhomakorabea图1

计算机图形学课件-第八章-真实感图形的绘制精选课件PPT

计算机图形学课件-第八章-真实感图形的绘制精选课件PPT

明暗模型
漫射照明 具体光源的照射 透射效应。
漫反射 镜面反射
2021/3/2
7
Computer Graphics
College of Computer Science and Technology
简单的光照模型仅考虑光源照射在物体表面 产生的反射光。这种光照模型通常假定物体是 光滑的且由理想材料构成,所生成的图形可以 模拟出不透明物体表面的明暗过渡,具有一定 的真实感效果。这类光照明模型称为局部光照 明模型。
College of Computer Science and Technology
用计算机在图形设备上生成连续色调的真 实感图形必须完成四个基本的任务。
1 用数学方法建立所构造三维场景的几何描述,并 将它们输入至计算机。这部分工作可由三维立体 造型或曲面造型系统来完成。
2 将三维几何描述转换为二维透视图。
2
Computer Graphics
College of Computer Science and Technology
当光照射到物体表面时,光线可能被 吸收、反射和透射。被物体吸收的部分转 化为热,反射、透射的光进入人的视觉系 统,使我们能看见物体。为模拟这一现象, 需要建立一些数学模型来替代复杂的物理 模型,这些模型就称为明暗效应模型或者 光照(明)模型。
第一节
College of Computer Science and Technology
漫反射及具体
光源的照明
1.环境光
在多数实际环境中,存在由于许多 物体表面多次反射而产生的均匀的照 明光线,这就是环境光线。环境光线 的存在使物体得到漫射照明.
亮度计算如下:
I=Ia· κa
2021/3/2

计算机图形学课件-第10章-真实感图形绘制--电子教案PPT教学课件

计算机图形学课件-第10章-真实感图形绘制--电子教案PPT教学课件
Gouraud明暗处理方法,又称为亮度插值明暗处理,它通 过对多边形顶点颜色进行线性插值来绘制其内部各点。
用Gouraud明暗处理来进行多边形绘制时需进行三个步骤: 1. 计算每个多边形顶点处的平均单位法矢量 2. 对每个顶点根据简单光照模型来计算其光强。
3. 在多边形表面上将顶点强度进行线性插值。
3
7
基本概念: 光强(度):描述物体表面朝某方向辐射光的 颜色,它既能表示光能大小又能表示其色彩组 成的物理量。 光照模型(Illumination model),也称明暗模型, 主要用于物体表面某点处的光强度计算。 简单的光照模型 复杂的光照明模型
2020/10/16
华中理工大学计算机学院 陆枫 99-
6
7
10.1.2 漫反射光
图10-2 点光源发射的光线路径
2020/10/16
华中理工大学计算机学院 陆枫 99-
7
7
点光源
N
L
P
图 10-3 漫 反 射
由Lambert余弦定理可得点P处漫反射光的强度为:
2020/10/16
IdIpK dc o,s [0 , 2]
华中理工大学计算机学院 陆枫 99-
2020/10/16
华中理工大学计算机学院 陆枫 99-
21
7
10.5 模拟景物表面细节
颜色纹理:通过颜色色彩或明暗度的变化体现 出来的表面细节。 几何纹理:由于不规则的细小凹凸造成的。 颜色纹理取决于物体表面的光学属性,而几何 纹理由物体表面的微观几何形状决定。
2020/10/16
华中理工大学计算机学院 陆枫 99-
8
7
点光源
N
L
P
图 10-3 漫 反 射

计算机图形学课件-第13章-真实感图形PPT教学课件

计算机图形学课件-第13章-真实感图形PPT教学课件
进行双线性插值,获得多边形内部(位于多边 形内的扫描线上)各点的法矢量; 4)利用光照明方程计算各点的颜色。
两方法的比较
目录
上一页 下一页 退出
1) Phong着色方法计算量远大于Gouraud着 色方法
2) Phong着色方法绘制的图形比Gouraud方 法更真实
体现在两个场合:高光区域的扩散 不产生高光区域
2020/10/16
13.1.6 采用多个光源
目录
上一页 下一页 退出
多光源照射的光照明方程 小结
图13.11 采用各种光照明模型绘制的球 P307
2020/10/16
13.2 多边形绘制方法
目录
上一页 下一页 退出
分类:均匀着色与光滑着色
13.2.1 均匀着色
所适用场景:
1)光源在无穷远处; 2)视点在无穷远处; 3)多边R WATCHING
演讲人: XXX
PPT文档·教学课件
谢谢大家!本文档为精心编制而成,您可以在下载后自由修改和打印,希望下载对您有帮助!
第13章 光照明模型与真实感图形绘制
目录
上一页 下一页 退出
13.1 简单光照明模型 13.2 多边形绘制方法 13.3 模拟物体表面细节 13.4 透明 13.5 整体光照明模型
2020/10/16
13.1 简单光照明模型
目录
上一页 下一页 退出
光照射到物体表面,主要发生: • 反射 • 透射(对透明物体) • 部分被吸收成热能
插值着色方法存在的问题
2020/10/16
13.3 模拟物体表面细节
目 录 13.3.1 表面细节模拟
上一页 下一页 退出
光滑表面(简单光照明模型 模拟)

计算机图形学报告

计算机图形学报告

. . . . .. . 优质资料 .. 计算机图形学 (2017年秋季学期)实验 报 告系别:计算机科学与技术 班级: : 学号:实验名称:2-真实感图形绘制2020-11-132/3《计算机图形学》实验报告实验名称真实感图形绘制 实验序号 2实验日期 2017.12.13 实验人 一、实验目的、要求与环境1.目的:通过实验,学生应掌握通过计算机程序进行真实感图形绘制的基本原理,特别是对三维显示对象进行纹理映射的基本方法,将理论和实际应用切实结合起来。

2.要求:对一个三维立方体进行旋转,对其6个不同的面进行6个不同图像的纹理映射,并进行投影变换与显示,分析增强后的视觉效果,提交实验报告。

3.环境:Windows 7操作系统Microsoft Visual Studio 2005OpenGL 函数库4. 自带位图文件(换成你自己的图像文件):总成绩:评语:日期:2020-11-1311/12二、实验容与步骤1. 准备相关图像文件。

2. 进行立方体各面图像与旋转速度的大体设计。

3.在Windows 7 操作系统上,打开Microsoft Visual Studio 2005,编写相关程序,完成程序主体框架结构。

4.编写六面体显示相关的程序代码。

5.编写六面体旋转相关的程序代码。

6.编写深度检测相关的程序代码。

7. 编写纹理载入功能的相关程序代码。

8. 编写纹理参数定义功能的相关程序代码。

9. 编写纹理映射功能的相关程序代码。

10.对程序进行相关调试,修改程序,去除其中的BUG 。

11. 观察纹理映射后的六面体的旋转显示,与预想的结果进行对比,修改相关程序参数。

12.截屏,保留实验结果,进行实验结果分析,并撰写实验报告。

2020-11-13 2/32020-11-13 11/12四、编译过程截图五、实验结果与分析(下面是一个例子,换上你自己的图)实验结果:实验分析程序通过glBindTexture(GL_TEXTURE_2D, lastTextureID);语句,完成了恢复之2020-11-13 2/32020-11-13 11/122020-11-13 2/32020-11-13 11/122020-11-13 2/3。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机图形学课程设计报告一、实验题目三维真实感图形设计与绘制(1)题目容说明:本题目要求应用OpenGL的光照技术和纹理技术实现一个简单的三维真实感图形的程序设计。

具体要现功能:1)通过对话方式实现交互式设计光照模型功能。

2)实现三维模型纹理映射功能3)用鼠标跟踪球方法实现三维模型的空间旋转2)实现鼠标跟踪球方法程序二、需求分析真实感图形的设计与绘制,是计算机图形学中的一个重要研究领域,也是三维实体造型系统和特征造型系统的重要组成部分。

一般地,三维实体在计算机显示屏上有三种表现形式:简单线框图、线框消隐图和真实感图形。

其中,简单线框图能够粗略表达实体的形状,但由于简单线框图的二义性,从而导致表达其的实体形状具有不确定性。

而线框消隐图虽然能反映实体各表面间的相互遮挡关系,从而达到消除简单线框图产生的二义性的目的,但是这两者一样地只能反映实体的几何形状和实体间的相互关系,而不能反映实体表面的特征,如表面的颜色、材质、纹理等。

所以,只有真实感图形才能表现实体的这些特征,因此,在三维实体造型中,生成三维实体的光照模型,进行实体的真实感绘制与显示占有重要的地位,是很有必要的,也是我做此设计的初衷。

在设计中,我主要使用Opengl绘制真实感图形,它作为一种强大的三维图形开发工具,通过便捷的编程接口提供了处理光照和物体材质、颜色属性等通用功能。

真实感图形学是计算机图形的核心容之一,是最能直接反映图形学魅力的分支。

寻求能准确地描述客观世界中各种现象与景观的数学模型,并逼真地再现这些现象与景观,是图形学的一个重要研究课题。

很多自然景物难以用几何模型描述,如烟雾、植物、水波、火焰等。

本文所讨论的几种建模及绘制技术都超越了几何模型的限制,能够用简单的模型描述复杂的自然景物。

在计算机的图形设备上实现真实感图形必须完成的四个基本任务。

1. 三维场景的描述。

三维造型。

2. 将三维几何描述转换成为二维透视图。

透视变换。

3. 确定场景中的所有可见面。

消隐算法,可见面探测算法。

4. 计算场景中可见面的颜色。

根据基于光学物理的光照模型计算可见面投射到观察者眼中的光亮度大小和色彩组成。

三、设计简介及设计方案论述3.1设计简介为了实现本程序的两大功能,计划采用OPENGL图形库并调用一系列WINDOWS API采用C/C++语言编写。

首先,应熟悉OPENGL在WIN32平台下的相关API,以及其余WINDOWS窗口交互的相关接口方法,来构建窗口的容。

其次,熟悉了解OPENGL库函数在窗体中实现绘图,实现图形的旋转、光照、纹理等功能的相关函数。

最后,实现OPENGL与WINDOWS的交互的过程,完成程序及注释。

3.2 OPENGL图形库简介3.2.1 OPENGL特点从程序开发人员的角度来看,OpenGL 是一组绘图命令的API 集合。

利用这些API 能够方便地描述二维和三维几何物体,并控制这些物体按某种方式绘制到显示缓冲区中。

OpenGL 的API 集合提供了物体描述、平移、旋转、缩放、光照、纹理、材质、象素、位图、文字、交互以及提高显示性能等方面的功能,基本涵盖了开发二、三维图形程序所需的各个方面。

与一般的图形开发工具相比,OpenGL 具有以下几个突出特点:(1)应用广泛(2)跨平台性(3)高质量和高性能(4)出色的编程特性(5)网络透明性OpenGL 的工作顺序就是一个从定义几何要素到把象素段写入帧缓冲区的过程。

在屏幕上显示图象的主要步骤是以下3 步:1)构造几何要素(点、线、多边形、图像、位图),创建对象的数学描述。

在三维空间放置对象,选择有利的观察点。

2)计算对象的颜色,这些颜色可能直接定义,或由光照条件及纹理间接给出。

3)光栅化,把对象的数学描述和颜色信息转换到屏幕的象素。

3.3 OPENGL简单编程方法3.3.1 OPENGL基本语法OpenGL 基本函数均使用gl 作为函数名的前缀,如glClearColor();实用函数则使用glu 作为函数名的前缀,如gluSphere()。

OpenGL 基本常量的名字以GL_开头,如GL_LINE_LOOP;实用常量的名字以GLU_开头,如GLU_FILL。

一些函数如glColor*()(定义颜色值),函数名后可以接不同的后缀以支持不同的数据类型和格式。

如glColor3b(…)、glColor3d(…)、glColor3f(…)和glColor3bv(…)等,这几个函数在功能上是相似的,只是适用于不同的数据类型和格式,其中3 表示该函数带有三个参数,b、d、f 分别表示参数的类型是字节型、双精度浮点型和单精度浮点型,v 则表示这些参数是以向量(数组)形式出现的。

OpenGL 还定义了一些特殊的类型名,如GLfloat,GLvoid。

它们其实就是C 中的float 和void。

在gl.h 文件中可以看到以下定义:typedef float GLfloat;typedef void GLvoid;……一些基本的数据类型都有类似的定义。

OpenGL 的工作方式是一种状态机制,它可以进行各种状态或模式设置,这些状态或模式在重新改变它们之前一直有效。

例如,当前颜色就是一个状态变量,在这个状态改变之前,绘制的每个象素都将使用该颜色,直到当前颜色被设置为其它颜色为止。

OpenGL 量地使用了这种状态机制,如颜色模式、投影模式、单双显示缓存区的设置、背景色的设置、光源的位置和特性等等。

3.3.3 OPENGL基本结构OpenGL 程序的基本结构可分为三个部分:第一部分是初始化部分,主要是设置一些OpenGL 的状态开关,如颜色模式(RGBA 或ALPHA 等)的选择,是否作光照处理(若有的话,还需设置光源的特性),深度检验,裁剪等等。

这些状态一般都用函数glEnable(),glDisable()来设置,()中为相应的状态。

第二部分设置观察坐标系下的取景模式和取景框位置及大小。

主要利用了三个函数:1.函数void glViewport(left, top, right, bottom):设置在屏幕上的窗口大小,四个参数描述屏幕窗口四个边界坐标(以象素表示);2.函数void glOrtho(left, right, bottom, top, near, far):设置投影方式为正交投影(平行投影),其取景体积(观察体)是一个各面均为矩形的六面体;3.函数void gluPerspective(fovy, aspect, zNear, zFar):设置投影方式为透视投影,其取景体积(观察体)是一个截头锥体(棱台),在这个体积的物体投影到锥体的顶点。

第三部分是OpenGL 的主要部分,使用OpenGL 的库函数构造几何物体对象的数学描述,包括点线面的位置和拓扑关系,几何变换,光照处理等。

3.4 OPENGL 及WINDOWS 坐标系OPENGL 的三维坐标系如图3-1所示:XOY 平面为屏幕所在图3-1 OPENGL 三维坐标系WINDOWS 的窗体坐标如图3-2所示:图3-2WINDOWS窗体二维坐标系3.5、WINDOWS 消息机制消息机制是Windows 应用程序的核心,在Windows 中发生的一切都可以用消息来表示,消息用于告诉操作系统发生了什么,所有的Windows应用程序都是消息驱动的,除了WM_COMMAND消息,所有以WM_为前缀的消息都是标准的Windows消息,如窗口、鼠标移动、窗口大小改变等,程序启动或退出甚至每一段固定的时间都会产生标准Windows消息。

Windows消息控制中心一般是三层结构,其顶端就是Windows核。

Windows核维护着一个消息队列,第二级控制中心从这个消息队列中获取属于自己管辖的消息,后做出处理,有些消息直接处理掉,有些还要发送给下一级窗体(Window)或控件(Control)。

第二级控制中心一般是各Windows应用程序的Application对象。

第三级控制中心就是Windows 窗体对象,每一个窗体都有一个默认的窗体过程,这个过程负责处理各种接收到的消息。

1、消息的组成:一个消息由一个消息名称(UINT),和两个参数(WPARAM,LPARAM)。

当用户进行了输入或是窗口的状态发生改变时系统都会发送消息到某一个窗口。

例如当菜单转中之后会有WM_COMMAND消息发送,WPARAM的高字中(HIWORD(wParam))是命令的ID号,对菜单来讲就是菜单ID。

当然用户也可以定义自己的消息名称,也可以利用自定义消息来发送通知和传送数据。

2、谁将收到消息:一个消息必须由一个窗口接收。

在窗口的过程(WNDPROC)中可以对消息进行分析,对自己感兴趣的消息进行处理。

例如你希望对菜单选择进行处理那么你可以定义对WM_COMMAND进行处理的代码,如果希望在窗口中进行图形输出就必须对WM_PAINT 进行处理。

3、未处理的消息到那里去了:M$为窗口编写了默认的窗口过程,这个窗口过程将负责处理那些你不处理消息。

正因为有了这个默认窗口过程我们才可以利用Windows的窗口进行开发而不必过多关注窗口各种消息的处理。

例如窗口在被拖动时会有很多消息发送,而我们都可以不予理睬让系统自己去处理。

4、窗口句柄:说到消息就不能不说窗口句柄,系统通过窗口句柄来在整个系统中唯一标识一个窗口,发送一个消息时必须指定一个窗口句柄表明该消息由那个窗口接收。

而每个窗口都会有自己的窗口过程,所以用户的输入就会被正确的处理。

例如有两个窗口共用一个窗口过程代码,你在窗口一上按下鼠标时消息就会通过窗口一的句柄被发送到窗口一而不是窗口二。

一个消息从产生到被一个窗口响应,其中有5个步骤:1) 系统中发生了某个事件。

2) Windows把这个事件翻译为消息,然后把它放到消息队列中。

3) 应用程序从消息队列中接收到这个消息,把它存放在TMsg记录中。

4) 应用程序把消息传递给一个适当的窗口的窗口过程。

5) 窗口过程响应这个消息并进行处理。

步骤3和4构成了应用程序的消息循环。

消息循环往往是Windows应用程序的核心,因为消息循环使一个应用程序能够响应外部的事件。

消息循环的任务就是从消息队列中检索消息,然后把消息传递给适当的窗口。

如果消息队列中没有消息,Windows就允许其他应用程序处理它们的消息。

Windows操作系统最大的特点就是其图形化的操作界面,其图形化界面是建立在其消息处理机制这个基础之上的3.6 大体设计方案综上所述,在本程序中。

首先使用相关的WINDOWS API创建窗口,其次实现程序的相应功能:1.使用OPENGL相应库函数画出三维图形。

2.使之旋转起来。

3.在窗体中响应鼠标事件,控制体的旋转。

程序流程图如图3-3所示:图3-3 程序流程图程序的大体容以及机构已经构造成型,功能部分还需要进一步的细化。

相关文档
最新文档