首先要感謝旗艦工作室的倒掉,讓我可以名正言順的使用FlagshipEngine這個名字,話說這個實驗引擎,當初只是我的大學畢業(yè)設計,工作之后實在太忙,寫寫停停,進度緩慢,到今天也只能算V0.001,其特性主要有以下三點:
一、多線程
多核CPU早已普及,但3D引擎卻遲遲不能享受到其好處,還僅僅停留在資源異步加載,音頻獨立線程等不疼不癢的應用,就在一年前吧,公司的牛人們?yōu)榱藘?yōu)化骨骼動畫和粒子計算煞費苦心,這兩樣計算,特別是在無法控制同屏資源的網(wǎng)絡游戲中,對CPU資源的占用非常可觀,自然也拖累了游戲幀數(shù),于是我便有了將邏輯計算與渲染分離的想法。
FlagshipEngine實現(xiàn)了一套沒有線程同步的雙線程結(jié)構(gòu),可以做到骨骼動畫、粒子計算、光源移動等邏輯計算分離到一個單獨的線程運行,完全不影響渲染幀數(shù)。
二、shader渲染器
DX10已經(jīng)放棄了固定管線,那么我們也沒理由再留戀它,完全基于shader的渲染器實現(xiàn)起來更加清晰簡潔,并且易于擴展,目前FlagshipEngine已經(jīng)實現(xiàn)了DX9和DX10兩個渲染器,可以方便的添加特效。
三、統(tǒng)一剪裁
場景組織和剪裁永遠是3D引擎的核心功能,視錐、四叉樹、BSP、Portal如何選擇,如何統(tǒng)一是個難題,我的做法是將所有的剪裁都抽象成剪裁面,并用壓棧和出棧的方式,遞歸的對場景進行剪裁,另外我們還可以對大塊實體綁定簡單模型的遮擋體,使用邊緣檢測算法生成遮擋剪裁面,實現(xiàn)遮擋剪裁。
這套機制還沒有經(jīng)過嚴格的測試,有待進一步的驗證。
就這么多了,希望它有朝一日能修成正果,阿門。。。