好久没有写技术方面的文章了,每次过来看blog都很自责,毕业设计和纵向研究方面已经好久(距离最后一篇技术文章一个月了)没有什么可以记录的进展了。
上上个礼拜五开学的时候,实验室开了个会,我的2006年的工作主要还是在研究生网报和图形引擎这两个方面,没有什么新的内容。今年的
BH_GRAPH主要是继续稳定系统,投入实用,在5月分的时候需要召开一个应用推广会,因此前边必须完成系统的稳定和功能问题。因为kesney,xn
等牛人的毕业,现在的开发工作轮到把我们这一届几个人作为了项目的骨干。
上个礼拜项目组又开了一个会,主要是讲了一些本学期的开发思路,并且把人员进行的任务分工,我有幸被分到框架的重新设计组里,跟着yyd大牛。
总结一下目前dvesg中的问题:
1,状态管理有问题,改变的状态无法还原。这样的问题直接导致绘制错误和阴影工作无法进行;
2,同ogre的场景组织结构相比,严重依赖于openFlight格式进行设计,场景遍历层次太深;
3,结构不灵活,目前只能对于Leaf设置StateSet,而无法对于Group设置;
4,效率还比较低,一直没有办法提高FPS。
那么出于上述问题和系统当前和以后发展的考虑,目前主要是想验证一下当前对于引擎的核心结构进行修改的可行性,并提出一个修改方案,这两周基本上做的就是这个工作,主要是以Ogre为研究对象,领会Ogre的设计思想,希望能够从中得到一些借鉴。
第一周主要分析了Ogre的材质系统的相关数据结构,但是从MaterialManager,Materail,Technique,Pass
这几个类里边看不出Ogre对于状态的考虑,因此这个礼拜主要是从绘制流程的角度分析Ogre,目前已经把主流程走了一遍,只剩下最后的
SceneManager::_renderVisibleObjects()了。
从看的这个过程中,又相应的了解了一下CG里边的Technique,pass的概念,把openGL红宝书里边光照的部分看了一遍,也算是略有收获吧。
现在的主要问题:
1,对于基于shader的绘制还不了解,因此无法解释一些设计上的想法,严重限制了很多东西的学习,包括我的毕业设计,准备下面集中学习一下,最起码把《The CG tutorial》看一遍。
2,对于Ogre的绘制中的状态排序过程和绘制过程要仔细研究,包括对于特定的RenderSystem里边的具体实现,以及如何结合shader框架的,这个要做阴影是一定要在dvesg中实现的。
3,应该着手把那5篇论文看完,最起码用简单的d3d框架实现一下算法。
4,论文工作一拖再拖,一定要挤时间完成。