2008/11/17

35個你不可不知的3dsmax plugin免費外掛網站


說在3ds max發展的歷史當中, plugin外掛就扮演了一個重要角色, 我們甚至可以說這套軟體 根本就是多個外掛搭建而成 在舊版的max中你甚至還可以看到各個小外掛的遺跡 直到3dsmax9才將這些小外掛整合(或是隱藏起來?)到主程式中. 就使用者來說 不安裝一兩套不管是免費或是商業外掛 似乎就不能做很多事 就軟體開發商而言似乎也是如此. 也就是因為如此造就了3ds max廣大的用戶群與廣大的免費外掛資源. 本站特別企劃網羅全球各地 重要的免費3ds max plugin外掛網站 提供約35個網站資料 依排名依依位網友介紹哪裡有好康的下載.

1. 第一名的網站是Maxplugins.de. 這是3ds max外掛的終極網站 是全球 全世界甚至是全太陽系最有系統整理付費或免費3ds max外掛的網站了. 入口是以max的版本區分區塊. 如果你不想管哪個版本的話可在搜尋的時候勾選 "All versions".
Image Hosted by ImageShack.us

2008/10/06

The Science Of CG 渲染背後的科學

圖要真實 除了燈光, GI參數設置之外, 材質本身也是非常重要的. 成功的渲染圖, 這三項因素缺一不可. 材質其實有很多不同的明暗器(shaders) :某些明暗器比較貼近真實世界的光影變化 某些則是比較陽春, 在本篇的討論串中你可以看出材質的重要. 另外RAW格式與光譜算圖也有稍做討論. 

這篇文章翻譯自CGTALK的討論串, 標題雖是The Science Of CG, 但主要還是圍繞著CG算圖/材質在討論, 來自烏克蘭的網友mister3dplaymesumch00ns提供了非常棒的文章與插圖, 所以特地選了這篇翻譯成中文跟各位網友分享.

-----以下翻譯自CGTALK討論串-----

標題: The Science Of CG 渲染背後的科學

Dtox: 我不小心逛到同樣標題的討論串。 但是,為認為在那一帖中討論的不是很多。我簡直不敢相信,那帖沒有真正的深入討論。在那帖中有位老兄想討論CG的物理,希望能夠幫助軟體操作的觀念。 雖然有些人的答覆都是有益的,但它並沒有給任何人真正討論方向。

有位提到想知道如何光如何運動,這樣一來他就可以根據光的理論來套用在他的軟體使用上。 
這是我認為每個人都想要知道的。大多數的答复是“去學一下藝術理論吧” ,或“管他的 只要調整參數看起來像, 就對了” 。 雖然這樣說有其原因,但我認為還有更中庸的做法 。學習傳統藝術能夠更了解CG原理是一個基礎,但是在理論與實務之間還有其他灰色地帶。 
尤其是關於打燈照明技術(lighting)。

光線受到物理法則所規範,如果你能更了解這些物理學,調整CG光線時就能得心應手。 如果您是3D動畫的老手,當然你會很了解怎樣打燈.但是,如果你還是菜鳥的話, 除非你是學物理的或是很有興趣, 否則你不太可能很了解打燈技巧。例如, “平方反比定律”並不只適用於光線,如果在CG的世界裡面 也可以應用在照明技術(lighting)。 反平方定律就是:物體與光線的距離每增加一倍, 光照強度就是原本的四分之一。比較有經驗的藝術家會注意到這點,喔, 誰不知道這的定律呢? 但如果你看看WIP討論板,你會發現到很多人其實忽略了“平方反比定律”。

我認為(IMO= In My Opinion),這很重要,如果你是剛接觸CG照明,並希望得到真實的算圖效果。我個人很喜歡燈光照明技術,因為我對物理學感興趣。 討論照明是很棒的,因為對大多數人照明是很複雜的。

cryptosporidium: 我認為這欄會是非常有趣的帖,我個人喜歡用“物理正確”的方式去做燈光照明。但是:就我所知,只有極少數人關心物理學。絕大部分的電影製作讓你不得不用藝術的角度來調整光線 。你必須讓整個效果看起來好看且有趣。無論是物理上不正確,而且常常導演要的東西都不是物理精確的效果。有趣的是, 如果你真的用所謂的物理精確的參數去計算CG照明/材質, 算圖時間可能會百萬年後才會計算完(reach astronomic values)。我想這也就是為什麼這樣的主題沒有受到重視。但是,我必須同意,了解物理學可以幫助您的工作。

mister3d: 這是個好問題。大多數用戶是隨意地控制參數而不是依循物理法則。一旦了解算圖物理學後,這些觀念會跟著你一輩子而且能夠套用到任何一種渲染器中。

光跡追蹤(retracing)是以物理為基礎的(模擬光的行為,但其實不是物理精確的計算),渲染器外掛的使用手冊都是這樣寫的。所以,其實你需要學的是物理學而不是只是CG照明。而如果你想學習CG照明還需要你不僅需要學習CG照明, 你還需要學習傳統照明。研究這照明時, 你不能不考慮材質與相機參數。 

(Image courtesy of mister3d)

有分直接和間接照明的差別。直接照明是說光線打在物體表面就停住了,因此沒有光線反彈。這絕不會發生在真實世界。

我認為,能量守恆定律可應用到任何反射材質上, 這個反射數值不能超過光源的強度,所以反射光線會比原始光源暗一點,所以光線是以平方反比做衰減。

當光線打到表面可能會發生以下情形:吸收, 反射 ,折射(或是不完全折射) 。反射或折射有可能是漫射性質或是高光性質(specular)。

如果光線在漫射性質的表面反射則會發生混色/出血(color-bleeding)現象。 
如果光線在高光性質的表面反射則會發生焦散(caustics)反射的現象。 
如果光線穿透折射物質則會發生折射焦散的現象。 
如果光線被物質表面吸收並且產生些微漫射折色(diffused refraction), 則會發生次表面散色(subsurface scattering)現象。而且, 材質必須要有點折色屬性才能發生次表面散射現象。吸收光是漫射折色外加漫射屬性,這種現象已皮膚為例就是由水和肉構成,因此會同時有散色與折色的性質..

除此之外, 還有焦散散射折射(caustics dispersion of refraction)現象,但相當罕見,鑽石就有這種現象。它看起是彩色的折射




光源可能距離非常遙遠,這種情況我們就不使用平方反比定律(但照我理解,他還是有衰減現象, 但為了計算方便我們不考慮衰減, 要不然我們就要把光源放在億萬英里遠的距離, 就好像太陽跟地球的距離一樣。因此,我們只好省略這類光源的平方衰減性質) ,除非, 光源不亮也不遠----我們就會套用平方反比衰減定律。這就帶出了一個非常重要的觀念----場景的單位是很重要的,因為光的衰減和它所在的空間尺度有關。 
光線陰影的銳利度受到光源大小所影響。

有一個定律是說: 反射優先於漫射,而折射優先於反射。這表示,如果您有一個強烈反射材質,例如金屬,您幾乎看不到他的漫射效果。因此, 100 %的反射= 0 %漫射。 100 %的折射情況下----還能看到一點反射效果,但是漫射則完全看不到(這時候漫射乾脆設定成黑色好了) 。 

所有物質表面都會反射!全世界反射率最低的物質也有0.045的反射率. 大部分的物質表面具有漫射性的反射,鏡面反射則很少見。為什麼某些物質具有鏡面反射而某些物質只有漫射性反射?因為任何物質表面都有許多微小的結構面(microfaceted), 這些結構不容易被肉眼觀察出來,如果是鏡面反射的話 其微表面產生的反射射線是往同一個方向, 漫射反射則是為表面產生的反射方向是多方向的。

這世界上有兩種個類型的材質:金屬和其他材質。所有材質都會有菲涅爾(Fresnel)反射效果,沒錯全部的材質都有!所以,你應該每次都套用這樣的反射類型。Fresnel並不是簡單的衰減曲線效果:它是一開始是緩曲線, 然後在端點的地方有個陡峭的線段。而金屬有更加突出的反射屬性,例如80 \ 100的反射值,這時候您的漫射應該改成黑色因為這時候的反射是優先計算的。

只有金屬會有彩色的反射效果,因此,如果您需要製作任何非金屬的反射效果, 它的反射就只會是黑白反射而已。 

還有一個數值: 反射折射率與折射反射率,這兩個數值一定會相同。你可以在表中查到這些數值。的這些數值會控制物體反射/折射的效果, 同樣的數值在金屬則是會稍微亮一點。

playmesumch00ns: 景深發生原因,是因為透鏡的聚焦光線來自於一個圓錐的頂點投射到底片盒(film back)。這個圓錐的長度與物體到項機的距離, 和鏡頭在相機中的位置有關。如果底片沒有恰好擺在這個圓錐的頂點位置,則圓椎與底片會形成一個圓形的交錯(the circle of confusion) 。這就是為何當3D的點投射到底片時會變成圓形 而且影像會變的模糊。

