|
发表于 2014-9-29 16:11:28
|
显示全部楼层
作为一个学习OSG 有段时间的过来人,可以说点自己的个人建议哈。刚开始学习OSG的时候,我和你一样,迷茫,这么多库,这么多代码,脑海中满是困惑:“这些是干嘛用、妈呀,这么多函数做啥子?这个函数 这个类为什么这么写” 。经历过迷茫恐惧期之后的我,后来慢慢在网上找了些已经学习OSG一段时间的人写的帖子,以及一些建议。总之学习OSG架构需要一个必备的条件:C++基础要好。因为OSG中用到了很多很经典的设计模式。访问者模式、装饰器模式、适配器模式、我相信只要写过一些代码的人都会看到Visitor Adapter这几个单词的。还有就是OSG很多地方对()括号运算符进行了重载。因为你了解的是架构而不是具体实现细节的话,我想设计模式你应该需要去了解的。
一个渲染引擎必备一个库就是数学库,学过OpenGL的人都知道,openGL底层操作基本都是矩阵变换。所谓的渲染管线就是一系列的矩阵变换。从这个角度来说数学库是必不可少的。
OSG作为一个夸平台的渲染引擎,它能夸平台是因为它对对操作系统环境做了一定的封装。在类的设计上可以看出这点,大量使用纯虚函数,虚函数当然也用了些泛型编程的思想在其中。
好了,稍微简单的说了下OSG的相关的设计概念,具体还有待同志你去学习和了解了。要想快速了解OSG架构或者是工作原理的话,最直接的方法是装一个VS2010或者能直接调试的IDE,然后一步一步的跟踪程序。这时候配上一本王锐(Array)写的《最长的一帧》还有加点耐心和专心 。我相信你能很快理解OSG 的。我相信Array写《最长的一帧的》的时候肯定是曾经完整的一步一步调试跟踪过OSG程序的。好了,就说这么多。 |
|