既然是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 text

本文从RenderSystem入手,探讨Ogre 3D引擎的渲染机制,包括渲染环境、窗口管理、模型渲染等。重点介绍了注册FrameListener进行帧监听、Texture的类工厂模式、RenderOperation的使用以及RenderTarget的概念。同时提到了Ogre提供的多个RenderSystem实现,并指出可以自定义新的RenderSystem。文章还提及了Ogre中的状态管理和Lower level methods的用途。

1535

被折叠的 条评论
为什么被折叠?