您對物體反射的解釋有點不清楚。希望我以下解釋會更清楚。有兩種類型的材質:導電材質(金屬)和非導電物質(dielectrics)(其他非金屬材質) 。當光子打到物體表面時, 有三種情況可能會發生:吸收,反射或穿透。

1 )吸收。光能轉化為熱能,然後就消失了 。當然這不是真的消失,但在渲染時我們只關心光線而不管熱能。實際應用時, 表示任何材質都不該有100 %的反射屬性, 如果你想製作真實的材質效果。

2 )反射。光子從表面反彈。實際的光子反彈方向是受到物體表面的細微幾何結構(microgeometry)影響。非常光滑的表面會產生完全相同的反射方向(就像鏡子一般),如果是非常粗糙表面會產生散射光, 往各個方向反彈(但是不是真的往四面八方反彈) 。我們把平滑表面所產生的反射稱為高光反射(specular reflections), 從粗糙表面產生的反射稱為“漫反射”(diffuse reflections) ,介於兩者之間的反射稱為 “光滑反射”(glossy reflections) 。

非導電材質的反射總是與光源顏色相同,所以他們所產生的反射是“白色”的 ,而導導電物質則會讓反射的光線帶有顏色。導電物質會反射出怎樣顏色的反射光線是根據材質的化學結構與入射角度有關。例如光子撞擊到黃金表面, 比較淺的入射角所產生的黃顏色會比直接打到黃金表面的光線顏色來的不明顯。

3 )穿透光(Transmission)。光線穿透到物質裡面就是“折射” ,它使光線的運動方向改變。確切的光線折射方向是根據材質的折射率,以及光線的入射角。表面的細微構造可能會導致光線往多個方向分散運動,就好像漫反射或光澤反射(glossy)那樣。這種效應造成光線穿透毛玻璃(frosted glass)產生霧霧的效果。

只有非導電的物質(dielectrics)可以被光線穿透。光線的穿透或是反射是根據他的入射角與物體的直射率。我們利用菲涅爾方程式作為解釋這個現象的模型。基本上光線直接垂直打到物質表面會穿透過去,但是低的掠射角就會大部分產生反射。

上述事件只會有其中之一會發生在光子/物體表面的互動,但我們數學模型可能會導致難以想像的數值,因此, 在處理光線反應數學模型時, 我們會控制不同比例的光子做不同的反應。因此,金屬可能反射50 %的光子,並吸收剩下的50 %,對於玻璃來說,90 %的光子穿透,5 %反射 ,並吸收其餘的光子。

這個反射規則稱為規則反映了被稱為能量守恆:你反射的光子不該大於入設的光子數目。這種條件對大部分的渲染器是很麻煩的。常見的做法是採用相加層式的BRDFs (光照模型) ,在明暗器(shader)裡面含有漫射與高光反射的選項。你必須確保漫射與高光反射的總和不能大於1 ,這樣才能符合物理規則。當然,這不是材質真正運作的方式真正的材料的方式行事,但是這種做法讓數學式更容易處理。據我所知,只有maxwell 與fryrender渲染器具有這樣的參數。

當光線穿透到物質當中時, 就會發生次表面散射(Subsurface scattering)現象,光子會在內部彈跳。光線在內部相互作用會造成一些能量被吸收,通常是不同波長的光線,因此,當光線最終彈出去時, 顏色會比較暗而且會帶有某些顏色。只有非導電物質才會發生次表面散射,這是唯一一種情況非金屬物質會產生有顏色的反射(記得嗎 剛剛說過,非導電物質的反色總是白色的) 。所以每次當你看到一個彩色的物體,而這個物體不是金屬,光線穿透到物體內部,在內部反彈, 過程中產生有顏色的光線, 然後最後又彈出物體。

mister3d: 關於漫射,我不知道是不是有物理學上的根據,但除非是被折射或反射優先計算(在這種情況下,漫射是黑色的) ,漫射數值應該是在20-80 %的亮度範圍內,跟飽和度設定的概念是一樣的。這樣的設定能產生更好的照明效果----比較不會有過度曝光或是過黑的問題。


高光反射有同向性反射(isotropic)或異向性反射(anisotropic)。異向性高光反射與物體表面凹槽垂直的方向作反射,而同向性反射則是均勻分佈。 

談到攝影機,有曝光,運動模糊,景深,白平衡等效果。這些都很重要。但其他效果,主要是濾境造成的。

曝光是底片在光線底下曝露多久。暴露久一點---曝光比較亮,短一點---產生的影像比較黑。曝光是由:f-number(這個數值也控制景深) ,快門速度和底片速度( ISO ) 。 

運動模糊是因為快門打開足夠長的時間使運動物體在底片留下痕跡。

景深大多是由f-number所控制,但是它也受到鏡頭大小底片門(film gate),能創造失焦的效果,這對寫實渲染效果非常重要,例如微距攝影(macroshooting)。在現實生活中, 想要得到極端的景深效果代價是很昂貴的。天知道為什麼產生景深;也許鏡頭的快門區域部分被遮蔽, 造成了部份成像模糊的結果。

每個光源多少會有顏色(color temperature),但人眼會欺騙我們,當我們觀看光源時 人眼會很快適應讓你誤以為看到的是白燈。白色平衡是在白色的光源變的更藍, 藍的顏色變的更紅。 

下一步是你如何用CG軟體來實現這些物理效果,當然這是個大問題。

當然, 你還必須考慮到螢幕的影響:您的軟件必須有一個適當的校色功能---http://forums.cgsociety.org/showthread.php?f=2&t=188341 ,顏色溫度( 6500k )和伽瑪校正

如果你想造製作物理寫實的算圖效果, 你就必須要控制這些參數。下一步是如何使用您的渲染器實現這個目標,無論是利用與更先進的算法(光線跟踪)或以非物理演算法來計算(fake-based)(Rays) 。 

以上是基本的解釋。

playmesumch00ns: 全世界最反光材料是Spectralon ,它可以這反射大約90 %的入射光 (以接近lambertian的方式反射) 。一張白皮書是反射率大約有80 %。

全世界反射率最低的材料是到常見的iirc---大約有3 %的反射 。當然您是可以將反射率射為1 %,但大概只能在實驗室裡面才有可能有反射率那麼低的物質。

mister3d: 這是我讀過最棒的材料科學解釋,謝謝你,你的解釋比我更正確。特別感謝你對景深(DOF)的解釋。

我不太確定ㄟ, 如果真的是這樣的話,mental ray與vray的反射數值將超過1 ,對不對?事實並非如此。或者你是在談Maxwell與fryrender的另外一個數學模型 ?

然而,我想提一下光線分佈方式。在現實生活中光線會擴散,因此對於聚光燈來說你很少能看到尖銳的陰影。但是當你在3D軟體中製作聚光燈時,通常有1 \ 1的熱點\ faloff的比率 ,這是錯的。正確的比率應該是1 \ 10 ,這樣你才會有自然的衰減。只要跟區域光源比較你就知道,真實光源是應該怎樣表現的。

還有一點就是空氣透視效果:距離越遠的物體顏色會比較昏暗,是因為空氣含有小顆粒的灰塵,如果你是要表現物理真實的戶外場景就要考慮到這點。

為了說明色溫,色溫規則對我來說就是沒有任何規則。主要有兩種色溫表示方式---kelvins和流明(lumens),但如果你死板地使用的話你就只是一個調色溫的機器人,你應該要依據顏色來調整而不是kelvins和流明。一般規則是,室外光亮度比很多室內亮很多, 而且光源會有顏色。某些藝術家不使用任何有顏色的光源。這是因為他們認為眼睛會快速適應所觀看到的有色光源,將它們視為白色。但是,一但你用像機拍照的時候,你就會發現根本沒有這樣的事(除非你有設定白平衡whitebalance) 。請記住:顏色會影響心情,在電影中也使用有顏色的底片,所以為了要表現戲劇性的畫面你必須要研究色溫心理學。


thev: 你的說法有點過時了,最新的渲染器其實已經強制設定能量守恆的效果, 使用者根本不需要手動去設定---這包括V-Ray 與 mental ray渲染器。
(譯者註: thev是Vray的開發者之一)

playmesumch00ns: 不, 我說的是這些渲染器的反射數學模型。就我所知它們是用Schlick BRDF為基礎的數學模型 (但似乎比Schlick BRDF更好,因為我實際使用Schlick BRDF感覺根本不好用) 。不同的是,它們只有1個異向反射模型,而且這個反射模型可以表現由lambertian漫射到完美高光之間的連續變化狀態。因此,它們能夠比blinn-phong表現出更符合真實世界的效果。

