Gelato 技巧與提示
Gelato Check使用-check功能,可以快速檢查Gelato是否正常運作。本功能不會提供完整的系統除錯報告,但可告知您主要的檔案是否正確安裝、是否擁有正確的使用許可,及系統上GPU跟驅動程式是否相容。本功能會執行一個快速著色,以確認Gelato可以正常運作。
在命令列上,執行:
gelato –check –verbosity 2
在Windows底下,你也可以從開始選單裡執行Gelato Check:
開始/所有程式/NVIDIA Corporation/Gelato/Check Gelato
Gelato Check將會輸出類似底下的圖形 (輸出內容因系統差異而不同):

安裝完畢後Mango無法載入
Gelato跟Mango共同安裝基本上不會有問題,然而有的時候在不明原因的情況下,Mango在Windows底下會產生沒有正確安裝的情況。如果您剛安裝了新版的Gelato卻發現Maya無法正確載入Mango外掛程式,或是沒有將圖像包含入Gelato的工具櫃的話,有一個簡單的辦法可以讓Mango正確執行。
首先請開啟Maya外掛管理員以確認Mango已經載入。執行Maya,選擇\Window\Settings/Preferences\Plug-In Manager選單,確定Mango.mil外掛程式已經載入。如果這個選項未勾選,請勾選它。您可順便勾選Auto Load選項。
如果問題還沒解決,請重新啟動電腦。下一次啟動Maya時,Mango應該就可以正常載入了。
這個小臭蟲是跟安裝程式與Windows OS互動時所產生的,我們盡力想找出問題所在,但目前為止尚無所獲。本來我們只要在安裝完Gelato之後強制重新開機就可解決這個問題,不過這對大部分不會遇上這個問題的使用者來說並不公平。
Gelato 以及其他著色軟體
如果你要將Gelato以及其他著色軟體安裝在同一台機器上,您應該先安裝Gelato,不然可能會產生Mango無法正常載入的的問題。如果您在已經安裝了其他著色軟體的機器上安裝Gelato,您可能需要編輯環境變數好讓Mango找到預設的路徑。編輯MAYA_SCRIPT_PATH 以及 MAYA_PLUG_IN_PATH環境變數,讓Gelato跟Mango的路徑顯示在其他著色軟體之前。Gelato可以與其他著色軟體在同一台機器上共存,不過在某些狀況之下,Gelato的路徑必須擺在其他著色軟體之前。
使用Gelato
在Gelato 2.0中使用材質熱能轉換功能
您可以利用Gelato 2.0將光源跟陰影轉入材質貼圖,此功能在Gelato 2.1中會變得更加方便使用,甚至在Maya的Mango選單中會增加此選項。同時,您可以使用以下程序來產生材質貼圖。
- 將您想要轉換的資料運用以下方式存成一個空間資料庫(SDB) :
- 在spatialdbsave()中增加一個合適的命令,來修改您想用的著色器。詳細做法請參考bake.gsl。
- 利用ConnectShader將想用的著色器輸出,連接到轉換著色器的「資料」輸入,以直接使用bake.gsl。
- 如您在bake.gsl中所見,spatialdbsave()功能可以自動指定,將此SDB及連帶要使用的檔案格式,一併寫入最終的著色成品之中。
- 確定本SDB的延伸檔名指向可與imageio plugin對應的影像檔案名稱 (比如 .exr、.tif 等)
- 著色。在Gelato執行完畢之前,將會把轉換資料寫成一個影像檔 (將插入的資料送入spatialsave())中。
- 不同的物件可以存入不同的SDB(輸出成不同的轉換材質) 或是全都存在同一個SDB 中(不過這樣就得靠您來確定它們不會存在於重疊的材質空間)。
- 要注意轉換中物件的Attribute('int cull:occlusion', 0)、Attribute('int dice:rasterorient', 0) 以及 Attribute('int[2] dice:fixed') ,確認它們沒有被排除或是發生取樣不足的狀況 (不管在何種頻率下,它只會產生陰影轉換後的數據)。
Sorbetto光跡追蹤反射與折射
如果您的場景中含有光跡追蹤反射、折射或是陰影貼圖,每當Sorbetto重新著色的時候,這些效果都會更新。這個行為可以確保每次重新著色後都能看到最精確的影像,不過如果您所做的調整與精確的反射、折射與陰影等效果無關,你可以關掉這個行為,以大幅減少重新著色的時間。
Mango中的Gelato工具櫃,包含兩個控制此行為的按鈕。若關掉「重新著色光線」與「陰影貼圖更新」按鈕,著色的時間就會大幅縮短。將燈光調整到您要的樣子之後,再將這些選項開啟以產生最終影像。如此就可幫您省下不少著色時間。
改變區段順序
您可曾在2.35:1的畫面比例下,著色一個包含許多群眾的場景時,只因某一條Scanline貫穿了畫面裡10,000個人物,而碰到惱人的當機?
或許您懂得一些小技巧,比如修改輸入檔案將畫面翻轉,藉以改變攝影機矩陣,著色,然後在一切結束之後將影像反轉回來。
在Gelato中不需要這麼麻煩。您只要在檔案中加入以下參數:
Attribute ('string bucketorder', 'vertical')
如果您是使用Maya/Mango的話,您可以透過Render Settings/Gelato/Memory and Performance Options/Bucket Order設定參數,將預設的「水平」改成「垂直」。
您也可以將此參數設為「從中心開始 (spiral)」,讓著色從畫面中心開始向外擴張。
動態模糊的閃爍
如果您在有動態模糊效果的Gelato影像中看到閃爍的效果,可能是因為您把短暫取樣(temporal sampling)設定過低。Gelato中的取樣跟其他著色軟體相比,算是十分不耗效能的,您可在不影響系統效能的情況下,將取樣率提高。


兩張具有動態模糊的Gelato影像。第一張的短暫品質設為8;第二張設為64。
如果動態模糊的時間取樣設得不夠高,高速移動的物體可能會在某些影格中,產生閃爍甚至破碎的情況。當這種情況發生時,您就要提高「短暫品質」。
在Maya/Mango中,您可以到Render Settings/Gelato/Motion Blur調整這項參數。
將所有.gsl檔案匯集到一個資料夾
底下是一個將所有.gsl檔案匯集到同一個資料夾下,並轉換成gso檔的Makefile (GNU 'make') 。這個檔案只會匯集前次匯集後有變動過的檔案。我附加了一份備份。請使用附加的 makefile(右鍵點擊然後選擇 "Save Target as.."),不要剪貼底下的文字,因為Makefile中的標籤跟空格非常重要,很難在網頁中重現。
.SUFFIXES : .gsl .gso
# INCLUDES holds all the -I commands that specify include directories
# for shader header files. The example below only includes from
# $GELATOHOME/shaders. Amend as necessary for your site defaults.
INCLUDES := -I$(GELATOHOME)/shaders
%.gso: %.gsl
gslc $(INCLUDES) $< -o $@
shader_srcs := ${wildcard *.gsl}
shader_objs := ${patsubst %.gsl,%.gso, ${shader_srcs}}
.PHONY: all clean
all: ${shader_objs}
clean:
rm -f ${shader_objs}
|