计算机图形学上机实验指导
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机图形学上机实验指导
指导教师:张加万老师
助教:张怡
2009-10-10
目录
1.计算机图形学实验(一) – OPENGL基础 ..................................... - 1 -
1.1综述 (1)
1.2在VC中新建项目 (1)
1.3一个O PEN GL的例子及说明 (1)
2.计算机图形学实验(二) – OPENGL变换 ..................................... - 5 -
2.1变换 (5)
3.计算机图形学实验(三) - 画线、画圆算法的实现....................... - 9 -
3.1MFC简介 (9)
3.2VC6的界面 (10)
3.3示例的说明 (11)
4.计算机图形学实验(四)- 高级OPENGL实验...................... - 14 -
4.1光照效果 (14)
4.2雾化处理 (16)
5.计算机图形学实验(五)- 高级OPENGL实验........................ - 20 -
5.1纹理映射 (20)
5.2反走样 (24)
6.计算机图形学实验(六) – OPENGL IN MS-WINDOWS .......... - 27 -
6.1 实验目标: (27)
6.2分形 (28)
1.计算机图形学实验(一) – OpenGL基础
1.1综述
这次试验的目的主要是使大家初步熟悉OpenGL这一图形系统的用法,编程平台是Visual C++,它对OpenGL提供了完备的支持。
OpenGL提供了一系列的辅助函数,用于简化Windows操作系统的窗口操作,使我们能把注意力集中到图形编程上,这次试验的程序就采用这些辅助函数。
本次实验不涉及面向对象编程,不涉及MFC。
1.2在VC中新建项目
1.2.1新建一个项目
选择菜单File中的New选项,弹出一个分页的对话框,选中页Projects中的Win32 Console Application项,然后填入你自己的Project name,如Test,回车即可。VC为你创建一个工作区(WorkSpace),你的项目Test就放在这个工作区里。
1.2.2为项目添加文件
为了使用OpenGL,我们需要在项目中加入三个相关的Lib文件:glu32.lib、glaux.lib、opengl32.lib,这三个文件位于c:\program files\microsoft visual
studio\vc98\lib目录中。
选中菜单Project->Add To Project->Files项(或用鼠标右键),把这三个文件加入项目,在FileView中会有显示。这三个文件请务必加入,否则编译时会出错。或者将这三个文件名添加到Project->Setting->Link->Object/library Modules 即可。
点击工具条中New Text File按钮,新建一个文本文件,存盘为Test.c作为你的源程序文件,再把它加入到项目中,然后就可以开始编程了。
1.3一个OpenGL的例子及说明
1.3.1源程序
请将下面的程序写入源文件Test.c,这个程序很简单,只是在屏幕上画两根线。
#include
#include
#include
#include
//初始化OpenGL场景
void myinit (void)
{
glClearColor (0.0, 0.0, 0.0, 0.0); //将背景置成黑色
glShadeModel (GL_FLAT); //设置明暗处理
}
//用户的绘图过程
void CALLBACK display(void)
{
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除缓存glBegin(GL_LINES); //开始画一根白线
glColor3f (1.0f, 1.0f, 1.0f); //设置颜色为白色
//设置第一根线的两个端点,请注意:OpenGL坐标系的原点是在屏幕左下角glVertex2f(10.0f, 50.0f);
glVertex2f(110.0f, 50.0f);
glColor3f (1.0f, 0.0f, 0.0f); //设置颜色为红色
//设置第二根线的两个端点
glVertex2f(110.0f, 50.0f);
glVertex2f(110.0f, 150.0f);
glEnd(); //画线结束
glFlush (); //绘图结束
}
//
//主过程:
// 初始化Windows的窗口界面
// 并初始化OpenGL场景,绘图
int main(int argc, char** argv)
{
auxInitDisplayMode (AUX_RGB); //初始化显示模式,采用RGB彩色系统。auxInitPosition (0, 0, 400, 150); //初始化窗口位置、大小
auxInitWindow ("Display Lists"); //初始化窗口,设置标题
myinit ();
auxMainLoop(display); //循环运行display过程,display由用户编写return(0);
}
1.3.2程序说明
每个函数的具体含义在程序注释中已作了叙述,不再多说。