计算机图形学基础
图形系统分类:
1、用于图形工作站的图形系统:
工作站指具有完整人机交互界面,集高性能的计算和图形于一身,可配置大容量的内存和硬盘,I/O功能完善,使用多任务、多用户操作系统的小型通用个人化的计算机系统。
2、用于PC机的图形系统:
用PC机图形系统体积小,价格低廉,且用户界面“友好”,应用广泛。
3、嵌入式图形系统
图形系统体系结构
1、图形系统体系结构:
图形系统中,有一个特别的软硬件子系统,能高效绘出透视图中的三维图元,这就是图形系统的核心结构——图形系统体系结构,也称为图形流水线。
2、应用程序阶段:
把数据以图元的形式提供给图形硬件,例如用来描述三维几何模型的点、线或多边形,同时也提供用于表面纹理映射的图像或者位图。
由于应用程序阶段是通过软件方式实现的,因此开发者能够对该阶段发生的情况进行完全控制,可以通过改变实现方法来改变实际性能。
3、几何处理阶段:
以每个顶点为基础对几何图元进行处理,并从三维坐标变换为二维屏幕坐标的过程。
该阶段又可以划分为下面几个功能阶段
4、像素处理阶段
屏幕对象先是被传送到像素处理器进行光栅化,再对每个像素进行着色,然后再输出到帧缓冲器中,最后输出到显示器。
当图元发送并通过光栅阶段之后,从相机视点处看到的东西就可以在屏幕上显示出来,这些图元可以用合适的着色模型进行绘制,如果运用纹理技术,就会显示出纹理效果。
OpenGL:由若干个函数库组成,提供了数百条图形命令,包括基本图形元素的生成,封闭边界内的填色、纹理、反走样等;基本图形元素的几何变换、投影变换、窗口裁剪等;自由曲线曲面处理、隐藏线、隐藏面消除以及具有光照颜色效果的真实图形显示;自然界效果(如云彩、薄雾、烟霭)的景象生成等。
OpenGL与DirectX比较:
OpenGL是跨平台标准,且有各个平台实现;DirectX仅应用于Windows,由Microsoft独立开发。
OpenGL仅提供图形绘制功能,甚至没有交互功能;DirectX则提供了多媒体程序开发所需的全部API。
OpenGL是函数库;DirectX则是组件库。教学、科研方面OpenGL是主流,游戏开发、商业应用则基本采用DirectX。
Java3D:
Java3D API是Sun定义的用于实现3D显示接口。
3D技术是底层的显示技术,Java3D提供了基于Java的上层接口。
Java3D把OpenGL和DirectX这些底层技术包装在Java接口中。
这种全新的设计使3D技术变得不再繁琐并且可以加入到J2SE、J2EE的整套架构,这些特性保证了Java3D技术强大的扩展性。
图形API对比:
图元:
在光栅扫描显示器等设备上,所有图形的显示都归结为按照图形的描述将显示设备上的光栅像素点亮。
为了输出一个像素,就需要将该像素的坐标和颜色信息转换成输出设备的相应指令,根据指令在指定的屏幕位置上开启(接通)电路(或电子束),将该位置上的显示单元器件发出光亮。
基本图元显示问题就是根据基本图元的描述信息来生成像素组合。
直线生成算法
逐点比较法
Bresenham画线法
中点画线法
图形几何变换:
数学基础:矢量、 矩阵及运算。
图形二维变换。
图形三维变换。
图形几何变换的模式。
二维观察:
====================================================================================
结束。