老式的漫射+高光明暗器面著色(diffuse+specular shaders)做出來的效果其實效果也還不錯,因為大部分的常見物質都是有分層的或基板材料(substrate materials),例如:油漆,塑料或塗漆木材。這類材質,具有的漫射層,這個漫射層被高光層所覆蓋(例如油漆,塑料等漫射材料被高光材質所覆蓋) 。這類的材料可以被老式著色器很好地表現出來。你甚至可以用這類數學模型表現出合理的皮膚材質, 就像木材覆蓋一層亮光漆一樣。

正如thev所說,我的說法有點過時了,也許其他渲染器也有提供類似的參數設置,我很多年都沒用過v-ray/brazil/finalrender,目前則是不用mental ray。

thev: 目前還沒有一個解析BRDF數學模型,可以準確地表示世界上所有的材質; Cook-Torrance數學模型相當接近這個目標,但已採樣的觀點來說它不是很好用。最好的方法是用測量出來的BRDF數據,但即使這樣,通常需要一些逼近數字與某些假定。

mister3d: 還有一個東西,涉及硬表面模型,但是與照明有關的----那就是倒圓角(fillets)。倒圓角可以在高光燈光底下強化模型的表現。 但要考量倒圓角的實際尺寸。不要對建築物做10公尺的倒圓角;一定要依照實際尺寸來建立倒圓角。


我已經提過了,所有的物體在某種程度上都有反射的屬性。因此,如果你要表現寫實的算圖效果, 記得把所有的材質都套用上菲涅爾反射設定, 沒有例外。 
反射對於表現真實算圖效果是第二重要的(第一重要的是全局照明)(從技術上來講,天份才是最重要的) 
下面的例子說明有反射與沒反射的差別。看看有反射有多豐富的表現效果。這就是建築業不斷使用的----菲涅爾反射。


然而,在現實世界中反射大多是模糊,而不是鏡子一樣。跟銳利和柔和一樣的觀念。每次都使用柔和陰影,就不會錯了。儘管在許多初學者的作品中,你可以看到一輛汽車具有鏡面反射與銳利影子。



這是一個很深入的話題,但真實照明仍然很重要。在非常光明的影像中可能過於飽和, 看起來不正確,應該要在後製裡面作修正 ,無論是用Photoshop或在其他合成軟體。在真實的照片中暗部的地方表現是飽和的,但更明亮的地方應該會比較不飽。

cryptosporidium: 問到反射的顏色。你為什麼說所有的非導電物質都是反射白色呢?當你看看四周,很顯然所有的反射都是有色的。我的看法是,有色的反射並不是受到材質表面的影響,而是受到入射光本身的波長有關。換句話說,當被波長是紅色的光線射重時,反射的光線就是紅色的,這樣講有錯嗎?所以,我會說不導電的材質不會把反射的光線染上顏色,而相反的, 金屬會把反射光染上它的顏色,因此金屬的反射光可能是有點黃,有點藍或是其他顏色。如果我有講錯請更正我...

mister3d: 反射光看起來有顏色,是因為它們反射顏色,而不是因為材質將反射光染色,因此當你套用黑白的貼圖到材質上面時, 它將反射光源的顏色但是不會將光線染色。也許我用錯字了吧---不應該說是白色,而是它不反射顏色。我的意思是貼圖是黑白的,而不是說反射線不會反射顏色。

cryptosporidium: OK,我現在正確地理解這些材質了。非導電物質不會將反射光著色,但金屬會。 

playmesumch00ns: 當然可以。所有我見過不同的BRDF都能符合測量數據(A&S提供了最新的論文), 採用的是多重lobes數學模型。但這不是使用者想要花時間去調整的參數。

當我說Maxwell與Fryrender的BRDF模型在概念上比較好的原因是:在真實世界裡面真的會有lambertian模組外加上高光lobe的情況嗎?我認為Maxwell與Fryrender的數學模型更具有吸引力,因為它們更方便進行藝術性的調整,雖然我說過了,我還沒有看到這些渲染器能提供真實的皮膚材質

Dtox: 太好了, 你們所提供的資訊是我在整個cgtalk論壇裡面看過最棒且詳細的資料。

mister3d: Tox兄,以上是我對CG科學的說明,但是如果您想要更深入的資訊的話,我建議你讀這本書,我買了最近買了這本內容非常棒,這本書介紹了所有關於物體材質 照明等資訊http://www.amazon.com/Langfords-Bas...16178159&sr=8-1優秀的插圖, 已經出了第八版了,而且價格合理。

Dtox:我對攝影也有興趣。 我不是一個真正攝影師但我常會為了要參考圖去拍照。 光線讓我深深著迷。 特別當我可以把現實世界的照明融合到CG的世界裡。當我在使用CG攝影機時, 在想不知道有什麼關於CG動畫相關的理論。像是有沒有可能添加出了alpha與深度以外的通道到渲染器產生的影像當中。 

如讓你可以添加紅外線(IR)通道到你的攝影機參數中。例如讓攝影機,除了捕捉可見光光譜以外,還能添加紅外線通道,讓您可以編輯最後影像的可見光譜。 而且還可以讓您可以提供分pass。它不僅讓您可以控制燈光外,它也可以用來更準確地模擬爆炸的顏色效果從簡單的碳火,到噴氣機引擎,甚至恆星行程的效果和太空特效。

他們使用了類似哈伯望遠鏡的色彩技術。我談的是比較鬆散的講法。 除非你生成一個熱資訊的灰階圖像來模擬爆炸和熱效果,也可以用多種顏色表現溫度控制與照明。 甚至你可以用紫外線通道用來動態控制gamma。 更容易地模擬太陽光且更真實。

我不知道Maxwell, Fry實際上是怎樣計算,我甚至沒有一套V-Ray。我使用Cinema4D 10內建的高級渲染模組。但是當計算GI, SSS與焦散時會計算很緩慢。 所以,沒有辦法依照自己的想法去控制場景照明。 但長期來看C4D真的很容易製作逼真的影像。

Magnus3D: 我並不想開始發一個新帖,所以就直接在這裡問問題了。 當你們設定材質的時候(shaders),你會用怎樣的方法去設定?你是用物理精確的方式嗎?也就是說,您會用實際測量的數據來設定您的材質。或者你搜索大量的參考資料(圖片和文字)去設定材質,然後只用肉眼觀察參考資料來重建真實世界的材質?我把這種方法稱為從後拍照法(shoot-from-the-hip)。

上述兩種方法你最喜歡哪一個?或者你使用完全不同的做法呢? 

cryptosporidium: 當建立材質時,我是用眼睛觀察真實世界的材質效果, 讓它的視覺效果好看 不見得使用物理精確的數值。沒有人會管說IOR, BDRF等參數,只要可以讓材質看起來逼真就好。

BulletProof: 我同意。我真的不管物理上是否精確。我只用物理數值當作概括的輪廓。然後我微調參數達到我想要的效果, 這個效果不一定是相片寫實的。只要是最終材質的效果是你要的。

Magnus3D: 真有趣, 你們是採用後拍照法來設定材質,而不是用物理精確的方式。那我可不可以借問你們都是用什麼渲染器?

我使用的Maxwell 與Fry來算圖, 這兩個渲染器使用比較物理精確的方法設定材質,老實說,當你修該材質時能預測最後的效果感覺會比較好。我在Vray 或Finalrender裡面沒有看到如此簡單邏輯。 

BulletProof: 我自己是很喜歡使用MODO與其算圖引擎。很容易設置,也可以很快算出結果。因為我也用MAYA所以我的一些作品是用MAYA的MentalRay算圖。

cryptosporidium:我在製作電影特效十大部分都是用XSI / mental ray。更準確地說,能用這種物理精確的渲染器很棒, 我總是盡可能的使用這類渲染器. 但現實的情況是, 導演會告訴你,那邊太暗,那邊應該要多一點反射,你不可能跟導演說那樣改的話就會違反物理定律,因為我知道現實狀況不可能那樣只是說我們想要吸引觀眾注意,或是想要更好的構圖. 因為我們是在做藝術(至少從某些角度來看) ,我們應該把可信度和視覺效果作為目標,而不僅僅是物理精確的。在大部分情況下, 寫實主義通常沒有吸引力,缺少了藝術感道,結果就是---無聊。

playmesumch00ns: 當使用PRMan製作視覺效果時,我盡量達到物理精確的目標,我只在有必要的時候才會往藝術感的方向調整。 為什麼我要這樣做呢?,根據我的經驗,用正確的參數算圖(盡可能的達到物理與數學精確)的方法,結果比較可以預期。

一再地使用藝術角度來調整材質參數(Layering artistic hack)會讓你很快地產生難以收拾的結果。此外,如果你不用正確的方式調整材質(如同那些設計師的想法),結果往往是怪誕或是支離破碎的渲染結果。尤其是,當你與其他藝術家工作 需要設定多個鏡頭時候更為重要。

