开篇:关于FlagshipEngine
2008-12-15 22:52
197 查看
首先要感谢旗舰工作室的倒掉,让我可以名正言顺的使用FlagshipEngine这个名字,话说这个实验引擎,当初只是我的大学毕业设计,工作之后实在太忙,写写停停,进度缓慢,到今天也只能算V0.001,其特性主要有以下三点
一、多线程 多核CPU早已走进了千家万户,但3D引擎却迟迟不能享受到其好处,还仅仅停留在资源异步加载,音频独立线程等不疼不痒的应用,就在一年前吧,公司的牛人们为了优化骨骼动画和粒子计算煞费苦心,这两样计算,特别是在无法控制同屏资源的网络游戏中,对CPU资源的占用非常可观,自然也拖累了游戏帧数,于是我便有了将逻辑计算与渲染分离的想法。 FlagshipEngine实现了一套没有线程同步的双线程结构,可以做到骨骼动画、粒子计算、光源移动等逻辑计算分离到一个单独的线程运行,完全不影响渲染帧数。
二、灵活的shader渲染器 DX10已经放弃了固定管线,那么我们也没理由再留恋它,完全基于shader的渲染器实现起来更加清晰简洁,并且易于扩展,目前FlagshipEngine已经实现了DX9和DX10两个渲染器,可以方便的添加Effect。 话说DX10不是一般的繁琐,希望DX11能有所改观。
三、统一剪裁器 场景组织和剪裁永远是3D引擎的核心功能,视锥、四叉树、BSP、Portal如何选择,如何统一是个难题,我的想法是将所有的剪裁都抽象成剪裁面,并用压栈和出栈的方式,递归的对场景进行剪裁,另外我们还可以对大块实体绑定简单模型的遮挡体,使用边缘检测算法生成遮挡剪裁面,实现遮挡剪裁。 这一想法还在实验中,看起来还是很有前途的。
就这么多了,希望它有朝一日能修成正果,阿门。。。
一、多线程 多核CPU早已走进了千家万户,但3D引擎却迟迟不能享受到其好处,还仅仅停留在资源异步加载,音频独立线程等不疼不痒的应用,就在一年前吧,公司的牛人们为了优化骨骼动画和粒子计算煞费苦心,这两样计算,特别是在无法控制同屏资源的网络游戏中,对CPU资源的占用非常可观,自然也拖累了游戏帧数,于是我便有了将逻辑计算与渲染分离的想法。 FlagshipEngine实现了一套没有线程同步的双线程结构,可以做到骨骼动画、粒子计算、光源移动等逻辑计算分离到一个单独的线程运行,完全不影响渲染帧数。
二、灵活的shader渲染器 DX10已经放弃了固定管线,那么我们也没理由再留恋它,完全基于shader的渲染器实现起来更加清晰简洁,并且易于扩展,目前FlagshipEngine已经实现了DX9和DX10两个渲染器,可以方便的添加Effect。 话说DX10不是一般的繁琐,希望DX11能有所改观。
三、统一剪裁器 场景组织和剪裁永远是3D引擎的核心功能,视锥、四叉树、BSP、Portal如何选择,如何统一是个难题,我的想法是将所有的剪裁都抽象成剪裁面,并用压栈和出栈的方式,递归的对场景进行剪裁,另外我们还可以对大块实体绑定简单模型的遮挡体,使用边缘检测算法生成遮挡剪裁面,实现遮挡剪裁。 这一想法还在实验中,看起来还是很有前途的。
就这么多了,希望它有朝一日能修成正果,阿门。。。
相关文章推荐
- 关于FlagshipEngine
- 关于GTK theme engine的使用和GTK风格介绍
- 关于Microsoft JET Database Engine 错误 '80004005' 不可识别的数据库格式错误的解决方法
- 关于v8 Javascript engine 的使用方法研究 (二)转
- 关于修改 AchartEngine 源码的修改
- 多线程渲染(Multithreaded- rendering)3D引擎实例分析 : FlagshipEngine
- 关于项目自动化测试架构的改良计划 - DataProviderEngine架构
- 关于Mysql当中"Got error 134 from storage engine"的解决办法
- 关于achartengine
- 开篇,从Kingofark那转过来的 关于学习C++和编程的50个观点 2003修订版
- 关于ssh整合jbpm4.4 无法获取processEngine的问题
- 关于RuleSet Engine的用法
- BlogEngine.Net架构与源代码分析系列part1:开篇介绍
- 不只是休闲:关于体感游戏的一些思考(一)--- 开篇和“随身”物件
- 关于achartengine的使用一些小经验
- 关于V8 JavaScript Engine的使用方法研究
- 补充Haaf's Game Engine 中关于vc6中的设置
- 关于 RIAEasy 的开篇
- 关于Microsoft JET Database Engine 不能打开ACCESS数据为的错误
- 关于web工程报错的问题 [SetPropertiesRule]{Server/Service/Engine/Host/Context}