实验3 基于opengl的真实感图形渲染

实验3 基于opengl的真实感图形渲染

ID:13526005

大小:564.00 KB

页数:12页

时间:2018-07-23

实验3 基于opengl的真实感图形渲染_第1页
实验3 基于opengl的真实感图形渲染_第2页
实验3 基于opengl的真实感图形渲染_第3页
实验3 基于opengl的真实感图形渲染_第4页
实验3 基于opengl的真实感图形渲染_第5页
资源描述:

《实验3 基于opengl的真实感图形渲染》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于OpenGL的真实感图形渲染OpenGL是一个跨平台的图形库,可在Windows、Unix、Mac等平台上运行。本书主要介绍怎样在Windows平台上建立OpenGL程序,并以VisualC++6.0编程环境为例来说明整个编程环境的建立和设置。2.5.1 VC环境下OpenGL编程本节在VC6.0环境下介绍两种OpenGL应用程序结构:Win32ConsoleApplication和WindowsMFC。1.Win32ConsoleApplication在该OpenGL应用程序结构中,我们使用GLUT来响应、处理用户的交互操作;尽管GLUT可能无法满足编写功能完整的OpenGL应

2、用程序的要求,但作为学习OpenGL却是一个非常好的起点。首先运行VisualC++6.0从“File”菜单中选择“New”菜单项,在弹出的对话框中选择”Projects”标签,如图2-28所示。然后单击“Win32ConsoleApplication”选项,再给应用程序指定目录和名字,如工程名为“ConsoleExpl”。单击“OK”按钮,确认由VisualC++6.0创建一个新工程。接着,显示如图图2-29所示的对话框,用以选择应用程序的类型。选择产生一个空的应用程序,单击“Finish”按钮,这样一个新的工程框架建立完成。随后,从“File”菜单中选择“New”菜单项,在弹出的

3、对话框中选择“New”标签,创建一个“C++SourceFile”如名字为“main”,并添加到该工程中,如图2-30所示。图2-28选择新工程类型图2-29选择应用程序类型通过如下的方法加入OpenGL的库文件:从“Project”菜单中选择“Settings”菜单项,在弹出的对话框中单击“Link”标签,在“Object/librarymodules”文本框中加入“opengl32.libglu32.libglut32.libglew32.lib”即可,如图2-31所示。图2-30创建源文件加入工程图2-31OpenGL库文件加入当前工程完成上述步骤后,一个Windows平台下进

4、行OpenGL应用程序开发的环境已形成,便可进入具体的编程阶段。这里,给出一个简单的的OpenGL示例程序(ConsoleExpl),代码如下,运行结果如图2-32所示。//main.cpp#include#includestaticGLfloatspin=0.0;voiddisplay(void){glClear(GL_COLOR_BUFFER_BIT);glPushMatrix();//保存模型视图矩阵glRotatef(spin,0.0,0.0,1.0);//模型旋转变换glBegin(GL_POLYGON);glColor3f(1.0

5、,0.0,0.0);//设置当前颜色为红色glVertex2f(0.0,-25.0);glColor3f(0.0,1.0,0.0);//设置当前颜色为绿色glVertex2f(25.0,-12.5);glColor3f(0.0,0.0,1.0);glVertex2f(25.0,12.5);glColor3f(1.0,1.0,0.0);glVertex2f(0,25.0);glColor3f(1.0,0.0,1.0);glVertex2f(-25.0,12.5);glColor3f(0.0,1.0,1.0);glVertex2f(-25.0,-12.5);glEnd();glPopMa

6、trix();//恢复模型视图矩阵glutSwapBuffers();//交换缓冲区}voidspinDisplay(void){spin=spin+2.0;if(spin>360.0)spin=spin-360.0;glutPostRedisplay();}voidinit(void)//初始化绘制环境{glClearColor(0.0,0.0,0.0,0.0);glShadeModel(GL_SMOOTH);}voidreshape(intw,inth){glViewport(0,0,(GLsizei)w,(GLsizei)h);//设置视口glMatrixMode(GL_PRO

7、JECTION);glLoadIdentity();glOrtho(-50.0,50.0,-50.0,50.0,-1.0,1.0);//设置正投影glMatrixMode(GL_MODELVIEW);glLoadIdentity();}voidmouse(intbutton,intstate,intx,inty){switch(button){caseGLUT_LEFT_BUTTON:if(state==GLUT_DOWN)glutIdleFunc(spi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。