SLI Zone

NVIDIA.com Gelato Zone Home
 
Download the free version

Gelato 技巧與提示

系統、設定與安裝 使用 Gelato

Gelato Check
確認Gelato已正確安裝的公用程式

安裝完畢後Mango無法載入
您可能會面臨到的間歇性錯誤

Gelato以及其他著色軟體
在已經安裝其他著色軟體的機器上安裝Gelato

Gelato 2.0中使用材質熱能轉換功能
製作光源與陰影的材質貼圖

Sorbetto光跡追蹤反射與折射
在不需要更新光跡追蹤時,加速Sorbetto

改變區段順序
Gelato可以選擇以垂直或是從中心開始的著色順序。

動態模糊的閃爍
如何修正閃爍錯誤

將所有.gsl檔案匯集到一個資料夾
整理編譯過的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選單中會增加此選項。同時,您可以使用以下程序來產生材質貼圖。

  1. 將您想要轉換的資料運用以下方式存成一個空間資料庫(SDB) :
    • 在spatialdbsave()中增加一個合適的命令,來修改您想用的著色器。詳細做法請參考bake.gsl。
    • 利用ConnectShader將想用的著色器輸出,連接到轉換著色器的「資料」輸入,以直接使用bake.gsl。
  2. 如您在bake.gsl中所見,spatialdbsave()功能可以自動指定,將此SDB及連帶要使用的檔案格式,一併寫入最終的著色成品之中。
  3. 確定本SDB的延伸檔名指向可與imageio plugin對應的影像檔案名稱 (比如 .exr、.tif 等)
  4. 著色。在Gelato執行完畢之前,將會把轉換資料寫成一個影像檔 (將插入的資料送入spatialsave())中。
  5. 不同的物件可以存入不同的SDB(輸出成不同的轉換材質) 或是全都存在同一個SDB 中(不過這樣就得靠您來確定它們不會存在於重疊的材質空間)。
  6. 要注意轉換中物件的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}