三维渲染模块开发经验总结
2012-01-04 13:38
267 查看
三维渲染模块开发经验总结
刚开始分析这个项目,认识主要问题在于渲染速度上。即能否流畅地渲染巨大的三维实体场景。前期,我认为这是这个项目成败的关键。于是想采用一些空间管理算法,加速渲染。后来,在OGRE中看到VBO代码,于是便试用一下。发现渲染速度很快,完全可以解决这个主要矛盾。前期写的空间管理的代码也没有用上。但这为以后留下了扩展空间。中期,发现任意三角形三角化是主要矛盾。这个问题花了一个多月的时间,问题比较难办,修复这个算法的bug比较困难。后期接入主程序后,发现了生成场景速度非常慢。打开一个1W根H型截面的杆件模型需要90秒,这是不能接受的。这个问题不解决,项目就失败了。后来改变了稍改变了造型方法,提升了数倍效率,变成了5秒。这个问题解决了。
根据以上经验,我认为,在项目没有接收用户测试之前,不能说项目已经开发成功。所以,做有较大技术风险的项目时,应该先开发出原型,实现主要功能,接收用户测试。开发原型的目的是找出决定项目成败的风险点,消除这些风险点,形成软件架构。这个阶段为原型期。
如果原型成功,就进入第二个开发阶段:架构稳定期。在上一个阶段,粗略地形成了软件架构,但还没有在此架构基础上扩展功能。所以,在这个阶段中,要在扩展功能的实践中修改完善架构。并重构代码,因为在上个阶段,为了快速开发原型,代码质量不高。总之,这个阶段要完成两件事(1)在扩展功能的实践中修改完善架构(2)重构代码。(3)编写自动测试用例。完成稳定架构的目标。
过了架构稳定期就进入了功能扩展期。这时工作就简单多了。因为有自动测试用例,所以可以放心大胆地重构优化代码了。在原型期后,重构代码是随时随地的事情。
用一句话概括这三个阶段:先探地基,而后打牢基础,再盖大楼。
以后就进入维护阶段了。
不要因为软件很大,就不做原型。某家公司,开发了某向产品三年,结果在第二年发现了主要矛盾,由于没有做原型。所以等到第三年时,才发现这个问题的严重性。结果开发这个产品失败了。
刚开始分析这个项目,认识主要问题在于渲染速度上。即能否流畅地渲染巨大的三维实体场景。前期,我认为这是这个项目成败的关键。于是想采用一些空间管理算法,加速渲染。后来,在OGRE中看到VBO代码,于是便试用一下。发现渲染速度很快,完全可以解决这个主要矛盾。前期写的空间管理的代码也没有用上。但这为以后留下了扩展空间。中期,发现任意三角形三角化是主要矛盾。这个问题花了一个多月的时间,问题比较难办,修复这个算法的bug比较困难。后期接入主程序后,发现了生成场景速度非常慢。打开一个1W根H型截面的杆件模型需要90秒,这是不能接受的。这个问题不解决,项目就失败了。后来改变了稍改变了造型方法,提升了数倍效率,变成了5秒。这个问题解决了。
根据以上经验,我认为,在项目没有接收用户测试之前,不能说项目已经开发成功。所以,做有较大技术风险的项目时,应该先开发出原型,实现主要功能,接收用户测试。开发原型的目的是找出决定项目成败的风险点,消除这些风险点,形成软件架构。这个阶段为原型期。
如果原型成功,就进入第二个开发阶段:架构稳定期。在上一个阶段,粗略地形成了软件架构,但还没有在此架构基础上扩展功能。所以,在这个阶段中,要在扩展功能的实践中修改完善架构。并重构代码,因为在上个阶段,为了快速开发原型,代码质量不高。总之,这个阶段要完成两件事(1)在扩展功能的实践中修改完善架构(2)重构代码。(3)编写自动测试用例。完成稳定架构的目标。
过了架构稳定期就进入了功能扩展期。这时工作就简单多了。因为有自动测试用例,所以可以放心大胆地重构优化代码了。在原型期后,重构代码是随时随地的事情。
用一句话概括这三个阶段:先探地基,而后打牢基础,再盖大楼。
以后就进入维护阶段了。
不要因为软件很大,就不做原型。某家公司,开发了某向产品三年,结果在第二年发现了主要矛盾,由于没有做原型。所以等到第三年时,才发现这个问题的严重性。结果开发这个产品失败了。
相关文章推荐
- 基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理
- 基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理
- (转)基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理
- 基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理
- 基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理
- 基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理
- 开发npm模块经验总结
- phplib系统开发经验总结
- 《做开发十年,我总结出了这些开发经验》读后感
- Java软件开发经验总结
- php中持久化存储模块开发总结
- 经验的总结:开发J2EE应用中的一些要领
- Entity Framework 实体框架的形成之旅--实体框架的开发的几个经验总结
- Java Web项目开发项目经验总结
- 我的 Android 开发实战经验总结
- android开发经验总结
- 2015061804 - 10年程序开发经验总结(1)
- 利用博创2410s实验箱进行qt开发经验总结
- 基于MVC4+EasyUI的Web开发框架经验总结(7)--实现省份、城市、行政区三者联动
- javascript开发经验总结【一】:多重条件判断