TinyRenderEngine------Overview

TinyRenderEngine 是什么?

简单的说,TinyRenderEngine 是我利用空闲时间开发的一个简单的graphics engine.  它主要做这样的事情:

1. 提供接口给用户,用来载入绘制需要的resouce(Texture mesh) 这部分就是ResourceManager

2. 提供接口给用户,用来创建场景,包括场景的管理。 这部分就是SceneManager

3. 提供接口给用户,用来设定绘制方法(State, Effect) 这部分就是RenderSystem

4. 根据123 绘制场景,得到最终的效果

用户的工作就是通过123 中的接口设置资源,场景和绘制算法, 剩下的工作就交给TinyRenderEngine来做了。 其中3中开放绘制方法接口给用户是基于绘制灵活性的考虑,用户可以通过自定义的.fx来实现特定的绘制效果。目前 TinyRenderEngine还是一个非常简陋的版本,很多功能正在不断扩充中。

为什么开发 TinyRenderEngine

1.    学习OGRE:实践是很好的学习方式,边学边用,能更好地理解OGRE

2.    自己很多关于实时绘制和软件工程方面的知识都停留在理论方面, 很想开发一个东西,能把这些知识综合运用起来, 而图形引擎是一个很好的项目

TinyRenderEngine 的特点

1.  借鉴了大量OGRE的思想和code.  比如ResourceManagerSceneManager模块里的东西基本上是照着OGRE写的

2.  TinyOGRE对我来说有些庞大了,我想要的是一个“麻雀虽小,五脏俱全”的系统。一来开发时可以把精力集中在把最基本的图形引擎要素的实现上, 其次用户也不会在繁多的接口API中迷茫该用哪一个。

3.  大量用了boost的智能指针,特别是shared_ptr 智能指针的好处是解决了对象内存管理问题 

(比如内存泄露)和潜在的悬挂指针问题。当然,它也可能带来新的问题, 比如shared_ptr,  就要注意循环引用问题(比如A指向BB指向A) 还有shared_ptr会比普通的指针占用更多的内存空间。

4.  全新设计的D3D10 RenderSystem.  RenderSystem是全新设计的。 设计思想跟2一样, 尽量做到精炼简洁和好用。 

TinyRendrEngine 的组织结构

下图是TinyRenderEngine的体系结构图:

整个引擎可以分为以下几个模块

    1) Utils

    2) MathLib

    3) SceneManager

    4) ResourceManager

    5) RenderSystem 

在以后的文章里, 我会分别介绍各个模块。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值