moidphotos: 首先我想說,謝謝每位在這帖發言的網友;這些文章很有教育性, 讓我重新思考過去的工作流程。

我贊成Dtox的說法 ,我想你所要問的是所謂的光譜渲染法(Spectral Rendering)---利用一個比可見光更大的能量範圍來表現傳統的RGB通道。Mental Ray有支援光譜渲染法,但我沒有實際的使用經驗,我聽說Mental Images的某位員工幫他們的客戶成功建立光譜材質(spectral shaders),使他們以18個顏色通道處理影像,讓材質表現出不同光線,例如能夠表現紅外線(ultra violet light)對材質有怎樣影響,或是infra red對物體有怎樣的影響。希望這可以用到您今後的研究。

playmesumch00ns: 好的, “光譜渲染”通常指的是對於對於可見光譜的採樣(通常是380 - 780nm ,如果我沒有記錯的話)通常比典型RGB色彩更為細緻。換言之,而不只是三色組成部分-R GB -你可能有8或1 0或3 0等數值 。

在怎麼樣的材質與渲染器能做到呢?散射會造成不同波長的光產生不同程度的折射,造成了彩虹一樣的效果。

關於散射, 在wikipedia有詳細介紹

Dtox: 在cinema4d中有一個基本的材質其中一個選項,稱為反射的散射(dispersion)。我一直認為散射會讓反射變的模糊。 現在才知道這根本就不影響透明度, 我一直都弄不懂散射是什咪。 
其實散射效果不是很明顯, 因此不是很懂原理所以我也避免用它,因為它似乎沒有必要。

另外,當你看到cg燈光的“疊加選項(additive)”,到底是什麼意思?它是否就是指材質樹(shader structure)中的混合模式? 這是否指的是“顏色疊加理論(additive color theory)” ?

playmesumch00ns: 是的,基本上。它基本上就是假設光線是以線性的方式混色,例如分別渲染不同的燈光然後疊加在一起(A+B+C))就會等於你同時把所有燈光打開一樣的效果。有某些情況下,這種疊加演算法是不正確的(如例如攝影底片) ,但它的結果很接近實際的物理學,這樣能大大簡化數學演算。我不熟悉cinema4d ,所以我真的不知道,c4d裡面那個控制選項到底在做什麼。聽起來就像是一個模糊的反射控制,只是命名不佳(我認為應該要命名成'分歧'(divergence) ) 。

Dtox: 當你說多個影像合成時, 你是說燈光效果能夠以不同的pass合成在一起嗎?讓你做進一步控制,是嗎? 有沒有一種專門的混合模式讓光線的混合結果能夠吻合實際上物理學的表現方式? 如“添加(add)”模式 ,如同我先前提到的“添加劑(additive)”的功能?

這有點離題了。 如果我沒有使用Maxwell這類的渲染器, 我用真的物理參數去設定光源還會對真實渲染有幫助嗎? 例如,假設我做了一個很標準的室內場景照明, 利用一般的區域光來模擬真實的鹵素燈。 我如果把真實的鹵素燈的色溫套用到我的區域光中, 對於真實算圖有利嗎?

沒錯。 本來應該就命名成模糊(blur)。 下一版的cinema 4d把它命名“ blurriness ” 。 
為什麼又稱為又散射,就難倒我了。 C4D的材質參數很多都命名的很怪。 

playmesumch00ns: 是的,只是一個普通'添加' 。我就是記不住Photoshop的混合模式是怎樣使用,但如果是用Shake就只需要一個節點就可以了。這個做法是假定燈光可以分開算圖 然後最終在以疊加的方式合成最終效果。

這要依照需求。如果您的專案是全CG動畫的, 那每盞燈的強弱的控制性就對色溫調整很重要。如果想要讓CG色彩與真實底片的顏色吻合, 那就一點意義也沒有,因為通常底片拍出來的顏色很少能與真正的顏色一樣。

使用Maxwell的最大優點是它很方便, 因為影像在真正輸出前就已經調過色了(tone mapped), 所以確實的數據根本沒有意義。

Dtox: 所以,Maxwell輸出時會階調映射。哎呀,我以前從來不知道這一點。 這是所有算圖引擎的標準程序嗎? 或者是只有Maxwell有提供這功能? 

我去年在攝影板上有學到階調映射(tone mapping)。 順帶提一下,算圖時如果存成RAW檔案可能會更好。 電腦算圖理論上可以產生毫無瑕疵的RAW檔案, 因為基本上算圖結果沒有經過光學透鏡。

你將你的CG算圖影像與相機拍的影像用RAW檔案作合成, 就像Red1或Adobe cameraRAW那樣, 這樣會有更多的參數可控制, 你也可以用RAW做文件歸檔的格式可以提供比賽畫面中的RAW工作流程,畫面從相機一樣Red1 ,及劇照在像Adobe公司cameraRAW 。然後,你想有一個更大數額的控制權屬性的影像之前它實際上是轉換成位圖圖像。 你也可用RAW做文件歸檔。

有用過Adobe Camera RAW的人都知道優點在哪裡。 用Red1工作你可以輸出2K和4K的影片 。使用RAW這種直接擷取出來的資料, 以pre-bitmap的形式.用ACR來處理RAW檔案很方便。
您可以輕鬆地調整白平衡,色溫,燈光類型,陰影/高光,標準和中間色調 對比,銳利化。 
一切都在進入到photoshop之前就可以調整了。

在許多情況下,沒有必要做進一步的編修。

playmesumch00ns: 為什麼乾脆算圖成OpenEXR格式, 讓你有額外的資料可以處理?有一天,所有電影將用數位底片 然後直接輸出成linear exr。至少我希望如此。

Dtox:將算圖輸出成RAW的優點是你可以直接將檔案與Red1攝影機的資料的工作流程合在一起。我能想像算圖成HDR/EXR格式會很難處理, 即便輸出成很小解析度的影像。 除非你有特殊需求, 要不然渲染成HDR/EXR格式會浪費更多時間算圖。 如果你真的有需要HDR/EXR格式可以幫你節省調整影像的時間,跟普通的bitmap比較的話。

我還注意到,當你用Photoshop去開HDR/EXR, 有些功能你沒辦法用。 
但是RAW格式就不會這樣 。


playmesumch00ns: 算圖成EXR,應該不會花費更多的算圖時間。如果會的話, 你的渲染器還真是爛(f * cked) 。 

Photoshop的很多功能不支援浮點影像,但你可以藉由切換位元深度(bit depth)來使用那些功能。

Dtox: 切換的位元深度,不就會喪失了使用EXR格式的優點?

bt3d: 是的,轉換位元深度會讓您'正常'的影像。修圖最好盡量用高位元深度來操作(例如色階控制,曝光等等) ,除非要使用某些高位元深度不支援的濾鏡才切換到低位元深模式。

stew: 不,不會有益。 RAW的優點只有一個,那就是它直接儲存相機的感光源件的原始資料。用電腦算圖出來的RAW格式和你相機輸出的RAW格式非常不同, 如果你想把渲染圖轉換成類似相機的RAW格式, 可能會降低影像品質。

此外,RAW根本就還沒有標準化---不同廠牌的相機有不同的RAW格式,甚至同一家廠牌但不同型號的相機也有可能有不同的RAW格式解算方式。RAW並不直接儲存影像資訊,它就只是儲存感光原件的原始數據而已。

OpenEXR能滿足目前常見的數位工作流程。

-----翻譯完-----


[相關文章]

2008/09/26

來去CGTALK問問題! 英文好用句範本之一

信各位CG動畫愛好者一定有這樣的經驗---發現某個外掛似乎有bug, 但是不管是在台灣或是中國的論壇都沒辦法得到很好的答案; 或者是想要做某一種效果 國內論壇卻又太冷清/或是專業度不足 沒辦法有人能立即回應. 想到CGTALK問問題卻又苦於英文表達詞不達意. 這裡作者精選了常用語法, 從開頭說Hello 到引言 到問題描述 到結尾與致謝, 提供您英文的好用句 雖然無法涵蓋所有的情況 但是作為引子 能夠起個頭 使網友能在提問時更容易上手. 當然, 在CGTALK問問題還有一個好處就是可能會有業界的大頭(ie: Bobo)替你做專業諮詢.

例如: 一個模擬的情境, 你在使用Maxya軟體 用MiniRay算圖時, 結果不斷出現比基尼辣妹的畫面, 這是一個令人意外的結果. 你想把畫面貼到CGTALK上, 問問版上專家們的意見, 要怎要用英文呢?
別擔心, 有了以下常用語法範本, 說英文也可以很道地! 你可以這樣寫:

Title : Question on MiniRay

Hi there.

Hi, I am learning MiniRay in Maxya recently. I've rendered a outdoor scene, in the way that I normally do it. I'm having a really unexplainable problem going on. Here is the problem: I keep getting this bikini hot girl when trying to render with MiniRay.
Below are images showing my issue.

