资源简介
课堂作业,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模型
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- 安卓c语言开发SDL2+opengles
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- 基于STM32F103C8T6主控板使用BH1750检测光
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
评论
共有 条评论