计算机图形学实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 3D模型的加载、渲染与三维操作
学院:
专业班级:
指导老师:
学号:
姓名:
完成日期:
目录
一、实验目的 (3)
二、使用的工具软件及环境 (3)
三、实验内容 (3)
四、实验步骤 (3)
五、思考 (12)
一、实验目的
1、掌握在Microsoft Visual Studio环境中使用OpenGL、GLUT和GLUI;
2、了解计算机图形学固定流水线;
3、了解OpenGL编程基础;
4、掌握三维观察的数学表达和程序实现;
5、掌握多边形网格的绘制;
二、使用的工具软件及环境
Microsoft Visual Studio 2010、OpenGL、Glut、Glui
三、实验内容
1、在VS 2010中配置OpenGL环境;
2、编译简单的GLUT程序;
3、编译GLUI源代码,并在调试模式下执行6个示例程序;
4、在给定的工程中添加绘制简单几何体的代码;
5、在给定的工程中添加读取、绘制三维模型的代码;
6、在给定的工程中添加旋转、平移和缩放的控制代码;
四、实验步骤
1、安装Microsoft Visual Studio软件
版本选择:Microsoft Visual Studio 2010以上版本
2、VS2010中配置GLUT
1)下载GLUT。Windows环境下的GLUT下载地址:
/resources/libraries/glut/glutdlls37beta.zip
2)将下载的压缩包解开,将得到5个文件:glut.h、glut.lib、glut32.lib、
glut.dll、glut32.dll。3)将glut.h放到"%WinDir%\Program
Files(x86)\Microsoft SDKs\Windows\v7.0A\Include\gl\"文件夹中。
4)将glut.lib和glut32.lib放到"%WinDir%\Program
Files(x86)\Microsoft Visual Studio 10.0\VC\lib\"文件夹中。
5)将glut.dll和glut32.dll放到"%WinDir%\system32"文件夹(32位操作
系统)或者"%WinDir%\SysWOW64"文件夹(64位操作系统)。
3、测试GLUT配置环境
1) 打开VS2010,选择文件->新建->项目,选择Win32控制台应用程序,填入合适的名字如OpenGLTest,然后选择确定。
2) 在弹出的对话框中点击下一步,然后在附加选项中选择空项目,点击完成。
3) 然后向该工程添加一个源代码文件,取名为OpenGLTest.cpp。
4) 向OpenGLTest.c中添加代码(可在公共邮箱下载)
#include
#include
#include
void myDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.5f,-0.5f,0.5f,0.5f);
glFlush();
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);
glutCreateWindow("第一个OpenGL程序");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
5) 设置必要的静态链接库列表
选择“项目->属性->链接器->输入->附加包含目录”,填写必要的静态链接库列表,如“opengl32.lib; glu32.lib; glut32.lib”
6) 编译、链接、执行该程序,生成一个黑色的窗口,中央显示一个白色的矩形,表明配置环境正确。
4、编译GLUI库文件和示例程序
在公共邮箱中下载GLUI源代码并解压到合适的目录
用VS2010打开"glui-2.36\src\msvc"目录下的glui.sln解决方案文件。
在“解决方案资源管理器”中右键点击“解决方案"glui"”项,点击批生成,勾选前四项,点击生成。
在“解决方案资源管理器”中右键点击“解决方案"glui"”项,点击批生成,取消选择前四项,勾选其余项,点击生成。
在"glui-2.36\src\msvc\bin"目录下可见到生成的动态链接库文件以及可执行文件。
在"glui-2.36\src\msvc\lib"目录下可见到生成的静态链接库文件。
将glui相关的头文件、静态链接库文件、动态链接库文件依次放入4.2节中所述目录下。
5、编译MeshViewer示例程序
从公共邮箱中下载MeshViewer示例程序,试编译运行。
6、在示例程序中添加代码实现下述功能
1)在MeshViewer.cpp文件myGlutDisplay函数的相应位置,添加绘制圆柱的代码
void DrawCylinder()
{//绘制圆柱体
float h = 1.0f;
//绘制上面的圆
glBegin(GL_TRIANGLES);
glNormal3f(0.0f, 0.0f, 1.0f); //确定法向
for (int i = 0; i <= n; i++)
{
//点的顺序(n,h),(0,h),(n+1,h)
glVertex3f(R*cos((2 * Pi)*i / n), R*sin((2 * Pi)*i / n), h);
glVertex3f(0, 0, h);
glVertex3f(R*cos((2 * Pi)*(i + 1) / n), R*sin((2 * Pi)*(i + 1) / n), h);
}
glEnd();
//绘制下面的圆
glBegin(GL_TRIANGLES);
glNormal3f(0.0f, 0.0f, -1.0f); //确定法向
for (int i = 0; i <= n; i++)
{
//点的顺序(n,0),(n+1,0),(0,0)