既然是3D引擎, 最感兴趣的当然是他的渲染机制了, 所以, 就从他的RenderSystem入手!
用VC2005 打开Ogre.dsw, 然后导出为05工程, 就可以在VC中看到所有工程了.
RenderSystem头文件位于Ogre -> OgreMain -> Header Files中
RenderSystem是一个纯虚的基类, 抽象出了与3D SDKs 无关的接口操作, 包括两大部分: 渲染环境/渲染窗口的创建与管理, 3D模型的渲染.
我重点关心的是渲染机制, 也就是模型的渲染.
由于这个类只有基类, 而且每个函数都有详细注释, 所以就不说函数的用法了
几点心得:
1. 可以注册一个FrameListener 到 RenderSystem, 可以在绘制每一帧时得到通知, 这是一个典型的观察者模式, FrameListener 有两个回调:
virtual bool frameStarted(const FrameEvent& evt) { return true; }
virtual bool frameEnded(const FrameEvent& evt) { return true; }
2. Textrue的生成要通过RenderSystem来, 这又是个典型的类工厂模式, 至于Texture的详情, 下次再说.
/** Creates and registers a render texture object.
@param name
The name for the new render texture. Note that names must be unique.
@param width
The requested width for the render texture. S