3D引擎:Horde3D:App类
来源:互联网 发布:apache cxf 下载 编辑:程序博客网 时间:2024/05/21 20:26
Horde3D引擎 主要位于 Horde3D/Source/Horde3DEngine/Debug/下的 Horde3D.lib。 其源码位于Horde3D/Bindings/C++/Horde3D.h和 Horde3D/Source/Horde3DEngine/下的cpp文件里
Horde3D引擎资源的加载API 主要是 位于Horde/Source/Horde3DEngine/Debug/下的Horde3DUtils.lib。其源码位于Horde3D/Bindings/C++/Horde3DUtils.h和 Horde3D/Source/Horde3DUtils/下的main.cpp文件里
构建一个 Application类, 用于初始化Horde3D引擎
在Horde3D中,所有Samples的 Application类都为:
class Application
{
public:
Application(const std::string &appPath);
void setKeyState(int key, bool state){_prevKeys[key] = _keys[key]; _keys[key] = state;}
const char *getTitle(){return "*";}
bool init();
void mainLoop(float fps);
void release();
void resize(int width, int height);
void keyStateHandler();
void mouseMoveEvent(float dx, float dy);
private:
void keyHandler();
private:
bool _keys[320], _prevKeys[320];
float _x, _y, _z, _rx, _ry; // Viewer position and orientation
float _velocity; //Velocity for movement
float _curFPS;
int _statMode;
int _freezeMode;
int _debugViewMode, _wireframeMode;
//Engine objects
H3DRes _fontMatRes, _panelMatRes, _logoMatRes;
H3DNode _cam;
std::string _contentDir;
}
我们按照 私有变量, 构造函数简介, 构造函数,init方法, 私有方法,的顺序来一步一步解释。
私有变量:
_keys[320], _prevKeys[320] 存储的是相应的按键状态,true 或 false。 _prevKeys 是用来放置引擎未初始化前发生按键触发的异常情况。
_velocity 是来设置 移动的速度
freezeMode 是用来控制 引擎的渲染,当按两下space freezeMode = 2时 游戏画面 停止。
构造函数: Application:
主要初始化上面的私有变量, 如_x, _y, _z 设置位置, _rx, _ry 设置角度 。 _curFPS设置为 30帧。
指针初始化为0
Application接收一个 appPath, 通过这个路径,找到 资源加载的位置。
init()函数:
init()函数是用来初始化引擎的,并且加载资源,和场景节点。
引擎中的API 都是以 h3d开头的。
mainLoop() 函数:
它是用来渲染 场景的。
其它的API还有 release(), resize, keyStateHandler 分别是释放APP 改变场景大小, 和 外设控制等。
关于以上 函数,我会通过 写一个加载文字Logo的demo来一步一步分析,从而达到逐步了解整个引擎的作用
Horde3D只是小型的渲染引擎,但是学习它的架构,低于扎实我们的基础还是很有必要的。
0 0
- 3D引擎:Horde3D:App类
- 3D引擎:Horde3D的 Resource类
- 3D引擎:Horde3D:窗口类API:glfw
- 3D引擎:Horde3D:小感3
- 3D引擎:Horde3D:小感
- 3D引擎:Horde3D:小感2
- 3D引擎:Horde3D:Cocos 和 Horde3D渲染部分的设计比较
- 3D引擎:Horde3D:如何解析Shader文件(一)
- 3D引擎:Horde3D:读取Shader文件流程(二)
- 3D引擎:Horde3D:Shader类里的 结构体,以及渲染一个 Logo的简单流程(三)
- Horde3D——基于C++编写的3D渲染引擎
- ZLib2000 3D引擎
- 3D引擎架构
- 3D引擎数据库
- 3D物理引擎
- 3D引擎简介
- 3D引擎
- 3D引擎
- 逐渐有意识地适当远离Windows环境编程和C语言
- 3D引擎:Horde3D:窗口类API:glfw
- 【跟我学Apache Commons】【一】综述
- js实现复选框全选和反选功能
- 魔兽军团前端项目的一些总结
- 3D引擎:Horde3D:App类
- 【跟我学Apache Commons】【二】Lang&Math
- 关于win2003 iis6 不显示验证码的解决方法
- POJ 3468 线段树入门题
- uvaoj 1352Colored Cubes
- 58架构演进
- 【跟我学apache-commons(三)】DBCP2.2---JavaSE配置DBCP连接池
- Xcode 7.1在xib和storyboard经常意外退出求解
- 方法(函数)的声明与实现、方法(函数)的调用