其實(shí)我已經(jīng)寫(xiě)瘋了,所以現(xiàn)在我似乎都不知道應(yīng)該寫(xiě)什么來(lái)介紹它好。
然而,我剛剛畢業(yè)了,離開(kāi)了舒服的學(xué)校,接下來(lái)必須面對(duì)吃飯問(wèn)題。
所以、開(kāi)門(mén)見(jiàn)山,我現(xiàn)在發(fā)布的 BloomingQuad 其實(shí)并不完善(應(yīng)該說(shuō)相當(dāng)不完善),我 90% 是為了找工作才發(fā)布的,又或者說(shuō),希望能找到懂得它的作用和意義的合作伙伴。
很多人說(shuō)我不切實(shí)際、又說(shuō)我開(kāi)發(fā)些沒(méi)有 P 用的東西,也有很多人不屑,我不在乎,因?yàn)橹灰@個(gè)世界上依然有一個(gè)人懂得下面這些東西是什么,那就已經(jīng)足夠了。當(dāng)然,還希望那個(gè)人能支持我繼續(xù)做下去。

但也必須先講明白,開(kāi)發(fā)和維護(hù)這么一個(gè)東西,是極其不容易的,在目前來(lái)說(shuō)投入與產(chǎn)出可能不成正比,它的價(jià)值,必須在一段時(shí)間的積累后才能看到。 Pixar 開(kāi)發(fā)的 PRMan 也不是一年半載就能為它渲染電影的,80 年的項(xiàng)目,到了 95 年才渲染出第一部動(dòng)畫(huà)電影。
盡管這是一場(chǎng)持久戰(zhàn),但若我們真想達(dá)到 Pixar 的高度,一味地研究別人開(kāi)發(fā)出來(lái)的軟件和技術(shù)是徒勞的,鼻子將永遠(yuǎn)被別人牽著走。
那么除了開(kāi)發(fā)一個(gè) PRMan 的替代品外,我也自認(rèn)通過(guò)這個(gè)渲染器的開(kāi)發(fā),我已經(jīng)對(duì)整個(gè) RenderMan 體系有非常深入的了解,甚至對(duì)各種渲染器的工作體系和結(jié)構(gòu)有了很深刻的認(rèn)識(shí)。不僅僅是 RenderMan ,MentalRay 的 MI 架構(gòu)也是我的重點(diǎn)研究部分,BloomingQuad 的前幾版所使用的 Scene Description 就是類(lèi) MI 的節(jié)點(diǎn)式結(jié)構(gòu)。
不過(guò)后來(lái)我覺(jué)得 RenderMan 比 MentalRay 要流行得多,而直接使用 RIB 會(huì)更劃算,于是我開(kāi)始把整個(gè)結(jié)構(gòu)體系進(jìn)行重寫(xiě),以 RI Spec 3.3 為標(biāo)準(zhǔn),力求可以完全符合 RI Spec 3.3 ,希望能渲染出和 PRMan (在輪廓和基本要素上)一致的圖像。
當(dāng)然這是非常艱難而痛苦的,特別是一個(gè)人、只能利用課余時(shí)間編寫(xiě)。
而最后,為了找到商業(yè)使用的機(jī)會(huì),我修改了一下內(nèi)核,使它能實(shí)現(xiàn)簡(jiǎn)單的 Realtime Raytrace,以直觀的方法表現(xiàn)它到底有多快。


支持 RSL 的編譯與執(zhí)行、上面的三個(gè)物體都分別使用了編寫(xiě)的 Shader ,盒子用了 Slim 生成的 Worley ,平面用了 step( x , mod() ) 形式的 Grid ,球體利用 s 坐標(biāo)混合了 Thead 和 Spline ( Noise( P ) )。
另外我也終于完成了持久的“抗戰(zhàn)”,寫(xiě)出了一個(gè) RenderMan Shading Language 編譯器與執(zhí)行虛擬機(jī)。這個(gè)編譯器符合 RI Spec 3.3 標(biāo)準(zhǔn),能成功編譯出 Slim 生成的各種 Shader ,而且支持 Constant Folding、Instruction Replacement、Dead Code Elimination 等優(yōu)化。但目前它的光照部分(包括 Illumination 和 Illuminate 、Solar、Ambience)都在測(cè)試中,Gather 正在編寫(xiě),而 Occlusion 和 Indirect Diffuse 只能靠命令行激活。
相信有更多人(可能一共才只有幾個(gè)吧)會(huì)關(guān)心它到底怎么在 Max、Maya 、XSI 中使用,其實(shí)很簡(jiǎn)單,RIB 非常流行,幾乎所有的大型軟件上都有導(dǎo)出 RIB 文件的軟件,MAX 有 maxman,Maya 有 RAT、mayaman、liquid,XSI 有 rib 插件,LW 有 Lightman,Houdini 本身直接支持,所以根本不需要擔(dān)心、所有的大型軟件都能和 BloomingQuad 進(jìn)行溝通。
而且我能保證 MTOR 從 Maya 里導(dǎo)出的東西能大部分正確渲染。
大部分是指哪些部分呢?其實(shí)目前僅僅是指多邊形而已,而且最好是三角片面的多邊形,又或者保證“合法”的多邊形,若有重邊或者法線有問(wèn)題,都不能渲染。
上面測(cè)試用的兩個(gè)人頭模型,都是我自己在 Maya 里做的,然后用 MTOR 導(dǎo)出來(lái)渲染的,可以看看它到底渲染出來(lái)的結(jié)果準(zhǔn)確不準(zhǔn)確。
如果你想直接在 Maya 里渲染 —— No problem ,在 RAT 里設(shè)置一下就 OK 了。
也可以在 Maya 里啟動(dòng)實(shí)時(shí) raytrace ~
為了要說(shuō)明它是 Realtime 的,我還設(shè)計(jì)了幾個(gè)按鍵,i k l j , . 這六個(gè),可以移動(dòng)鏡頭,很簡(jiǎn)陋的功能而已,當(dāng)然可以做得更復(fù)雜一些,但我目前只是演示一下我能做到什么地步,而怎么再精益求精則是在我解決了工作問(wèn)題之后再想的事情了。
那么基本上都講得 7788 了,開(kāi)發(fā)過(guò)程還有很多有趣的東西,不過(guò)這只是很少數(shù)比較關(guān)心開(kāi)發(fā)的人想要知道的。
下載:
p.s.