• 大小: 11.34MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-15
  • 语言: 其他
  • 标签: opengl  

资源简介

opengl绘制简单场景,实现平移旋转缩放和灯光

资源截图

代码片段和文件信息

/*
 * 这些代码是由Jeff Molofee 与2000年写的,再次我必须感谢Fredric Echols,因为他使这些代码看起来更简洁和高效,并使他易于使用。
 * 如果你发现这些代码对你有所帮助,请访问我的站点 http://nehe.gamedev.net/default.asp ,并让我知道。
 *********************************************************************************************************************************
 * 这份文档是由DancingWind翻译的,如果有什么错误请e-mail:zhouwei02@mails.tsinghua.edu.cn
 */

/*********************包含链接的库文件*******************************************************************************************/
#pragma comment( lib “opengl32.lib“ )
#pragma comment( lib “glu32.lib“ )
#pragma comment( lib “glut32.lib“)
#pragma comment( lib “glew32.lib“)
#pragma comment( lib “glaux.lib“)
#pragma comment( lib “vfw32.lib“ )
/********************************************************************************************************************************/

#include  // Windows的头文件
#include “glew.h“ // 包含最新的gl.hglu.h库
#include “glut.h“ // 包含OpenGL实用库
#include 
#define PI 3.1415926


HDC hDC=NULL; // 窗口着色描述表句柄
HGLRC hRC=NULL; // OpenGL渲染描述表句柄
HWND hWnd=NULL; // 保存我们的窗口句柄
HINSTANCE hInstance; // 保存程序的实例

bool keys[256]; // 保存键盘按键的数组
bool active=TRUE; // 窗口的活动标志,缺省为TRUE
bool fullscreen=TRUE; // 全屏标志缺省,缺省设定成全屏模式

GLfloat rquad; // 用于四边形的角度

LRESULT CALLBACK WndProc(HWND UINT WPARAM LPARAM); // WndProc的定义

GLvoid ReSizeGLScene(GLsizei width GLsizei height) // 重置OpenGL窗口大小
{
if (height==0) // 防止被零除
{
height=1; // 将Height设为1
}

glViewport(00widthheight); // 重置当前的视口

glMatrixMode(GL_PROJECTION); // 选择投影矩阵
glLoadIdentity(); // 重置投影矩阵

// 设置视口的大小
gluPerspective(45.0f(GLfloat)width/(GLfloat)height0.1f100.0f);

glMatrixMode(GL_MODELVIEW); // 选择模型观察矩阵
glLoadIdentity(); // 重置模型观察矩阵
}

int InitGL(GLvoid) // 此处开始对OpenGL进行所有设置
{
glShadeModel(GL_SMOOTH); // 启用阴影平滑
glClearColor(0.0f 0.0f 0.0f 0.5f); // 黑色背景
glClearDepth(1.0f); // 设置深度缓存
glEnable(GL_DEPTH_TEST); // 启用深度测试
glDepthFunc(GL_LEQUAL); // 所作深度测试的类型
glHint(GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST); // 告诉系统对透视进行修正

//光源设置
GLfloat mat_specular[] = { 1.0 1.0 1.0 1.0 };
GLfloat mat_shininess[] = { 50.0 };
GLfloat light_position[] = { 1.0 1.0 1.0 0.0 }; //最后一个参数为0表示该光源是directional的
 //  GLfloat light_position[] = { 1.0 1.0 1.0 1.0 }; //最后一个参数非0表示该光源是positional的

GLfloat light_ambient[] = { 0.5 0.5 0.5 1.0 };//环境光参数
GLfloat light_diffuse[] = { 1.0 1.0 1.0 1.0 };//漫射光
GLfloat light_specular[] = { 0.0 1.0 0.0 1.0 };//镜面光

//GLfloat Light_Model_Ambient[] = { 0.0  0.0  0.0  1.0 }; //全局环境光设为黑色
   GLfloat Light_Model_Ambient[] = { 0.2  0.2  0.2  1.0 }; //默认的全局环境光
   glLightModelfv( GL_LIGHT_MODEL_AMBIENT  Light_Model_Ambient ); //设置全局环境光的方法

   glClearColor (0.0 0.0 0.0 0.0);
   glShadeModel (GL_SMOOTH);

   glMaterialfv(GL_FRONT GL_SPECULAR mat_specular);
   glMater

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-10-14 22:14  01_baseframe\
     文件    30801920  2014-10-14 22:14  01_baseframe\01_baseframe.sdf
     文件         885  2014-10-11 20:51  01_baseframe\01_baseframe.sln
     文件        8704  2006-08-21 05:58  01_baseframe\01_baseframe.suo
     文件       23552  2014-10-14 22:14  01_baseframe\01_baseframe.v11.suo
     文件        3393  2006-08-03 02:59  01_baseframe\01_baseframe.vcproj
     文件        4599  2014-10-14 18:56  01_baseframe\01_baseframe.vcxproj
     文件         920  2014-10-11 20:51  01_baseframe\01_baseframe.vcxproj.filters
     目录           0  2014-10-11 20:50  01_baseframe\Backup\
     文件         913  2006-08-21 05:57  01_baseframe\Backup\01_baseframe.sln
     文件        8704  2006-08-21 05:58  01_baseframe\Backup\01_baseframe.v11.suo
     文件       18239  2014-10-14 22:02  01_baseframe\base.cpp
     目录           0  2014-10-14 21:11  01_baseframe\Debug\
     文件      524800  2014-10-14 21:11  01_baseframe\Debug\01_baseframe.exe
     文件     1486104  2014-10-14 21:11  01_baseframe\Debug\01_baseframe.ilk
     文件          57  2014-10-14 21:11  01_baseframe\Debug\01_baseframe.lastbuildstate
     文件        1182  2014-10-14 21:11  01_baseframe\Debug\01_baseframe.log
     文件     2493440  2014-10-14 21:11  01_baseframe\Debug\01_baseframe.pdb
     文件       65227  2014-10-14 21:11  01_baseframe\Debug\base.obj
     文件         514  2014-10-14 21:11  01_baseframe\Debug\cl.command.1.tlog
     文件       16490  2014-10-14 21:11  01_baseframe\Debug\CL.read.1.tlog
     文件         234  2014-10-14 21:11  01_baseframe\Debug\CL.write.1.tlog
     文件      192512  2006-03-04 03:19  01_baseframe\Debug\glew32.dll
     文件      121856  2004-08-04 08:52  01_baseframe\Debug\glu32.dll
     文件      169984  1998-08-18 23:25  01_baseframe\Debug\glut32.dll
     文件           2  2014-10-14 21:11  01_baseframe\Debug\link-cvtres.read.1.tlog
     文件           2  2014-10-14 21:11  01_baseframe\Debug\link-cvtres.write.1.tlog
     文件           2  2014-10-14 21:11  01_baseframe\Debug\link-rc.read.1.tlog
     文件           2  2014-10-14 21:11  01_baseframe\Debug\link-rc.write.1.tlog
     文件           2  2014-10-14 21:11  01_baseframe\Debug\link.12496-cvtres.read.1.tlog
     文件           2  2014-10-14 21:11  01_baseframe\Debug\link.12496-cvtres.write.1.tlog
............此处省略69个文件信息

评论

共有 条评论