Does anyone know what the hell is causing this?

Thanks for your time.

Hammer Chen


[CGTALK好用句]
1. 跟網友打招呼
Hi folks!

Hi there.

Hi guys,

Howdy.

Hello Ladys and gents,

Hi all

2.  簡單的前言介紹
我還是3ds max的菜鳥 我想問關於[專有名詞]的問題
I'm relatively new to 3ds max and I have some questions about .BIP files.

我是CG新手 在學[技術名稱]
i am new to CG and i am exploring a world of 3d modeling.

我正在學[技術名稱]
Hi, I am learning displacement map in max recently.

我有使用過[技術名稱]的經驗
I have experimented with displacement and vector displacement maps in various formats including EXR and TGA.

我用過A外掛, B外掛與C外掛
I have tried using Mental Ray, VRay and the Scanline renderer.

我正在製作某場景
I am working with a large scene imported from sketchup.

我目前在製作[軟體名稱]專案
Im working with a 1mb size maya file.

我目前正在進行[技術名稱] 處理[某個效果]
I'm working on an exporter and I'm currently dealing with materials.

我做了[某項操作], 我平常都是這樣弄
I've modelled and unwrapped a human, in the way that I normally do it.

我自己是用[軟體名稱]的
I'm a Maya user myself.

3. 提問的好用句
我有個問題
I have a problem.

我有個小問題
I have a quick question.

我有關於[texture size]的問題
I have question about [texture size].

恩 我有以下問題
Well im having this problem....

我有個怪怪的問題, [以下接問題描述]
I got a wierd problem, ...

我做了[某項技術], 問題是[以下接問題描述]
I have a lens effect glow on a couple omni lights, problem is the glow is shining through the objects in the scene like they're not even there?

我有個無法解釋的問題
I'm having a really unexplainable problem going on.

有時候我會遇到[問題狀況描述]的問題
Every once in a while I find myself running into a problem with the [relax tool].

以下是我的問題 希望有人幫我
here is my question, i hope that someone can help me:

問題是: [以下接問題描述]
Here is the problem: the box is broken when it is rendered. 

在做[某個操作]時, 一直出現錯誤
I keep getting this error when trying to [render with Distributed Render Buckets].

我遇到了關於[軟體名稱]的問題
i am having some trouble with the SynchPlugin or whatever is causing this .

我遇到了關於[某項技術]的問題
Im having trouble with reflections

我在[軟體名稱]中遇到了問題
i'm having some trouble in [maya] right now.

我做了[某項技術], 問題是[以下接問題描述]
I have a lens effect glow on a couple omni lights, problem is the glow is shining through the objects in the scene like they're not even there?

某個外掛一直出現錯誤, 這個外掛是[外掛名稱]
i've got some issues with some plugins, namely the ReelSmart Motion blur plugin

有沒有人在[軟體名稱]遇到這些問題?
Has anyone encountered these problems in [Max 2009 Design]?

有沒有人知道怎樣使用[某算圖器]引起電腦算圖時關機
Does anyone know what can cause a new computer to shutdown during rendering a scene with some simple V-ray materials?

為什麼有時候我不能進行[某項操作]
Why is it that there are times when I can't paint the weights on some vertices?

算圖的時候突然關機
Shutdown during render

我讀過某個外掛的help檔 但是當我要算圖時[軟體名稱]卻當掉了
I fallow instructions in the hairtrix help's but when I try to make a render 3dsmax freeze.

一直閃爍
It is always blinking.

這種情況正常嗎?
is this normal?

當我在進行[某項操作]發生嚴重錯誤 我要怎樣解決??
while doing rigging and saving a file in maya8.5,fatal error accours. How can i rectify it.

我試著用[外掛名稱]去做[某個效果] 但是當我用這個外掛的時候, 卻失敗了
I 'm trying the plugin Hairtrix (Ornatrix) to make fur, and when I want to use Ornatrix and mental ray, it doesn't work.

有沒有人知道怎麼會發生這種鬼事
Does anyone know what the hell is causing this?

有沒有人知道我要怎樣解決這個問題
Does anybody knows how can I get by this issue?

有沒有人有這種問題
Anyone have this problem ?

可否幫我解決[軟體名稱]的問題
Hi, I need your help for v-ray.

我在想有沒有辦法能進行[某項技術]?
I was wondering if there was a way to specify a normal map attached to a texture?

不知道怎樣進行[某項技術]
I was wondering how to export a scene from 3DS max to Maya.

有沒有人知道什麼辦法可以進行[某項技術]?
does anyone know a way to change the world up axis in max to Y?

我不知道怎樣才是製作[某項技術]最好的辦法
I was wondering whats the best way about setting up my animation.

請問怎樣正確設定[某項技術]?
Does anyone know how to get my coordinates correct?

請問怎樣製作[某項技術]?
I was wondering how can i make a realistic looking jellyfish animation in maya?

怎樣在[軟體名稱]中進行[某個操作]?
How in 3ds max would I give an object a rotation constraint ??

我要問的問題是: 是否能進行[某項技術]?
The question im asking is if it is possible to somehow create invisible plane or something that is relatively the same size as the surface is being composited later.

有可能做做出[某項技術]?  如果答案是肯定的 有沒有人可以教我怎樣做
Is it possible to have different key frames for individual motion paths?
If so, could you please show me how?

我一直在試[某項技術]但是一直都不能正常運作 有沒有任何意見?
hey guys i've been trying to make a shelf button for aligning uv's with polyEditUv command but can't seem to get it working properly, any suggestions?

我知道[某項技術] 但是它們沒辦法做出我要的效果
I'm aware of scatter but it doesn't really do what i'm after.

能不能解釋如何能進行[某項技術]?
Can anyone explain how

有沒有人知道怎樣解決這個問題
Anyone know how to fix this?

如果有人知道如何解決這問題 我會非常感謝
if anyone knows what's going on and how it can be fixed, i would be very appreciative.

你都怎樣處理這件事
How do you do this?

有沒有人知道為何這樣?
Any thoughts on whats going on?

有沒有人知道為何會這樣?
anyone know why?

有沒有人知道為何會這樣?
Any ideas why this might be happening?

我希望有人能遇過這個問題 然後知道怎樣解決
Hi, I hope someone has come across this problem and figured it out.

有沒有人有過[軟體名稱]的經驗 請問這是不是只是程式的bug
I was just wondering anyone else was experiencing this or if these are just some bugs in the program.

這是[軟體名稱]的bug嗎?
Is it a v-ray bug?

如果我想要的目標無法達到 有沒有其他方法可以做?
If what I'm asking can't be done, is there a better way to do it?

有沒有別的方法可以做到呢?
are there other ways to do this?

我很急需要幫忙 我已經試了[某項技術]半天了 我快氣炸了
I desperately need help here, I've been trying for half a day now and nothing happens, whatever tutorial I follow has no results. I'm about ready to explode.

我快被它搞瘋了 不知道我哪裡做錯
It's getting me crazy i dunno what i am doing wrong.

我哪裡做錯了?
What am I doing wrong?

如果有人知道怎樣[某項技術]請回答
if anyone can tell me how to simulate a soft wind please feel free to post!

我要怎樣進行[某項技術]?
How can i scale up a skinned biped?

這是怎樣做出來的
How is this done....???

有沒有人能告訴我A軟體是否與B軟體相容
Can someone please tell me if maya 2008 64bit is compatible with 2008 32bit?

A外掛到底哪邊強過B外掛?
are there any major advantages of Final Render over mental ray?

有沒有關於這個[某項技術]的資源?
Are there any good sources of information on this subject?

3. 如果你有附加圖檔的話 可以這樣說
說明圖請見附加檔
image is attached.

希望下圖能說明我的問題
Hopefully the Images I supply will show you what Im Talking About

下圖說明我的問題
Below are images showing my issue.

請看下面的圖片 裡面有[問題描述]
As you can see in the render below, there is a brightly lit Orb.

附上範例檔
Example attached.

4. 問問題致謝與結尾
希望有人能提供建議
Hope someone had a tips !!!

如果有任何建議或撇步就很棒了
It would be glad, if I can get some help, tips or hints on this.

有沒有人可以給意見或撇步
can any one give me some hints or tips?

可否提供關於[某項技術]的小技巧?
Any tips&tricks about skining a human model who has displacement maps on it?

有沒有人有任何意見?
Any thoughts?

感謝您撥冗觀看
Thanks for your time.

有沒有人有任何意見?
Anybody an idea?

任何意見都感謝
Any tips,anything higly appreciated

請幫我解決[某項問題]
Please help me out with this...

請幫我
plz help me out...

任何意見都有益
Any tips would be helpfull.

任何意見都歡迎
any word is good

thnx

多謝回答
Thanks for answers.

多謝
Many thanks,

