三维渲染模块开发经验总结

三维渲染模块开发经验总结

  

    刚开始分析这个项目,认识主要问题在于渲染速度上。即能否流畅地渲染巨大的三维实体场景。前期,我认为这是这个项目成败的关键。于是想采用一些空间管理算法,加速渲染。后来,OGRE中看到VBO代码,于是便试用一下。发现渲染速度很快,完全可以解决这个主要矛盾。前期写的空间管理的代码也没有用上。但这为以后留下了扩展空间。中期,发现任意三角形三角化是主要矛盾。这个问题花了一个多月的时间,问题比较难办,修复这个算法的bug比较困难。后期接入主程序后,发现了生成场景速度非常慢。打开一个1WH型截面的杆件模型需要90秒,这是不能接受的。这个问题不解决,项目就失败了。后来改变了稍改变了造型方法,提升了数倍效率,变成了5秒。这个问题解决了。

根据以上经验,我认为,在项目没有接收用户测试之前,不能说项目已经开发成功。所以,做有较大技术风险的项目时,应该先开发出原型,实现主要功能,接收用户测试。开发原型的目的是找出决定项目成败的风险点,消除这些风险点,形成软件架构。这个阶段为原型期。

如果原型成功,就进入第二个开发阶段:架构稳定期。在上一个阶段,粗略地形成了软件架构,但还没有在此架构基础上扩展功能。所以,在这个阶段中,要在扩展功能的实践中修改完善架构。并重构代码,因为在上个阶段,为了快速开发原型,代码质量不高。总之,这个阶段要完成两件事(1)在扩展功能的实践中修改完善架构(2)重构代码。(3)编写自动测试用例。完成稳定架构的目标。

过了架构稳定期就进入了功能扩展期。这时工作就简单多了。因为有自动测试用例,所以可以放心大胆地重构优化代码了。在原型期后,重构代码是随时随地的事情。

用一句话概括这三个阶段:先探地基,而后打牢基础,再盖大楼。

以后就进入维护阶段了。

    不要因为软件很大,就不做原型。某家公司,开发了某向产品三年,结果在第二年发现了主要矛盾,由于没有做原型。所以等到第三年时,才发现这个问题的严重性。结果开发这个产品失败了。

展开阅读全文

没有更多推荐了,返回首页