资源简介
课堂作业,C++开发的OPENGL立方体,有光照,支持鼠标拖拽和键盘按键响应,希望对大家有帮助
代码片段和文件信息
#include
#include
#include
#include
#include
#include
HWND hWnd;
HDC hDC;
HGLRC hRC=NULL; //定义渲染环境
HINSTANCE hInstance; //得到程序的例子
RECT rect;
int sw = 640;
int sh = 480;
bool fullscreen = 1;
GLfloat aspect;
GLfloat xrot; // X轴旋转
GLfloat yrot; // Y轴旋转
GLfloat xspeed; // X轴旋转速度
GLfloat yspeed; // Y轴旋转速度
GLfloat z=-5.0f; // 移入屏幕的深度
int LastXPosLastYPos;
bool IsLBDown;
bool light; //光源-开/关
bool lp; //L键是否按下?
GLfloat LightAmbient[]= { 0.5f 0.5f 0.5f 1.0f }; //环境光的值
GLfloat LightDiffuse[]= { 1.0f 1.0f 1.0f 1.0f }; //散射光的值
GLfloat LightPosition[]= { 0.0f 0.0f 2.0f 1.0f }; //光照位置
GLuint texture[6]; //纹理的存储空间
#pragma comment( lib “opengl32.lib“ ) // 链接时使用OpenGL32.lib
#pragma comment( lib “glu32.lib“ ) // 链接时使用GLu32.lib
#pragma comment( lib “glaux.lib“ ) // 链接时使用GLaux.lib
AUX_RGBImageRec *TextureImage[6]; //为纹理创建存储空间
//memset(TextureImage0sizeof(void *)*1); //将指针设为NULL
AUX_RGBImageRec *LoadBMP(char *Filename) // 读取位图图象
{
FILE *File=NULL; // 文件句柄
if (!Filename) // 确定文件名已给出
{
return NULL; // 如果文件名未给出则返回NULL
}
File=fopen(Filename“r“); // 检测文件是否存在
if (File) // 文件是否存在?
{
fclose(File); // 关闭文件
return auxDIBImageLoad(Filename); // 读取位图并返回一个指针
}
return NULL; //如果调用文件失败则返回NULL
}
int LoadGLTextures(int ichar *FileName) //调用Bitmap并转换成纹理
{
int Status=FALSE; //状态确定
//读取位图,检查错误。如果位图不存在则退出
if (TextureImage[i]=LoadBMP(FileName))
{
Status=TRUE; //将Status设为TRUE
glGenTextures(1 &texture[i]); //创建一个纹理
//创建经过MipMapped的纹理
glBindTexture(GL_TEXTURE_2D texture[i]);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_LINEAR); //线形过滤
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_LINEAR_MIPMAP_NEAREST); //MipMapped过滤
gluBuild2DMipmaps(GL_TEXTURE_2D 3 TextureImage[i]->sizeX TextureImage[i]->sizeY GL_RGB GL_UNSIGNED_BYTE TextureImage[i]->data);
}
if (TextureImage[i]) //纹理是否存在
{
if (TextureImage[i]->data) //纹理图象是否存在
{
free(TextureImage[i]->data); //释放纹理图象所占用内存
}
free(TextureImage[i]); //释放图象结构
}
return Status; //返回Status的值
}
void SceneInit(int w int h)
{
LoadGLTextures(0“pictures/鸣人1.bmp“);
LoadGLTextures(1“pictures/佐助.bmp“);
LoadGLTextures(2“pictures/卡卡西.bmp“);
LoadGLTextures(3“pictures/李洛克.bmp“);
LoadGLTextures(4“pictures/我爱罗.bmp“);
LoadGLTextures(5“pictures/鸣人2.bmp“);
glEnable(GL_TEXTURE_2D);
glShadeModel(GL_SMOOTH); //允许平滑着色
glClearColor( 0.0 0.0 1.0 0.5 );
glClearDepth(1.0f); //设置深度缓冲区
glEnable(GL_DEPTH_TEST); //允许深度测试
glDepthFunc(GL_LEQUAL); //深度测试的类型
glHint(GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST); //极好的透视计算
glLightfv(GL_
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 12952 2007-12-11 12:44 鼠标互动与光照\MouseAndLight\MouseAndLight.cpp
文件 4063 2007-11-05 23:32 鼠标互动与光照\MouseAndLight\MouseAndLight.dsp
文件 551 2007-11-05 21:42 鼠标互动与光照\MouseAndLight\MouseAndLight.dsw
文件 53760 2007-12-11 12:46 鼠标互动与光照\MouseAndLight\MouseAndLight.opt
文件 1246 2007-12-11 12:46 鼠标互动与光照\MouseAndLight\MouseAndLight.plg
文件 359 2007-11-06 20:00 鼠标互动与光照\MouseAndLight\程序说明.txt
文件 196662 2007-11-06 17:24 鼠标互动与光照\MouseAndLight\pictures\佐助.bmp
文件 196662 2007-11-06 17:25 鼠标互动与光照\MouseAndLight\pictures\卡卡西.bmp
文件 196662 2007-11-06 17:24 鼠标互动与光照\MouseAndLight\pictures\我爱罗.bmp
文件 196662 2007-11-06 17:23 鼠标互动与光照\MouseAndLight\pictures\李洛克.bmp
文件 196662 2007-11-06 17:21 鼠标互动与光照\MouseAndLight\pictures\鸣人1.bmp
文件 196662 2007-11-06 17:25 鼠标互动与光照\MouseAndLight\pictures\鸣人2.bmp
文件 547328 2008-05-27 15:14 鼠标互动与光照\MouseAndLight\Debug\MouseAndLight.exe
文件 77824 2007-12-11 12:46 鼠标互动与光照\MouseAndLight\Debug\vc60.pdb
文件 10632 2008-05-27 15:14 鼠标互动与光照\MouseAndLight\Debug\BuildLog.htm
文件 406 2008-05-27 15:14 鼠标互动与光照\MouseAndLight\Debug\MouseAndLight.exe.em
文件 102400 2008-05-27 15:14 鼠标互动与光照\MouseAndLight\Debug\vc90.pdb
文件 56674 2008-05-27 15:14 鼠标互动与光照\MouseAndLight\Debug\MouseAndLight.obj
文件 472 2008-05-27 15:14 鼠标互动与光照\MouseAndLight\Debug\MouseAndLight.exe.em
文件 2542592 2008-05-27 15:14 鼠标互动与光照\MouseAndLight\Debug\MouseAndLight.pdb
文件 381 2008-05-27 15:14 鼠标互动与光照\MouseAndLight\Debug\MouseAndLight.exe.intermediate.manifest
文件 67 2008-05-27 15:14 鼠标互动与光照\MouseAndLight\Debug\mt.dep
文件 8014848 2008-05-27 15:18 鼠标互动与光照\MouseAndLight\MouseAndLight.ncb
文件 5596 2008-05-27 15:14 鼠标互动与光照\MouseAndLight\MouseAndLight.vcproj
文件 891 2008-05-27 15:14 鼠标互动与光照\MouseAndLight\MouseAndLight.sln
..A..H. 7168 2008-05-27 15:18 鼠标互动与光照\MouseAndLight\MouseAndLight.suo
文件 1427 2008-05-27 15:18 鼠标互动与光照\MouseAndLight\MouseAndLight.vcproj.LENOVO-03045314.Administrator.user
目录 0 2008-05-24 03:20 鼠标互动与光照\MouseAndLight\pictures
目录 0 2008-05-24 03:20 鼠标互动与光照\MouseAndLight\Debug
目录 0 2008-05-24 03:20 鼠标互动与光照\MouseAndLight
............此处省略4个文件信息
- 上一篇:完成端口IOCP+UDP源码
- 下一篇:语音识别GMM模型
相关资源
- C++经典书籍集合6本书合集
- VC++打印程序Print
- GIS拓扑自动生成代码
- TCP协议客户服务器方式网络通信对话
- TeeChar8控件及其使用方法针对于VC++
- C++课程设计《日程管理系统》
- 课程设计源码.zip
- MFC函数库.rar
- 图解数据结构C++版源码
- QT c++ dijkstra最短路径工程源码
- 数据结构(C++语言版)_第三版_邓俊辉
- 数据结构与算法分析——C++语言描述
- 小世界网络编程VC++
- 酒店管理系统 QT/C++
- C/C++参考手册大全5本集合.chm
- c++网吧计费管理系统
- 飞行射击游戏源码c++
- 塔防游戏源码c++
- 飞机大战游戏代码c++
- VC++开发界面源码
- 图书管理系统用C++编写的图书管理系
- FTP多线程服务器源码
- 马尔可夫链的c++ C语言实现方法
- 《C++程序设计》 谭浩强 第三版 答案
- Essential C++英文高清非扫描
- 用C++语言编写数学常用算法修订版光
- C++语言程序设计习题集
- C++读取DXF
- C++发送邮件客户端源码
- Microsoft visual c++ 14.0 安装包
评论
共有 条评论