首先要感谢旗舰工作室的倒掉,让我可以名正言顺的使用FlagshipEngine这个名字,话说这个实验引擎,当初只是我的大学毕业设计,工作之后实在太忙,写写停停,进度缓慢,到今天也只能算V0.001,其特性主要有以下三点:
一、多线程
多核CPU早已普及,但3D引擎却迟迟不能享受到其好处,还仅仅停留在资源异步加载,音频独立线程等不疼不痒的应用,就在一年前吧,公司的牛人们为了优化骨骼动画和粒子计算煞费苦心,这两样计算,特别是在无法控制同屏资源的网络游戏中,对CPU资源的占用非常可观,自然也拖累了游戏帧数,于是我便有了将逻辑计算与渲染分离的想法。
FlagshipEngine实现了一套没有线程同步的双线程结构,可以做到骨骼动画、粒子计算、光源移动等逻辑计算分离到一个单独的线程运行,完全不影响渲染帧数。
二、shader渲染器
DX10已经放弃了固定管线,那么我们也没理由再留恋它,完全基于shader的渲染器实现起来更加清晰简洁,并且易于扩展,目前FlagshipEngine已经实现了DX9和DX10两个渲染器,可以方便的添加特效。
三、统一剪裁
场景组织和剪裁永远是3D引擎的核心功能,视锥、四叉树、BSP、Portal如何选择,如何统一是个难题,我的做法是将所有的剪裁都抽象成剪裁面,并用压栈和出栈的方式,递归的对场景进行剪裁,另外我们还可以对大块实体绑定简单模型的遮挡体,使用边缘检测算法生成遮挡剪裁面,实现遮挡剪裁。
这套机制还没有经过严格的测试,有待进一步的验证。
就这么多了,希望它有朝一日能修成正果,阿门。。。