永远也不完美的程序

不断学习,不断实践,不断的重构……

常用链接

统计

积分与排名

好友链接

最新评论

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。

posted on 2014-02-01 18:29 狂烂球 阅读(1595) 评论(1)  编辑 收藏 引用 所属分类: 图形编程

评论

# re: 2012-2013年AIREngine开发总结及未来展望 2015-01-17 16:06 果酸祛痘

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


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理