资源简介
实验源代码,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个文件信息
相关资源
- 安卓c语言开发SDL2+opengles
- 交互式计算机图形学 第六版 OpenGL源代
- VC++基于OpenGL模拟的一个3维空间模型
- opengl绘制汽车.cpp
- opengl实现水流效果sph
- opengl源代码,全是精华!
- OpenGL迷宫山东大学图形学实验三
- opengl的立方体消隐算法
- vc++ opengl代码爆炸
- 我见过最漂亮的CS仿真程序openGL和C+
- 三维地形显示代码
- 广东某工业大学的openGL课程设计
- 使用OpenGL实现多个小球在密闭空间内
- 利用openGL和C++实现光线跟踪绘图的完
- OpenGl C++太阳系小行星运行系统 可切换
- vc++和OpenGL实现三维地形实时动态显示
- C++实现利用OpenGL实现三维绘图
- 太阳、地球、月亮之间的运动图Open
- MFC 单文档 实现opengl 三维旋转 缩放
- OPENGL的烟花程序(代码)
- MFC+OpenGL三维建模与动画显示
- 基于opengl粒子系统实现喷泉的模拟
- 一个基于openGL的太阳系模型,太阳地
- vc6.0+opengl纯色五角星填充
- vc6.0+opengl动态绘制五角星
- NeHe_OpenGL教程完整版 里面有地址可以
- OpenGL简单——实现立方体贴上不同纹
- MFC实现dem的读取与现实
- VC++ OpenGL三维地形漫游
- OpenGL实现三维地形实时动态显示
评论
共有 条评论