先謝了
Thanks in advance.

任何建議?
any advice?

請幫我
Please help. thanks

請幫我解決這個問題
Please help me out with this...

能有任何解答都好
Man, any help would be appreciated!

任何意見都非常感謝
Any advice would be greatly appreciated.

有沒有人能提供專業建議?先謝了
Can anybody give some wise counsel? Thanks in advance.

5. 其他好用句
我知道[解決方法A].我知道[解決方法B]但是要做[某項技術]到底應該怎樣操作
I know that you can animate a body with a good rig or biped, and I know you can animate a head with morph targets.. but how do you animate facial features that are connected to a head on a body mesh... does the head absolutely HAVE to be seperated from the body mesh to work properly..?

為了製作[某項技術], 使用軟體A與軟體B之間有差別嗎?
Is there a difference between ai implant and massive to generate crowds?

我已經找過[某軟體] 但目前為止 都不能解決問題
I've been searching for a tool to do a batch import, and so far, I have only found one that didn't really work.

我已經在論壇上找過了 但是沒有一個回答能真正解決…
I have looked around but I can't find anyone on forums with actual experience doing so that has been able to show how to successfully import a hi-poly count ZBrush model with textures into Vue.

我曾經試過…[以下接已經試過的操作]
what I've tried.

我已經改過建議的設定但是仍然無效
I changed my setting to the ones recomended but still to no avail.

有沒有辦法取消這個設定?
Is there a setting to deactivate that?

怎樣把那個功能關閉
how to turn that off ?

多謝回答 我還有另外一個問題
Thank you for your reply...i have one more request......

多謝 幫忙很大
you've been very helpful.

多謝提供資訊
thanx for the info!

多謝分享這個消息 非常有趣
thanks for sharing this info! very impressive indeed!

有沒有人能幫我找[某項技術]的教學
Hi, can anybody point me in the direction of a good tutorial for a rope and pulley system using reactor?

我也遇過同樣問題
I've had the same problem,

沒錯 我也遇到同樣狀況 但希望有辦法解決
Yes that is my experience... But was hoping that there was some way...

那是已知的bug
That is a know "bug/feature".


[更多文章]

2008/09/23

[cgtalk文章翻譯]逼真的算圖演算法



譯者序:
CGTALK是高手雲集的專業論壇. 常常有些大師級的對話能夠釐清一些書本裡面也沒寫的重要觀念. 全局照明有很多專有名詞與演算法 例如光子映射 最終聚集 光緩存等. 有些觀念我是翻譯這個討論串後 才比較了解. 這個討論串是由joost_db提問, 主要回答者有CaptainObvious (Simon Lundberg), jeremybirn (Jeremy Birn), thev (Vlado). 

英國人Simon Lundberg提供了珍貴的觀念解釋. 一般在3ds max的MentalRay Final Gathering (FG)設定 其實指的是irradiance map. 如果你只把FG選項打勾 其實就只有計算irradiance map而已. 必須要把MentalRay的GI與FG同時打勾 他的計算才有Final Gathering的意義. 只有勾選FG根本不能稱做是Final Gathering計算 因為你沒有發射光子根本就沒有最終收集的意義. 精確的命名應該是要像Vray那樣把第一次反彈設為irradiance map 第二次反彈設為Photon Mapping, 這樣的命名才符合實際演算的意義. MentalRay的FG選項有誤導的嫌疑. 

以下文章翻譯自此cgtalk討論串:
Photorealistic Studio Methods (started by joost_db)

[joost_db問到]: 我是一位工業/產品設計師,最近想要改善我超爛的算圖效果 想要算出真實的效果。我希望能達到專業攝影棚的算圖效果---例如產品攝影,或是汽車等. 越真實越好。

我看到一些超讚vray效果圖, 看了一些線上教學,對Vray有非常深刻的印象。

我讀了3dword雜誌有一篇文章,講到利用“最終聚集(Final Gathering)產生真實影像” 。我覺得很多地方都會談到FG,但是我不知道FG到底是什麼。目前只知道,FG是一種能夠計算光線在場景中反彈的計算方式。

我在mental ray裡面看到FG的選項 ,但vray中沒看到 。FG是不是一種能建立光線反彈的簡單方式?或者特殊的算圖方法。是否有可能在vray裡面使用FG技術? 

[Vlado回答]: “Final gathering”是mental Ray的專有名詞;一般對這類的GI演算法都被稱做 “irradiance caching” 。許多新的算圖器都支援irradiance caching的技術。如果是V-Ray,它的“irradiance map”算圖引擎最接近mental ray 的“final gathering”演算法。

[Simon Lundberg回答]: 每當談到全局照明(global illumination) 常常會被各種名詞搞混。我來告訴你這些名詞的差異:

首先,談到全局照明。這是一個集合名詞,用來描述光在漫射表面彈跳的現象。基本上,這個彈跳是在整個場景中彈跳。全局照明並不局限於任何特定的技術。

這麼多方法中,能夠實現全局照明的其中之一技術是---光子映射(photon mapping)。光子映射是一個相當簡單的技術,這就是為什麼它這麼受歡迎。這是一個較快的技術,但你是幾乎不可能利用它來達到高品質的全局照明。用數目少的光子只需要幾秒中就可以算出來。獲得中等數目的光子地圖將花數分鐘算圖。獲得高品質的光子貼圖將花費你幾天。當你使用光子映射時,GI基本上是用數以萬計非常不準確的光點構成的。藉由將這些光點作平均化的動作,你可以達到無光斑的算圖結果。缺點是,算出來的效果會缺乏細節和準確性。

光子映射是這樣的
1 :光子映射是在最終計算前先預先演算(pre-pass)。同時光子映射也會被平滑化(smoothed out)。 
2 :當真正開始算圖時,會從攝影機發射光線(rays)到場景當中。 
3 :當一個光線射到物體表面,那個表面會依據光線與存在表面的光子貼圖(photon map)來計算他的亮度。

計算全局照明的最原始方法,是蠻力演算法(brute force method),有時被稱為蒙特卡羅法(monte carlo)或無誤差演算法(unbiased)。這表示,每一個像素都會射出超多的隨機(或半隨機)的光線。這種做法是很精確,但速度緩慢的。這類的演算法主要是由Maxwell 與 FPrime這類的軟體採用。然而,大多數算圖器也可以使用這種方法,雖然預設值不是用蠻力演算法. 蠻力演算法的計算流程:

1 :光線自攝影機發射到場景中。 (請注意,這個計算不需要預處理(pre-pass)!) 
2 : 其中的一個光線打到場景中的物體。 
3 :從步驟二的撞擊點中,再次發射大量的光線到場景中。 
4 :從步驟三中的撞擊點, 再次發射大量的光線到場景中。

所以,即使是簡單的場景,仍會耗費大量的光線。如果是本來不用GI只需要算幾分鐘就能算完,用光子映射大概要花10分鐘,而以蠻力演算法則需花數個小時計算。

因為蠻力演算法是如此緩慢,所以才發明了:輻照緩存(irradiance caching)這個技術. 輻照緩存採取非常準確的全局光照採樣數,但是並非計算每一個像素。如果計算一個平面,全局照明不會有劇烈改變,所以沒有必要計算每一個像素的資訊。如果你用輻照緩存,你可以計算場景中不同位置的光照,然後用內插法把其餘的位置給計算出來。這種技術的缺點是,它如同光子映射一樣, 需要預先計算(pre-pass),它也可能導致光斑問題與細節表現的損失。如果你是用蠻力演算法計算,結果是雜訊點(noise)很多。但是雜訊點通常比光斑(splotches)好看 。

這就是為什麼你需要final gathering, 因為這蠻力演算法計算與輻照緩存都是一種很慢的演算法,而光子映射則是品質很差,於是有人想出了一個相當棒的方法---Final gathering!這個方法首先你要計算出光子地圖,這將含有光斑和細節損失的問題。然後你使用比較慢,但更準確的計算方法去計算光線反彈。基本上,它是這樣的:

1 :計算光子地圖計算,同前。 
2 :開始算圖然後自攝影機發射光線。 
3 :光線打到場景中,一如往常光線產生陰影。但是這時光子地圖是完全被忽略的,因為它的低質量。 
4 :光線自第三步的撞擊點再次發射光線。但是這次打出的光線打到新的表面時 就會把光子貼圖考慮進去,而影子光線(shadow rays)在這次就不追蹤了(因為陰影已經計算在光子貼圖當中了) 

光子貼圖是用來創造一個基本的整體環境,然後您使用的final gathering將光斑平滑且將失去的細節救回來。這種算圖時間會比單單用光子映射算的久,但是質量會高出很多。此外,由於您沒有自final gathering的光線射出陰影光線(shadow rays),所以可以幫您節省大量的時間。光子映射+最終收集是非常受歡迎的技術。最終收集可以與蠻力演算法或輻照緩存混合運用。

