摘要: 這里說一下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的形式加載。
閱讀全文