Gamebryo3.0SDK翻译-NiApplication
NiApplication是针对Gamebryo示例创建的跨平台框架。它的主要功能有—创建窗口、创建渲染器、创建输入系统以及提供命令行(command line)的访问接口。
一、基本知识
1. 基本物体的创建
Scene
NiNodePtr m_spCene:指向场景的根。
Virtual bool CreateScene:分配一个Node给m_spScene
Camera
NiCamraPtr m_spCamera
Virtual bool CreateCamra:创建NiCamera
Renderer
NiRendererPtr m_spRenderer:
Virtual bool CreateRenderer:
Render Frame
NiRenderFramePtr m_spFrame
Virtual bool CreateFrame():当帧渲染系统开启时(bUserFrameSystem),首先创建一个Ni3DRenderView去处理m_spScene、m_spCamera、m_spCuller、NiCullingProcess。同样创建一个NiAccumulatorProcessor以及一个主render click。
2. 使用Input
NiApplication使用NiInputSystem作为输入系统。
Virtual void UpdateInput():更新输入设备的状态
Virtual void ProcessInput():相应用户消息。
用户获取输入即调用NiApplication::GetInputSystem
WinMain
3. 帧渲染系统
可以通过设置m_bUseFrameSystem来决定是否使用帧渲染系统
4. VisualTrackers
主要使用用来跟踪程序的运行状态如,帧、时间、内存消耗。
5. 重载方法
Initialize、Terminate、OnIdle
6. Turret
NiTurret代表一个优化过的摄像机控制
二、winmain
1. 命令行参数
2. 命令行参数实例
3. 创建应用程序对象
4. 事件循环处理
5. 渲染器设置对话框
6. 使用渲染器设置对话框
7. 通过命令行来优化渲染器
8. 通过INI Line来优化渲染器
9. 窗口的创建
10. 状态条支持
NiSample
对NiApplication进行了扩展:UI、shader
一、 NiSample使用说明
二、 Singals和Slots
使用消息来作为UI和程序逻辑交互的媒介
三、 创建UI元素
四、 创建导航控制
五、 创建Shader系统
NiSample使用了两个库来使用shader system