• 大小: 7.89MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-22
  • 语言: C/C++
  • 标签: opengl  地形  漫游  

资源简介

实验源代码,opengl以及MFC的源程序,可生成地形,并且实现漫游

资源截图

代码片段和文件信息

//=========================================================================
/**
*  @file      3DSFile.cpp
*
*  项目描述: 3DS文件载入
*  文件描述:  具体实例类 
*  适用平台: Windows98/2000/NT/XP
*  
*  作者:     WWBOSS
*  电子邮件:  wwboss123@gmail.com
*  创建日期: 2006-09-13
*  修改日期: 2006-12-02
*
*  在这个类中您必须重载如下几个虚函数
*
* virtual bool Init();
* 执行所有的初始化工作,如果成功函数返回true
*
* virtual void Uninit();
* 执行所有的卸载工作
*
* virtual void Update(DWORD milliseconds);
* 执行所有的更新操作,传入的参数为两次操作经过的时间,以毫秒为单位
*
* virtual void Draw();
* 执行所有的绘制操作
*/
//=========================================================================
#include “stdafx.h“
#include “3DSFile.h“     


/** 创建一个程序的实例 */
GLApplication * GLApplication::Create(const char * class_name)
{
Test * test = new Test(class_name);
return reinterpret_cast(test);
}


/** 构造函数 */
Test::Test(const char * class_name) : GLApplication(class_name)
{
  /// 初始化用户自定义的程序变量
m_Fps = 0;
m_RenderMode = true;
sp = false;
    
}


/** 初始化OpenGL */
bool Test::Init()
{
/** 用户自定义的初始化过程 */
glClearColor(0.0f 0.0f 0.0f 0.5f);
glClearDepth(1.0f);
glDepthFunc(GL_LEQUAL);
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glShadeModel(GL_SMOOTH);
glHint(GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST);
ResizeDraw(true);                              /**< 改变OpenGL窗口大小,直接调用子类的函数 */


/** 初始化字体 */
if(!m_Font.InitFont())
MessageBox(NULL“初始化字体失败!““错误“MB_OK);


/** 初始化地形 */
if(!m_Terrain.init())
{
MessageBox(NULL“初始化地形失败!““错误“MB_OK);
exit(0);
}

/** 初始化天空 */
if(!m_SkyBox.init())
{
MessageBox(NULL“初始化天空失败!““错误“MB_OK);
exit(0);
}


/** 初始化3DS文件 */
m_3DS.Init(“model.3ds“);

    /** 设置摄像机 */
m_Camera.setCamera( 381 35 674  374.5 35 669  0 1 0);

return true;                                        /**< 成功返回 */
}

/** 用户自定义的卸载函数 */
void Test::Uninit()
{
}
/** 更新摄像机 */
void Test::UpdateCamera()
{
m_Camera.setViewByMouse();

/** 键盘按键响应 */
if(m_Keys.IsPressed(VK_SHIFT))                        /**< 按下SHIFT键时加速 */
{
m_Camera.setSpeed(1.2f);
}
if(!m_Keys.IsPressed(VK_SHIFT))
{
m_Camera.setSpeed(0.6f);
}
if(m_Keys.IsPressed(VK_UP) || m_Keys.IsPressed(‘W‘))   /**< 向上方向键或‘W‘键按下 */
m_Camera.moveCamera(m_Camera.getSpeed());          /**< 移动摄像机 */

if(m_Keys.IsPressed(VK_DOWN) || m_Keys.IsPressed(‘S‘)) /**< 向下方向键或‘S‘键按下 */
m_Camera.moveCamera(-m_Camera.getSpeed());         /**< 移动摄像机 */

if(m_Keys.IsPressed(VK_LEFT) || m_Keys.IsPressed(‘A‘)) /**< 向左方向键或‘A‘键按下 */
m_Camera.yawCamera(-m_Camera.getSpeed());          /**< 移动摄像机 */

if(m_Keys.IsPressed(VK_RIGHT) || m_Keys.IsPressed(‘D‘)) /**< 向右方向键或‘D‘键按下 */
m_Camera.yawCamera(m_Camera.getSpeed());            /**< 移动摄像机 */

/*

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6608  2007-11-13 11:05  漫游\3DSFile.cpp

     文件       2567  2007-11-13 11:05  漫游\3DSFile.h

     文件      17153  2007-11-13 11:05  漫游\3DSLoader.cpp

     文件     229376  2007-11-13 11:05  漫游\3DSLoader.exe

     文件       4741  2007-11-13 11:05  漫游\3DSLoader.h

     文件     502784  2007-11-13 11:05  漫游\3DSLoader.ncb

     文件   31719424  2014-11-24 08:50  漫游\3DSLoader.sdf

     文件        879  2014-11-24 08:39  漫游\3DSLoader.sln

     文件       9728  2007-11-13 11:05  漫游\3DSLoader.suo

    ..A..H.     22016  2014-11-24 08:50  漫游\3DSLoader.v11.suo

     文件       4539  2007-11-13 11:05  漫游\3DSLoader.vcproj

     文件       5337  2014-11-24 08:39  漫游\3DSLoader.vcxproj

     文件       2830  2014-11-24 08:39  漫游\3DSLoader.vcxproj.filters

     文件        907  2007-11-13 11:05  漫游\Backup\3DSLoader.sln

    ..A..H.      9728  2007-11-13 11:05  漫游\Backup\3DSLoader.v11.suo

     文件       6369  2007-11-13 11:05  漫游\Camera.cpp

     文件       1903  2007-11-13 11:05  漫游\Camera.h

     文件       2660  2007-11-13 11:05  漫游\CBMPLoader.cpp

     文件       1055  2007-11-13 11:05  漫游\CBMPLoader.h

     文件     786488  2007-11-13 11:05  漫游\cyborg.bmp

     文件      98358  2007-11-13 11:05  漫游\data\back.BMP

     文件     192824  2007-11-13 11:05  漫游\data\box.tga

     文件     196662  2007-11-13 11:05  漫游\data\cloud.BMP

     文件          9  2007-11-13 11:05  漫游\data\Desktop_.ini

     文件     786486  2007-11-13 11:05  漫游\data\detail.BMP

     文件      98358  2007-11-13 11:05  漫游\data\front.BMP

     文件      98358  2007-11-13 11:05  漫游\data\left.BMP

     文件      98358  2007-11-13 11:05  漫游\data\right.BMP

     文件     786486  2007-11-13 11:05  漫游\data\terrain.BMP

     文件    1048576  2007-11-13 11:05  漫游\data\terrain.raw

............此处省略40个文件信息

评论

共有 条评论