2012-2013年AIREngine开发总结及未来展望

2012-2013年AIREngine开发总结及未来展望

2012年因为时间问题,主要精力花在DX11的开发上与为适应DX11对引擎的修。
都说2013年是手游年,因此2013年中开始做gles2渲染器的开发。

一、引擎设计上的改变
1)RTT设计的改变。原来的RenderTarget类废弃掉,改为TextureRenderTarget类。
这样修改的好处是,原来RenderTarget不再需要装渲染流程,让引擎代码简洁起来,渲染对象就是一个渲染对象,没有流程 可言。
TextureRenderTarget继承自ITexture,表明这个RTT可以作为输入的纹理来使用。

2)DepthStencil类的诞生,解决深度在RTT中的关联问题,还有效的解决了shadowmap中的深度图作为纹理的问题。
这个类代表的是深度缓冲,原来直接在RenderTarget的类里关联深度缓冲,这个类现在废掉,意味着深度缓冲可以单独拿出来使用,只要在外层设置RTT的时候设定是否需要这个类就可以了。
而且可以把深度纹理解放出来,因为shadowmap的问题,原来要有一个叫深度纹理的东西与纹理偶合在一块。

3)渲染流程的封装
因为不同的RTT确实有不同的渲染流程,但大多的RTT的流程是一样的,所以需要封装一个渲染流程的类,这个类会引用到相关的RTT。
因此,把RTT中的摄像机,渲染流程都抽到外层去了,这样整个引擎更加灵活。而且适用性更高。

二、适应GLES2所做出的设计上的修改。
1)ShaderObject类的诞生
因为gles2有个shaderobject的对象,这个东西必须要把VS和PS关联起来,在d3d下是完全没必要的,因此地奈之下生成了这个类。

2)引擎代码和解决方案用premake生成
通过lua文件来配置环境与各项目的属性

三、gles2渲染器的实现。
这里太多的坑和细节,不在这单独写了。


四、2014年工作重心
1)gles2的完善
2)移动平台环境的搭建与编译,现在gles2的开发是用powervr来模拟开发,还没在真正的移动平台上跑过相关的程序。有经验的朋友提醒我:这个得及是弄,越早越好!
3)前两个完成后,在dx11环境下实现skin instancing、延迟渲染和cascade shadowmap。

你可能感兴趣的:(2012-2013年AIREngine开发总结及未来展望)