摘要: 这里说一下Freetype的关键点,比较基础的在很多文章已经有说明,这里就不详细说明了。
FreeType每个字符的加载,可以影响到后面对字符图像的处理。
阅读全文
摘要: 首先确定阴影的最基本原理:
阴影是以光源作为摄像机(叫作Camera_light),光照方向作为摄像机的look的方向,然后把这个摄像机看到的场景物渲染到纹理,这个纹理就叫shadowmap。
阅读全文
摘要: 1.纹理
在gles2中,纹理在glsl中定义的顺序,并不是按先后顺序来排列的。
阅读全文
摘要: 2012-2013年AIREngine开发总结及未来展望
阅读全文
摘要: 这里说的是一些常规的人没考虑到的效果。
1、精确拾取的实现
一般普通的拾取就是AABB,再是OBB,或者是遍历一个模型的面。这三种方式都有缺陷。
阅读全文
摘要: 谈到游戏中的性能优化,说白了就是如何提高帧率和降低内存。
提高帧率的基本原则就是减少DP次数,还有是找出时间消耗高的程序代码加以修改。
阅读全文
摘要: 现在游戏的UI五花八门,什么需求都有,特别是涉及到充值那块,对内嵌网页要求就更多。
那么怎么实现一个UI里的内嵌网页呢?这个网页还要跟着这个UI移动。
阅读全文
1、渲染状态归类封装
DX9下的渲染状态比较乱,不像DX11那样把渲染状态归为几类。按DX11的归类,同样也适应DX9的API。
2、VertexDeclaration从VertexBuffer里改成封装在VertexShader里。
这里要说明一下,VertexDeclaration封装在VertexBuffer里本来就是不太合理的,因为VertexBuffer就是一个Buffer,实际上和顶点格式关系不太大。而且,dx11中的inputlayout的创建还依赖于shader的创建代码,因此,必须要把vertexdeclaration移到vertexshader里。而这种做法会引起DX9的一个问题,下面会说明到。
3、引擎所有渲染都用上shader,全面抛弃固定管线。
正如上面说到,如果vertexdecalaration的创建要依赖于shader,那么固定管线下就不能再自己创建vc(vertexdeclaration)了,而考虑到引擎要支持双渲染器,所以有些操作要统一,就不保留固定管线了。
4、GPU参数设置的调整
之前GPU的参数更新封装在一个类GPUParameter里,主要是负责GPU参数的值的设置,但随着DX11的加入,这里问题就出来了。DX9下面,没有constantbuffer的概念,只有一个一个参数设置到寄存器,而原来引擎的设计就是针对DX9的这套机制来实现的。所以,现在引擎作出调整,在dx9渲染系统下建一个类D3D9GPUParameters继承自GPUParameter,DX9下如何设置参数在这个类下实现。
5、RenderTarget的接口改变
DX11下是把所有RenderTarget放到一个数组中然后设置进去的,而DX9是一个一个设置进去,所以当要实现multirendertarget的时候,如果引擎要适应两种渲染器,那只能用DX11的设置方法了。
摘要: vertexdeclaration在引擎中,原来是直接放在vertexbuffer里面,当设置这个vertexbuffer的时候再设这个declaration,在DX9中看似没问题,因为每个vertexbuffer都有自己的顶点格式。
阅读全文
摘要: AIREngine已经支持插件式的开发,即不需要开发人员在工程上连接某个DLL和lib,直接通过LoadLibrary的形式加载。
阅读全文