不幸的是,就是這邊容易搞混。當mental ray使用者講到final gathering,實際他們指的是irradiance caching!在許多的算圖器中,irradiance caching被稱為final gathering,不管你到底是不是真的在使用final gathering技術。

如同Vlado所說,您實際上是想用“irradiance map”技術 。或者你可能是要用蠻力演算法,如果您想要速度慢,但效果更真實的算圖。

不是只有Mental Ray才能夠使用Final Gathering技術。其他渲染器如Turtle,這套算圖器能做兩件事,平滑化光子貼圖與根據撞擊點計算一次反彈的間接照明。

[jeremy回答]:Final Gathering只是眾多全局算圖演算法中的其中之一種技術。只要你有一套好的渲染器,其實你那麼不用擔心他不支援Final Gathering。

[joost_db說到]: 我讀了vray使用手冊,釐清了我的困惑。

我的結論(the bottom line)是,所有不同的GI算圖法(irradiance caching, irrandiance map, QMC, photon mapping, light cache等等),其實都是執行相同算式,只是用不同的解法而已。因此,它們之間的差異不是在根本上的不同,而是在得到結果的過程不同。所以這些算法可以得到產生非常相同結果,唯一的差異是算圖時間與品質會不一樣。

所以基本上,雜誌說他們使用“final gather” , 那只是他們的算圖設定的方法而已。我可以載入相同的場景,然後用vray, 並使用QMC, photon map, light cache等方法, 我能相同的結果----只是算圖時間會不同。

[Simon Lundberg回答]: 如果您在Vray的第一次反彈(primary light bounce)中設置成QMC, Vray將會以brute force演算法做運算。

如果是要計算寫實效果(studio lighting setups),我建議您盡可能使用irradiance caching。如果用irradiance caching算出來的品質不夠好,你可以考慮使用區域光(area lights)。

用自發光的平面(luminous planes)跟區域光(area lights)的優點比較起來,發光的平面算圖比較快(如果您使用的輻照緩存) ,而且他們的反射效果比較銳利。例如汽車反光效果(carpaint) !

[francescaluce回答]: 你講的完全不正確(exactly none)。如果你使用發光的平面作為反射來源,當照亮場景時,他回傳的資料會得到不吻合的照明感 而且這些資料難以被finalgather做平滑處理,尤其是在動畫上。

[joost_db說到]: 我詳細閱讀了您對final gathering, irradiance caching, photon mapping, unbaised methods等等方法的說明...我想我現在100 %了解了,但想要在更確定!

用vray能讓我選擇第一次反彈的計算法與第二次反彈的算法。當我選擇“Irradiance map”作為第一次反彈,這將在場景中散佈許多小點。對平坦表面的點會比較少,相對幾何體變化大的地方會有比較多的採樣點(聽起來就像您所說的Irradiance map) 。然後, 如果我使用qmc (我相信這是無偏差的演算法unbiased method)作為第二次反彈的計算法,然後設定成十次反彈, 根據先前的Irradiance map,QMC會發射大量的光線---但不是每個地方的光線密度都一樣,在Irradiance map分布較少的位置,會發射較少的光線,但是在Irradiance map分布較密的地方 ,會發射較多的光線...這樣說正確嗎?

如果上述是正確的....用這種方法就很道理了。純粹的無偏差算圖器Pure unbiased(例如Maxwell) ,其實浪費了很多時間在處理不需要有高品質GI的地方。上述方法(irr map + qmc)能夠得到百分之一百與maxwell一樣的效果,但是又沒有浪費時間在計算不需要高精度的區域。
因此,算圖品質幾乎相同,但計算較少

[Simon Lundberg回答]:完全正確,Maxwell “浪費”了很多計算時間。這就是為什麼他算圖很慢。但也不能說這種方法就是無偏差的。無偏差的定義是沒有任何的人為誤差計算(artifacts),但您還是會得到noise。Irradiance caching可導致細節損失與漏光(light leaks)。對於一個無偏差渲染器(unbiased renderer)這絕不會發生的。即使您使用irradiance caching作為第一次反彈, QMC作為第二次,你仍然會得到誤差。

第一次反彈(primary bounce )是由攝影機射到場景當中的。因此,如果您第一次反彈設定成irradiance caching,第二次反彈設成photon mapping,您會獲得一張標準的光子貼圖與最後收集,跟你用mental ray一樣。如果你用irradiance caching作為第一次反彈, QMC作為第二次反彈,在我看來,這樣做有點浪費,因為你在第二次反彈時還是用了QMC, 所以沒辦法幫你節省到多少時間阿。再者, 最後算圖效果還是會有irradiance caching產生的錯誤

我是建議使用光緩存(light caching)作為第二次反彈。Light caching就像是光子映射,不同的是光緩存是自攝影機發射光子而不是自燈光發射光子。它具有photon mapping大部分的優勢。用起來很棒。然後用irradiance caching或QMC作為第一次反彈(作為final gathering) ,以維持細節表現。

[Giorgio Luciano回答]:這真是有趣的討論。可能是因為拜vladoJeremy大師現身的關係。 Vlado是全世界最好的渲染器(譯者注: 指的是Vray) 開發者之一,Jeremy寫了一本關於Lightning and rendering的書!能在星期天下午學到這麼多東西真的很棒喔!

(翻譯完)


[相關文章]

2008/09/05

Videotutorial: Making a realistic male head in 3ds max 9



Tutorial results:

In this video tutorial we're going to use several tools to create a realistic human head with subsurface scattering skin material plus hair. We will try to make a digital version of CSI (Crime Scene Investigation) captain Jim Brass as an example. We will use free photomatching software---LOOXIS Faceworx 1.0 to quickly generate a base head model. Then, import model in Autodesk Mudbox 1.0, and start digital sculpting details, generate normal map. In 3ds max, we import the base model and apply normal map and other maps needed to create realistic skin material. We will use Cebas Finalshader skin material to set it up. The hair are generate with hairtrix plugin. Finally, color correction with SONY Vegas software.

Softwares you need in this project:
1. Autodesk 3ds max 9
2. Hairtrix plugin (optional)
3. Cebas Finalrender, Finalshader
4. SONY Vegas (optional)
5. Mudbox 1.0
6. Right Hemisphere Deep UV 1.0
7. In_tool Detriangulator maxscript written by In_human (click HERE to download)
8. Faceworx 1.0 (click HERE to download)



Simplified workflow.

Sketchs of Jim Brass


Maps for realistic human skin material: surface diffuse, absorption, normap map, specular map and refraction map.


Photos of CSI captain Jim Brass: front view and side view. Those images will be use for photomatching in Faceworx 1.0.


Screenshot of Faceworx, a freeware that can generate 3D head model from photos.


Screenshot of Autodesk Mudbox 1.0. You can literally digital sculpting your head model with Mudbox.

Detail protocol:
1. Collect reference images
2. Quick sketch
3. Create base head model with Faceworx
4. Detrianglation of head model with maxscript in 3ds max
5. Digital sculpt in Mudbox, export model and normal map
6. Load model and normap map in 3ds max 9
7. Create diffuse, blood, transpancy, specular map with Photoshop
8. Set up skin material in 3ds max
9. Set up lighting and Finalrender
10. Create scalp mesh from haed model
11. Unwrap UV with DeepUV
12. Create hair with Hairtrix
13. Set up lighting for hair
14. Color correction in Sony Vegas

Video tutorials (Total running time: 1 hour and 25 mins)
PART 1
320X240
720x480

PART 2
320X240
720x480

PART 3
320X240
720x480

PART 4
320X240
720x480

[More tutorials]
Create three hairstyles in 3dsmax 9

breasts bounce simulation by using blubber 1.0 Maxscript (HOT!)

2008/07/28

Cebas Finalrender benchmark test 渲染效能評測


最近在製作CSI犯罪現場系列的主要角色 上圖是隊長Jim BrassFinalshaders Fast Skin材質球所製作出來的皮膚算圖效果. 雖然3S (Subsurface Scattering)的效果與真實皮膚觸感還沒到達完美 不過目前這樣的水準還可接受. 可是有一個很大問題 就是這一張圖片要花六分多鐘才能算完 對於製作動畫是很不實際的 於是趁這個機會 對Finalrender這套渲染器來做一次參數效能評測 找出最佳化的皮膚算圖參數!


講到效能評測一定會先談到硬體環境. 我是用Panasonic Let's Note R4筆記型電腦在玩3ds Max. 它的配備是:
CPU: Intel Pentium M 1.2GHZ L2

RAM: 1 GBChip: Intel 915GMS VRAM: 128MB
HDD: 80GB Ultra ATA100
(請見上圖)



