关于FlagshipEngine

来源:互联网 发布:python 股票图 编辑:程序博客网 时间:2024/06/08 17:48
   首先要感谢旗舰工作室的倒掉,让我可以名正言顺的使用FlagshipEngine这个名字,话说这个实验引擎,当初只是我的大学毕业设计,工作之后实在太忙,写写停停,进度缓慢,到今天也只能算V0.001,其特性主要有以下三点:

一、多线程
      多核CPU早已普及,但3D引擎却迟迟不能享受到其好处,还仅仅停留在资源异步加载,音频独立线程等不疼不痒的应用,就在一年前吧,公司的牛人们为了优化骨骼动画和粒子计算煞费苦心,这两样计算,特别是在无法控制同屏资源的网络游戏中,对CPU资源的占用非常可观,自然也拖累了游戏帧数,于是我便有了将逻辑计算与渲染分离的想法。
      FlagshipEngine实现了一套没有线程同步的双线程结构,可以做到骨骼动画、粒子计算、光源移动等逻辑计算分离到一个单独的线程运行,完全不影响渲染帧数。

二、shader渲染器
      DX10已经放弃了固定管线,那么我们也没理由再留恋它,完全基于shader的渲染器实现起来更加清晰简洁,并且易于扩展,目前FlagshipEngine已经实现了DX9和DX10两个渲染器,可以方便的添加特效。

三、统一剪裁
      场景组织和剪裁永远是3D引擎的核心功能,视锥、四叉树、BSP、Portal如何选择,如何统一是个难题,我的做法是将所有的剪裁都抽象成剪裁面,并用压栈和出栈的方式,递归的对场景进行剪裁,另外我们还可以对大块实体绑定简单模型的遮挡体,使用边缘检测算法生成遮挡剪裁面,实现遮挡剪裁。
      这套机制还没有经过严格的测试,有待进一步的验证。
      就这么多了,希望它有朝一日能修成正果,阿门。。。
原创粉丝点击