【云渲染干貨】發(fā)光圖引擎的一些主要參數(shù)
最小速率和最大速率到底代表什么意思?
最大值如果為零,有一個(gè)特殊的含義。如果這個(gè)值是零,當(dāng)前渲染這個(gè)圖是640x480,那么它最密集的時(shí)候就是橫向采640個(gè)點(diǎn),縱向采480個(gè)點(diǎn),相當(dāng)于每個(gè)像素點(diǎn)采樣。這就是最大速率值為0的意義。所以這個(gè)最小速率、最大速率與最終渲染出的圖的大小是有關(guān)系的。
如果最大速率值為-1,就代表是當(dāng)前出圖分辨率的一半。比如假設(shè)所有的場景都使用-1(最大速率和最小速率都是-1),那就表示各處的采樣間距是相同的。是當(dāng)前分辨率的一半,也就是橫向采320個(gè)點(diǎn),縱向采240。比如我們把剛才渲染的圖像顯示出來,點(diǎn)幀緩沖區(qū)。
如果最小、最大速率均為0,每個(gè)點(diǎn)都會進(jìn)行采樣;如果兩個(gè)值都是-1,就是每隔一個(gè)像素點(diǎn)進(jìn)行采樣。這樣的密集度大家應(yīng)該就可以理解了吧。所以-1就是當(dāng)前分辨率的一半。
? 那么-2就是當(dāng)前分辨率一半的一半,以640x480為例,分辨率就是160x120,并以此類推。-3就是原來的八分之一。所以這個(gè)值的最終判斷就是:這個(gè)值其實(shí)是2的冪次方。如果這個(gè)值是正值,比如3,那就是2的3次方,也就是8倍.如果是-3,2的冪次方也是8,就是八分之一。
所以比如最小速率改為-6,那2的6次方就是64。那最小采樣速率有多稀疏呢?它的稀疏度是你當(dāng)前的出圖分辨率的64分之一。那就是說最稀疏的地方橫向只采10個(gè)點(diǎn)(640除以64),縱向就是(480除以64)7.5個(gè)點(diǎn)。事實(shí)上這是一個(gè)官方的解釋,我們看一下效果。最小速率為-6,最大速率為-3進(jìn)行渲染,觀察一下效果。
大家可以看到墻面這個(gè)地方是最稀疏的,根據(jù)當(dāng)前這個(gè)圖像大小可以看到,基本上約等于十分之一。也就是說縱向最稀疏的地方才采10個(gè)點(diǎn),是這樣子的一個(gè)稀疏度。密集的地方就是-3.這就是最小速率以及最大速率的區(qū)別。
那么在這兒可能有人會問:這個(gè)值如果是零的話,已經(jīng)代表著哪些像素點(diǎn)采樣?如果當(dāng)前640x48大小的話,已經(jīng)達(dá)到最高采樣了。也就是說每個(gè)像素點(diǎn)都進(jìn)行采樣了。那么這個(gè)值超過零還有意義嗎?如果單純就渲染一張圖而言,如果這個(gè)值為0肯定基本上是最大值的,設(shè)定為超過0沒有什么意義。那它為什么它允許你改成1或2或3呢?原因就在于光子貼圖下面有個(gè)模式。這個(gè)模式就是我們可以把光子貼圖保存起來,利用光子貼圖渲染一個(gè)大圖或者是一個(gè)漫畫等等。這個(gè)隨后會進(jìn)行講解,在這兒先暫時(shí)提一下。
一般來說-5和-2就能出很好的效果,然后根據(jù)你的場景稍稍調(diào)一下顏色閾值、距離閾值、和法線閾值。不過很少有場景需要三個(gè)值都去調(diào)的。
我們再來看一下細(xì)分,細(xì)分決定了采樣點(diǎn)的精確度。什么叫采樣點(diǎn)的精確度呢?比如這個(gè)點(diǎn)我們確定要采樣了,那么這個(gè)點(diǎn)的亮度到底是多少呢?如何進(jìn)行運(yùn)算呢?我們來看一下發(fā)光圖引擎的圖解。
攝像機(jī)發(fā)生一條光線到方框點(diǎn),然后根據(jù)發(fā)光圖的判斷,那什么叫根據(jù)它他的一個(gè)判斷呢?因?yàn)榘l(fā)光圖是一個(gè)自身細(xì)分,它得需要判斷一下這個(gè)地方值不值得采點(diǎn)。判斷的原則就是上篇文中講到的閾值,根據(jù)三閾值判斷。
當(dāng)它判斷出紅框點(diǎn)需要采點(diǎn)的時(shí)候,那么它就會向外發(fā)射光線。這個(gè)發(fā)射光線類似于BF算法的分裂。它要綜合考慮從各個(gè)物體反射的光線。比如當(dāng)它判斷這個(gè)黃色的瓶子的亮度有多亮?xí)r,除了直接照明、它還要判斷沙發(fā)、相框、墻面反射給瓶子的光線。那么它到底從多少條光線來考慮這個(gè)點(diǎn)的亮度有多亮呢?這就是我們所說的細(xì)分值的意義。這個(gè)值越高所運(yùn)算的點(diǎn)的亮度將會更加準(zhǔn)確。這是一個(gè)非常好理解的參數(shù)。
我們再看一下BF算法,我們知道使用bf算法,他它會根據(jù)細(xì)分值進(jìn)行分類,如果數(shù)值為8,表示分裂條數(shù)為64條。所謂的分裂是個(gè)反向預(yù)算,也就是它會從64個(gè)地方來進(jìn)行判斷,這個(gè)點(diǎn)到底獲得多少光照,最終決定它有多亮。那么細(xì)分值也是如此,細(xì)分值就代表發(fā)光圖引擎判斷一個(gè)點(diǎn)的亮度會從多少條光線進(jìn)行考慮。所以這個(gè)值越高,每個(gè)采樣點(diǎn)的精度也就越高。
你還會發(fā)現(xiàn)一個(gè)奇怪的特點(diǎn),首次引擎你可以選擇發(fā)光圖、光子圖、BF、燈光緩存。可是二次引擎不能選擇發(fā)光圖,只能選擇其他三個(gè)引擎。講到這里應(yīng)該明白為什么會有這種設(shè)定,因?yàn)榘l(fā)光圖是唯一的一個(gè)完全自身細(xì)分,她需要在攝像機(jī)初始發(fā)射光線時(shí)就做出判斷,到底哪里需要進(jìn)行細(xì)分。然后將這個(gè)信息傳遞給二次反彈,以便進(jìn)行運(yùn)算。
所以從這個(gè)角度而言,自身細(xì)分肯定只能用于首次引擎,不可能用于二次引擎。因?yàn)榈蕉我娴臅r(shí)候攝像機(jī)就已經(jīng)不能保證是否能夠看到這個(gè)物體了。所以二次引擎不可能使用發(fā)光圖進(jìn)行運(yùn)算。
以上就是我們講的發(fā)光圖引擎的參數(shù)。還有一些比較簡單的參數(shù),比如說”使用攝像機(jī)路徑“。這是一個(gè)很重要的參數(shù),但是現(xiàn)在并不適合,所以我們回過頭再講它。還有”插值幀數(shù)“,插值采樣下面這個(gè)灰色的參數(shù),這也是非常有意義的,僅僅在于”動畫渲染“是這個(gè)值才有意義。還有”顯示計(jì)算相位“,它表示在渲染是它會顯示一個(gè)計(jì)算相位。
內(nèi)容來源于簡一空間表現(xiàn),版權(quán)歸原作者所有;
本資料僅供學(xué)習(xí)研究之用,若此圖庫侵犯到您的權(quán)益,請與我們聯(lián)系刪除;














評論(0)