軟體部分是用Autodesk 3ds Max 9 SP1 + Cebas Finalrender Stage-1 R2.0 + Cebas Finalshaders 2.0. 場景設定很簡單 打一個Simple Sky 強度設為0.6, 另外在臉左側約45度角打一盞RecLight強度設為1. 臉材質使用fS-Fast Skin材質球(參考上圖) 分別貼上Surface, Blood, Normal Bump與Refraction貼圖 這個折射貼圖可以大大地增加真實性 但也會消耗許多算圖時間.




首先先看到AdaptiveQMC (自適性準蒙地卡羅演算法), Low與High的預設值算圖時間超過一倍 但是最終結果卻沒有明顯差異


Bounces是設定光子反彈的次數 雖然反彈五次沒有比反彈兩次多出多少時間 但是如果只反彈一次 就只要花6m 5s就完成計算.


與傳統的Scanline rendering不同 , Bucket Rendering(水桶算圖法)是把圖像切割成小區塊 每個區塊分別計算 這裡最小區塊尺寸16 與最大區塊尺寸256 算圖時間就差了一半 (五分鐘左右)


幾何體面數對渲染時間的影響如何? 即使面數增加了十五倍 算圖時間也只增加了一倍左右.



fS-Fast Skin是Finalshaders提供的快速設定真實皮膚材質. Subsurface Sample決定次表面散射的品質. 這邊50與1000所消耗的時間相差將近一倍. 但是數值過低算出來的結果會過於灰白沒有立體感



Geomatric Sample決定光線穿透物體產生內部光照的品質 這和光跡追蹤有關. 預設值是Automatic, 但是Relative與Absolute都可以節省將近一半的算圖時間 雖然品質稍微下降 而且皮膚微紅.


輸出大小當然會影響到算圖時間. 幾乎是呈現倍數成長


方形光(Reclight)的陰影採樣數也會影響到算圖時間 預設值是64 如果改為32則可節省30秒的時間.



由上述效能評測 我們可以得到以下最佳參數Optimized Parameters (括號中的數值預設參數):
AdaptiveQMC-->Low (Low)
Bounces--> 1 (2)
Bucket-->256 (64)
Subsurface Sample-->500 (500)
Geomatric Sample-->Relative (Automatic)
Reclight Shadow Sample-->32 (64)

用這樣的參數來算圖可以與預設值相比節省超過一半的時間 也就是說在算動畫的時候如果本來要花一整天的時間才能算完 如果使用最佳化參數可能就只需要花半天就完成了!

[相關文章]
Making of Lee Teng-hui 前總統李登輝

Vray的全局照明(Global Illumination)演算法原理與比較

2008/05/03

Vray的全局照明(Global Illumination)演算法原理與比較

編譯 / Hammer Chen

引言
即使沒有經過實際統計 但毫無疑問地Vray是國內最多人使用的渲染器。 有些人會說那是因為Vray是最容易學、最簡單的渲染。其實根本不是,Vray是在MentalRayFinalRenderBrazilMaxwell等眾多渲染器中最複雜的渲染器,原因很簡單,因為它除了一般常見的渲染引擎Qusi Monte-CarloPhoton MappingIrrandiance cache (或稱Final gathering)外,Vray又多了Choas Group專利的Light Cache演算法。Vray渲染器明確地把光線反彈分為第一次反彈(Bounce)與第二次反彈,第一次反彈有4種渲染引擎可供選擇,第二次反彈有3中渲染引擎可供擇,在不考慮原理之下,就有4x3=12中排列組合可供選擇。 雖然Vray預設有第一次渲染是用輻照映射(Irrandiance cache),第二次反彈是用準蒙特卡羅演算法(Qusi Monte-Carlo), 但當要調整渲染引擎時,若不是實際了解這些演算法背後的原理,真的要調整使還是會使人一頭霧水。怎樣針對你的場景特性去調配第一次反彈的引擎與第二次反彈的引擎種類? 這還真是不容易回答的問題。

2008/03/30

教學影片: 在3ds max 7當中製作子彈穿透雞蛋特效



教學影片結果:


高速攝影能夠捕捉到物體動作中的細節. 這個教學影片裡 我們將模擬雞蛋被子彈打穿 用高速攝影機捕捉彈殼碎裂 蛋白飛濺的效果. 我們將利用德洛涅三角面分割演算法(Delaunay triangulation)產生隨機分割的球體 依此產生真實的蛋殼碎裂模型. 我們將這些碎片轉成粒子 然後用Particle Flow製作動畫 雞蛋一體的部分用Glu3D來產生. 最後我們將蛋黃給予Finalshaders材質 以Finalrender進行渲染算圖.

你會需要這些東西:
1. 買一顆茶葉蛋. 觀察蛋殼碎裂的紋理 把這些紋理用數位像機拍起來當作建模時的參考.
2. 3ds max 7或是更高版本
3. 由Chris Gray先生所寫的Cgray Random Wire Color maxscript. 這個Maxscript可以隨機指定物體的顏色.
4. Bobo先生所寫的maxscript. 你可以直接在網站上複製一份
請注意 "global ChunksArray = $Box* as array" 當中的Box是要轉換的幾何體的名稱 如果你的橋碎片是Object01, Object02...等名稱的話 請將Box取代成Object, 所以改成 ""global ChunksArray = $Object* as array"

5. 3D Aliens Glu3D plugin. 用Glu3D產生蛋白液體的模型. Glu3D的PWrapper功能和3ds max當中的Blobmesh十分類似 只是Pwrapper的功能比較優化.
6. Cebas Finarender
7. Cebas Finashaders. 用來製作蛋黃的材質.


德洛涅三角面分割演算法能夠產生隨機的分割邊, 我們可以依此產生真實的雞蛋碎片. 利用Cgray Random Wire Color maxscript可以隨機指定這些蛋殼的顏色 方便觀察.


我最終的Particle Flow設計

工作流程:
1. 建立一個預先碎裂的蛋殼. 先製作一個簡單的NURBS模型 然後把細分表面的參數改為德洛涅三角面分割演算法(Delaunay triangulation). 藉由detach每個面 產生隨機逼真的蛋殼碎片(利用照片當作參考圖)
2. 利用Bobo先生所寫的Maxscript將這些碎片轉變成粒子.
3. 以Particle Flow製作子彈穿透雞蛋的動畫
4. 以Glu3D PWrapper製作雞蛋的流體
5. 指定Finalrenderh材質.

教學影片(總長40分鐘)
第一部分
低解析度(320x240)
高解析度(720x480)

第二部分
低解析度(320x240)
高解析度(720x480)

[更多教學]
Vray的全局照明原理與比較 (New!)

PHS J98手機建模教學

七龍珠克林氣元斬動畫教學

Videotutorial: Making of Bullet hits an egg in 3ds max 7



Tutorial results:


In this video tutorial I create a pre-cracked egg by taking advantage of Delaunay triangulation, then convert those fragments into particle with Bobo's maxscript, creating exploion of egg shell with Particle Flow. The egg fluid was create by using Glu3D plugin. Finally apply Cebas Finalshader Wet material to egg yolk, and render with Cebas Finalrender.


Things you will need:
1. An egg. Go buy an egg for good reference images. See how egg cracks. You can also find some great reference images from Flickr.

2. 3ds max 7 or higher

3. Cgray Random Wire Color maxscript created by Chris Gray. Click HERE to download. This will help you to randomly assign wireframe color to your egg shell fragments.

4. Bobo’s maxscript. Very simple maxscript you could just make a copy from his website.
Note: Please note you should rename the Box in string of "global ChunksArray = $Box* as array" if your geometry debris has other name than box. For example, you have Object01, Object02...etc, your modified should looks like so "global ChunksArray = $Object* as array"

5. 3D Aliens Glu3D plugin. We use this plugin to create fluid mesh. The PWrapper in Glu3D is essential the same function as 3dsmax's Blobmesh, but with more optimize performance.

6. Cebas Finarender (optional).

7. Cebas Finashaders (optional). I apply Finalrender Wet material (fR-Wet)to my egg yolk.



Delaunay triangulation give a simple sphere a randomly subdivision looking. With "Random Wire Color maxscript" you will get a random color egg shell image above.


A final layout of my Particle Flow.


Workflow:
1. Create a pre-shattered egg shell. Start with a simple NURBS sphere and set its subdivision type to Delaunay triangulation. Convert to poly and detach the mesh into pieces (match the shape of reference images).
2. Convert those chunks (or egg shell fragments) into particle by using Bobo's maxscript.
3. Create egg sharttered animation with Particle Flow.
4. Create egg fluid with Glu3D PWrapper.
5. Assign Finalrender materials to all parts.

Video Tutorials (Running time: 40 mins):
Part 1
320x240 (low-res)
720x480 (high-res)

Part 2
320x240 (low-res)
720x480 (high-res)

[More Video Tutorials]Modeling a PHS mobile phone with nPower PowerNURBS

Making a broken window without using a plugin (Hot!)

Create implicit surfaces with VrayIso in 3dsmax 9