OpenGL项目:绘制简单场景

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机图形学报告

(项目一)

专业:计算机科学与技术

姓名:

学号:

班级:

目录

1.引言 (3)

1.1编写目的 (3)

1.2项目背景 (3)

2.开发结果 (3)

2.1开发环境 (3)

2.2主要功能及性能 (3)

2.3场景介绍 (3)

2.4操作介绍 (4)

2.5灯光介绍 (6)

3.总结 ............................................................................................................. 错误!未定义书签。4.参考文献 ..................................................................................................... 错误!未定义书签。5.代码 ............................................................................................................. 错误!未定义书签。

1.引言

1.1编写目的

利用OpenGL绘制一个简单的场景

–包含球、正方形、网格数据

–交互操作:平移、缩放、旋转

–可以使用不同的灯光

1.2项目背景

openGL编程在计算机图形学中具有非常重要的作用,是实现计算机图形的一个重要工具,通过openGL编程,我们能更好的学习计算机图形学,同时也能提高我们自己的实际动手能力。

2.开发结果

2.1开发环境

Windows7旗舰版

Vs2012

2.2主要功能及性能

利用OpenGL绘制一个简单的场景

–包含球、正方形、网格数据

–交互操作:平移、缩放、旋转

–可以使用不同的灯光

2.3场景介绍

绘制一个简单的场景,包含球、正方形、网格数据。如图:

2.4操作介绍

利用上下左右方向键进行上下左右移动,如图:

利用home,end,pgup,insertj进行上下左右的旋转,如图:

2.5灯光介绍

包括三中灯光:环境光,漫射光,平面光

利用鼠标右键进行灯光选择:漫射光如图:

3.总结

4.参考文献

1、OpenGL超级宝典

2、博客:vs2012中OpenGL配置

3、计算机图像学基础5.代码

// DiffuseLight.cpp

// OpenGL SuperBible

// Demonstrates simple diffuse lighting // Program by Richard S. Wright Jr.

#include// OpenGL toolkit #include

#include

#include

#include

#include

#include

#ifdef __APPLE__

#include

#else

#define FREEGLUT_STATIC

#include

#endif

GLFrame viewFrame; GLFrustum viewFrustum; GLTriangleBatch sphereBatch;

//GLBatch sphereBatch; GLMatrixStack modelViewMatrix; GLMatrixStack projectionMatrix; GLGeometryTransform transformPipeline; GLShaderManager shaderManager;

GLuint ADSLightShader;

GLint locAmbient;

GLint locDiffuse;

GLint locSpecular;

GLint locLight;

GLint locMVP;

GLint locMV;

GLint locNM;

GLint lightOnOff = 0;

//points

static const float vertex_list[][3] = {

-0.5f, -1.5f, -0.5f,

0.5f, -1.5f, -0.5f,

0.5f, -0.5f, -0.5f,

-0.5f, -0.5f, -0.5f,

-0.5f, -1.5f, 0.5f,

0.5f, -1.5f, 0.5f,

0.5f, -0.5f, 0.5f,

-0.5f, -0.5f, 0.5f,

};

//points connect

static const GLint index_list[][4] = {

{0, 1, 2, 3},

{3, 2, 6, 7},

{4, 5, 6, 7},

{0, 1, 5, 4},

{1, 5, 6, 2},

{0, 4, 7, 3}

};

// draw cube

void DrawCube(void)

{

int i,j;

glColor3f(1.0, 0.0, 0.0);

glBegin(GL_QUADS);

for(i=0; i<6; ++i)

相关文档
最新文档