资源简介
OPENGL 实现的一个3D场景,具有漫游功能

代码片段和文件信息
#include “stdafx.h“
#include “DrawMap.h“
#include “BITMAP.H“
GLfloat r;
float gao=1.8f;
extern CString test;
extern HWND hWnd;
int mapType=1;
//////////////////////////////////////////////////////////////////////
DrawMap::DrawMap()
{ g_eye[0]= MAP-80;
g_eye[2]=-MAP;
g_Angle=0;
g_elev=-0;
////////////////////////////////////////////////////////////////////////
char appdir[256];
GetCurrentDirectory(256appdir);
CString dir=appdir;
g_imageData = LoadBit(“data/sand0.bmp“&g_bit);
Generate_Texture(“data/sand2.bmp“ g_cactus[0]);
Generate_Texture(“data/4RBack.bmp“ g_cactus[2]);
Generate_Texture(“data/4Front.bmp“ g_cactus[3]);
Generate_Texture(“data/4Top.bmp“ g_cactus[4]);
Generate_Texture(“data/4Left.bmp“ g_cactus[5]);
Generate_Texture(“data/4Right.bmp“ g_cactus[6]);
/*Generate_Texture(“data/mm.bmp“ g_cactus[7]);*/
InitTerrain(5);
m_3ds=new CLoad3DS();
load3dobj(“3ds/““paolou.3DS“0);
load3dobj(“3ds/““直升机.3ds“1);
load3dobj(“3ds/““航天发射台.3DS“2);
load3dobj(“3ds/““sd.3DS“3);
glEnable(GL_TEXTURE_2D);
}
DrawMap::~DrawMap()
{ for(int i=0;i<16;i++) glDeleteTextures(1 &g_cactus[i]);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
}
void DrawMap::light0()
{ GLfloat light_position[] = {1.05.01.01.0};
GLfloat LightAmbient[]= { 0.5f 0.5f 0.5f 1.0f }; //环境光参数
GLfloat LightDiffuse[]= { 1.0f 1.0f 1.0f 1.0f }; // 漫射光参数
glLightfv(GL_LIGHT0 GL_AMBIENT LightAmbient); // 设置环境光
glLightfv(GL_LIGHT0 GL_DIFFUSE LightDiffuse); // 设置漫射光
glLightfv(GL_LIGHT0 GL_POSITION light_position);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_COLOR_MATERIAL);
}
void DrawMap::changeMap()
{
mapType++;
if(mapType==4)
mapType=1;
if(mapType==1)
Generate_Texture(“data/sand3.bmp“ g_cactus[0]);
if(mapType==2)
Generate_Texture(“data/sand4.bmp“ g_cactus[0]);
if(mapType==3)
Generate_Texture(“data/Terrain4.bmp“ g_cactus[0]);
InitTerrain(5);
DrawSand();
}
BOOL DrawMap::DisplayScene()
{
float speed=0.5f;
float x=g_eye[0]y=g_eye[2]z=g_eye[2];
if (KEY_DOWN(VK_SHIFT)) speed =speed*2;
if (KEY_DOWN(65)) g_Angle-=speed*2;/////////////////////////////////////a
if (KEY_DOWN(68)) g_Angle+=speed*2;//////////////////////////////////////d
rad_xz = float (3.13149* g_Angle/180.0f);
if (KEY_DOWN(VK_UP)) g_elev +=speed;
if (KEY_DOWN(VK_DOWN)) g_elev -=speed;
if (KEY_DOWN(VK_LEFT)) g_Angle-=speed*2;
if (KEY_DOWN(VK_RIGHT)) g_Angle+=speed*2;
if (g_elev<-360) g_elev =-360;
if (g_elev> 360) g_elev = 360;
if (KEY_DOWN(87)) /////////////////////////////////w
{ g_eye[2]+=(float)sin(rad_xz)*speed;
g_eye[0]+=(float)cos(rad_xz)*speed;
}
if (KEY_DOWN(83)) /////////////////////////////////s
{ g_eye[2]-=(float)sin(rad_xz)*speed;
g_eye[0]-=(float)cos(rad_xz)*speed;
}
if(g_eye[0]< MAP_SCALE)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-06-30 10:13 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\
目录 0 2014-06-30 10:14 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\
目录 0 2014-06-30 08:59 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3ds\
文件 823782 2014-06-09 12:15 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3ds\a.bmp
文件 316054 2014-06-09 12:15 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3ds\b.bmp
文件 1299 2014-06-09 12:15 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3ds\box.3DS
文件 23454 2014-06-09 12:15 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3ds\c.bmp
文件 144438 2014-06-09 12:15 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3ds\d.bmp
文件 46134 2014-06-09 12:15 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3ds\grass1.bmp
文件 256102 2014-06-09 12:15 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3ds\hind011.bmp
文件 921654 2014-06-28 18:10 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3ds\marbel.bmp
文件 10182 2014-06-09 12:15 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3ds\paolou.3DS
文件 786486 2014-06-28 18:10 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3ds\scratch.bmp
文件 95020 2014-06-09 12:15 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3ds\sd.3DS
文件 32527 2014-06-09 12:15 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3ds\直升机.3ds
文件 97666 2014-06-09 12:15 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3ds\航天发射台.3ds
文件 18970 2014-06-29 10:28 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3DS.CPP
文件 3827 2014-06-29 10:28 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\3DS.H
文件 3662 2005-10-23 18:21 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\bitmap.h
目录 0 2014-06-30 08:57 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\Data\
文件 33846 2014-06-09 12:17 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\Data\4FRONT.BMP
文件 33846 2014-06-09 12:17 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\Data\4LEFT.BMP
文件 33846 2014-06-09 12:17 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\Data\4RBACK.BMP
文件 33846 2014-06-09 12:17 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\Data\4RIGHT.BMP
文件 66614 2014-06-09 12:17 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\Data\4TOP.BMP
文件 786488 2005-10-24 15:48 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\Data\sand0.BMP
文件 263222 2004-10-26 10:50 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\Data\sand1.BMP
文件 263222 2014-06-09 12:17 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\Data\SAND2.BMP
文件 263222 2014-06-09 12:17 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\Data\SAND3.BMP
文件 263222 2014-06-09 12:17 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\Data\SAND4.BMP
文件 3126 2014-06-09 12:16 OpenGL场景漫游 肖天意 李昕阳 卢帅 司佳琪\MyProject\Data\Terrain0.bmp
............此处省略26个文件信息
相关资源
- OpenGL参考手册
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- Delphi实现图像拖动,无延时。
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- OPENGL实现世界上最小的3D游戏
- 亲子嘉年华路演活动模型
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
评论
共有 条评论