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