• 大小: 2.54MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-12
  • 语言: 其他
  • 标签: OpenGL  漫游  3d模型  

资源简介

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个文件信息

评论

共有 条评论