1、 计计 算算 机机 图图 形形 学学 课程设计报告课程设计报告 一、实验题目一、实验题目 三维真实感图形设计与绘制三维真实感图形设计与绘制 (1)题目内容说明:)题目内容说明: 本题目要求应用本题目要求应用 OpenGLOpenGL 的光照技术和纹理技术实现一个简单的三维的光照技术和纹理技术实现一个简单的三维 真实感图形的程序设计。具体要求实现功能:真实感图形的程序设计。具体要求实现功能: 1 1)通过对话方式实现交互式设计光照模型功能。)通过对话方式实现交互式设计光照模型功能。 2 2)实现三维模型纹理映射功能)实现三维模型纹理映射功能 3 3)用鼠标跟踪球方法实现三维模型的空间旋转)用鼠标
2、跟踪球方法实现三维模型的空间旋转 2 2)实现鼠标跟踪球方法程序)实现鼠标跟踪球方法程序 二、需求分析二、需求分析 真实感图形的设计与绘制, 是计算机图形学中的一个重要研究领域, 也是三维实体造型 系统和特征造型系统的重要组成部分。 一般地, 三维实体在计算机显示屏上有三种表现形式: 简单线框图、线框消隐图和真实感图形。其中,简单线框图能够粗略表达实体的形状,但由 于简单线框图的二义性, 从而导致表达其的实体形状具有不确定性。 而线框消隐图虽然能反 映实体各表面间的相互遮挡关系, 从而达到消除简单线框图产生的二义性的目的, 但是这两 者一样地只能反映实体的几何形状和实体间的相互关系, 而不能反
3、映实体表面的特征, 如表 面的颜色、材质、纹理等。所以,只有真实感图形才能表现实体的这些特征,因此,在三维 实体造型中,生成三维实体的光照模型,进行实体的真实感绘制与显示占有重要的地位,是 很有必要的,也是我做此设计的初衷。 在设计中, 我主要使用 Opengl 绘制真实感图形, 它作为一种强大的三维图形开发工具, 通过便捷的编程接口提供了处理光照和物体材质、 颜色属性等通用功能。 真实感图形学是计 算机图形的核心内容之一,是最能直接反映图形学魅力的分支。 寻求能准确地描述客观世界中各种现象与景观的数学模型, 并逼真地再现这些现象与景 观,是图形学的一个重要研究课题。很多自然景物难以用几何模型
4、描述,如烟雾、植物、水 波、火焰等。本文所讨论的几种建模及绘制技术都超越了几何模型的限制,能够用简单的模 型描述复杂的自然景物。 在计算机的图形设备上实现真实感图形必须完成的四个基本任务。 1. 三维场景的描述。三维造型。 2. 将三维几何描述转换成为二维透视图。透视变换。 3. 确定场景中的所有可见面。消隐算法,可见面探测算法。 4. 计算场景中可见面的颜色。根据基于光学物理的光照模型计算可见面投射到观察者 眼中的光亮度大小和色彩组成。 三、设计简介及设计方案论述三、设计简介及设计方案论述 3.1 设计简介设计简介 为了实现本程序的两大功能,计划采用 OPENGL 图形库并调用一系列 WIN
5、DOWS API 采用 C/C+语言编写。 首先,应熟悉 OPENGL 在 WIN32 平台下的相关 API,以及其余 WINDOWS 窗口交互的相关接 口方法,来构建窗口的内容。 其次,熟悉了解 OPENGL 库函数在窗体中实现绘图,实现图形的旋转、光照、纹理等功能的 相关函数。 最后,实现 OPENGL 与 WINDOWS 的交互的过程,完成程序及注释。 3.2 OPENGL 图形库简介图形库简介 3.2.1 OPENGL 特点特点 从程序开发人员的角度来看, OpenGL 是一组绘图命令的 API 集合。 利用这些 API 能够方便 地描述二维和三维几何物体,并控制这些物体按某种方式绘制
6、到显示缓冲区中。OpenGL 的 API 集合提供了物体描述、平移、旋转、缩放、光照、纹理、材质、象素、位图、文字、交 互以及提高显示性能等方面的功能,基本涵盖了开发二、三维图形程序所需的各个方面。与 一般的图形开发工具相比,OpenGL 具有以下几个突出特点: (1)应用广泛 (2)跨平台性 (3)高质量和高性能 (4)出色的编程特性 (5)网络透明性 3.2.2 OPENGL 工作顺序工作顺序 OpenGL 的工作顺序就是一个从定义几何要素到把象素段写入帧缓冲区的过程。 在屏幕上显 示图象的主要步骤是以下 3 步: 1)构造几何要素(点、线、多边形、图像、位图),创建对象的数学描述。在三维空间放置 对象,选择有利的观察点。 2)计算对象的颜色,这些颜色可能直接定义,或由光照条件及纹理间接给出。 3)光栅化,把对象的数学描述和颜色信息转换到屏幕的象素。 3.3 OPENGL 简单编程方法简单编程方法 3.3.1 OPENGL 基本语法基本语法 OpenGL 基本函数均使用 gl 作为函数名的前缀, 如 glClearColor(); 实用函数则使用 glu 作