2009年7月7日 星期二

Renderman的shader的參數設key的做法

之前有介紹過怎把Renderman的Light Shader裡面KI的值,轉到maya燈光的Intensity設key 這次是要介紹如何把Renderman的shader各種參數,如果需要set key要怎麼轉到maya上去做, 這次用Opacity(不透明度)來做舉例。

1.先簡單的叫出一個planetorus並且Assign上Renderman的shader。



2.可以隨意選擇叫出一個Locator或是New Coordinate System 來當作set key用的控制器

3.選擇Locator叫出Add Attribute

4.在Add Attribute面板上去填入欲控制的參數名稱最高及最低數值 最後按Add完成設定

5.打開shader面板在Opacity欄位把internal Value按滑鼠左鍵轉成Tcl Expression模式並在空格中填入語法
[mattr "locator1.Opacity" $f]

6.在Locator面板新增加的參數"Opacity"鍵入0.5的值 test render得出如圖結果,表示設定正確。


所以其他Renderman shader的參數如果有需要set key 也可以如此泡製。

2009年6月11日 星期四

攝影的曝光值 (Exposure Values)


在這邊我用個簡單的比喻來解釋什麼是曝光。想像一下有個水龍頭一直在漏水 ,水龍頭的底下放了一桶水桶。 這時候我們可以把水當成是光線 ,水龍頭開大或是開小當成是光圈 ,然後水流下來的時間當成是快門 。所以大家可以把裝滿了水的桶子當成是正確的曝光值(EV)

簡單來說 ,當我們把桶子裝滿水 ,可以採用4種方法 。第一 ,水龍頭(光圈)可以開大一點,這樣就算開水龍頭的時間很短(快門),也可以把桶子裝滿(EV值正確)。第二 水龍頭開小一點(光圈小) ,水流時間變長(快門時間長)這樣相對的也可以裝滿水(正確的EV值) 另外還有兩種方法, 也是以此邏輯去推理,這邊就不多講了 。

用比較科學的一個標準定義來說,就是由光圈值快門數字的組合 ,所產生的一個正確的EV值就稱為曝光值。不過我相信這樣說很多人一定都聽的一頭霧水 。所以我用比較白話的意思就是一個拍出來的影像看起來該暗的地方暗 ,該亮的地方亮 ,看起來色彩飽和基本上來說這樣就可以稱之為一個曝光正確的曝光值 。所以曝光值EV是由光圈F快門S的組合= 曝光值 F+S=EV 。EV值是一個固定的值。所以F大S就要小,反之S大F就要小。曝光的定義跟曝光的方法大概就介紹到此。

2009年6月4日 星期四

Lighting的SOP

什麼是SOP? 做藝術相關工作也需要SOP嗎?會不會扼殺我們的靈感跟創意?

SOPStandard Operationg Procedure標準作業程序的縮寫。一般人好像都有個錯誤的認知,藝術或是音樂都是隨性、沒有計畫的。靈感來的時候就食,沒夜沒日的工作。當沒有感時,就像是洩了氣的氣球,攤在那邊。其實作藝術相關工作或是創作也是必須要做計畫,規劃流程,養成良好的工作習慣,才能增加工作效率跟作品的完美度。

尤其是做電腦動畫,這行是一個集體而龐大的創作。必須有個標準的流程跟良好的工作習慣,才能讓我們承接上個階段的進度以及作品做完,交給下個流程的人會有個順暢的程序。不致於過多的錯誤而導致修改或是因為習慣不好產生的bug讓別人接手製作時,產生無法預料的錯誤,以至於延誤工作時間。

那在Lightet這個階段的SOP是什麼?我想不同人,不同公司都會有一個不一樣的打燈流程。這邊我想分享的不是硬梆梆的工廠作業流程,只是想分享一些製作原則跟注意事項。

1)‧確定製作的檔案版本數,別製作到一半才發覺版本不對,浪費時間。

2)‧拿到檔案之後,請把鏡頭之外沒有看到的角色跟場景modelReference拔除掉。若無法拔除請把檔案給隱藏起來,並作Create light linking的動作。這個步驟是為了減輕算圖的data量。但是請記得,如果物體有很強烈的反射如玻璃。就必須注意有些會反射到玻璃上的角色或是模型即使不在鏡頭內也必須留著勿刪除或是隱藏著。

3)‧把該設定的鏡頭跟算圖sizeset好,不要疏忽忘記。

4)‧確定好shader的版本,有時候不同時間,白天夜晚,同個角色會有不一樣的shader

5)‧打燈之前 , 請先參考light guide光線氣氛繪製圖,或是參考已經打好的master light的影片或是跟組長或是已經製作類似shot的同事討論該如何打燈跟注意事項

6)‧接下來就可以開始發揮想像力跟美感開始打燈

所以這些標準流程只是為了降低錯誤率及提高製作的順暢跟美術的創作是沒有太多的關聯的,所以也就沒有扼殺靈感跟創意的顧慮了。

2009年4月23日 星期四

如何在Renderman Lighting環境下去Set key

用Renderman打燈基本上是個很不賴的選擇,整個架構的設計對Lighter來說有很多很細膩的控制選項來加強打燈的精緻度。(如附圖)例如在Light shader(等同於Maya燈光的Attribute)燈光強度的控制bar下有個叫作Contribution的選項。就有細分了Diffuse、Specular等細目,讓我們可以去各別控制強度,提昇打燈的順暢性。不過,Renderman還是有些缺點,例如無法像maya一樣的直接在Intensity上面sey key,不過還好Renderman提供了另外一個辦法讓light shader的KI連結到Maya燈光上的Intensity上面sey key來控制不同frame燈光的強弱 方法如下:

1.先把原本Maya light的Attribute的intensity數值改成跟Renderman的light shader的KI的數值一樣

2.把Renderman的light shader的KI按左鍵從"internal Valeu"模式改成"TCL Expression"模式
"


3.在KI鍵入 [mattr "bulbShape.OnOff" $f]

4.把滑鼠游標移到Attribute的intensity點擊控制bar後,打開Script Editor把下面setAttr "camSpotLight13Shape.intensity" 0.9;語法裡的"camSpotLight13Shape.intensity"這段字 給copy 貼入KI[mattr "bulbShape.OnOff" $f]裡面參數替換成[mattr "camSpotLight13Shape.intensity" $f]

5.接下來就可以在Attribute裡面的intensity set key了。

2009年4月22日 星期三

如何統一Shader的基本亮度不至於過亮或是太暗


我想每個Lighter在打燈的經驗裡都有遇過在同個shot裡面,同一盞spot light打下去,有些角色模型Render出來太over,有些角色則又會暗部太黑沒有細節。以往遇到這類的問題,最常做的可能是做Light linking 又或者用拆layer打燈的方式來避開這個問題。不過要是遇到在同個模型裡面有些部分容易過亮有些部位又過暗,上面的解決方法就會英雄無用武之地了。

這些問題我自己也都有遇過,同樣的也耗費我很多時間去處理這樣的問題。所以最近我常在想怎樣才能避免這樣的問題的產生。後來終於讓我想到個可以降低上面所說的問題的機率。那就是在做shader的時候,除了使用統一的燈光去制定之外,(相信我,有很多時候不見得每個模型都可以有辦法使用同一組燈光去做shaderset) 還可以把攝影裡面翻拍跟印刷常用的亮度階調表拿來作為shader製作時 的一個亮度管理。

方法其實很簡單,在製作的模型底下放個PlaneAssing已經事先做好的明度階調表,記得plane本身要把Attribute裡面的Receive Shadowoff掉。

這樣就有一個統一的表準可以作為shader亮度的管理,最重要的是如果shader是由不同人去set的,用這樣的辦法也可以避免每個人設定出來的Shader的基本亮度會差異太大。此法最重要的是要維持每個shader的一個基本亮度,避免在同一光線環境下,Render出來的角色有些太暗有些過亮。

圖片來源:ArchShaders vol.2 2006

2009年4月20日 星期一

電腦動畫製作流程的基礎介紹、觀念與建議

電腦動畫整個流程可粗分前置設定跟後製製作。前置設定包含了劇本、美術設計、分鏡繪製等項目。
在此主要跟各位分享後製製作的部分
這個部分又可分為Model、Set up、Animation、Texture、Shader、Light、Render、Effect、Compe等項目。
(通常每家公司的分法或是名稱都會有些差異。)
關於這些項目在各家公司的部門分類,通常都會有些小差異。大致上通常是分為:

(1)Model部門:負責模型的製作。

(2)Set up部門:負責rigging的設定,把每個角色或是場景裝上合適的控制器交給Animator使用。

(3)Layout部門:按照分鏡的Set,把每個shot進行場景安排以及鏡頭運鏡設定。

(4)Animation部門:負責把設定好的layout檔案打開,按照劇本的描寫去制定每個角色的動作。
等到動作制定好進入打燈設定前,通常還會有個AF部門(Animation Final)

(5)AF部門(Animation Final):負責檢查模型跟模型之間有無穿幫的問題,
還有一些問題排除的工作,以保證Light部門拿到的animation檔案是沒有問題的。

(6)Light部門:主要是負責把導演需要的燈光氣氛打出來,還有根據合成部門的需求去Render出合成師需要的layer跟pass。

(7)Effect部門:根據劇本的描寫與分鏡的Set,製作出整個動畫裡面需要的3D特效,並交給Comp部門使用。

(8)Comp合成部門:負責把Render好的layer、pass或是特效,做最後的合成跟色調的統一最後輸出影片。
不過有些公司是把Model跟Shader設定分在同部門,有些是把Shader跟Light還有Render跟Comp分在同部門,
基本上每家公司的分法都不見得一樣。主要是看每個案子的需求跟習慣來做分類。

不管項目名稱跟部門怎麼分法,大家在學習上,除了了解自己所專攻的項目之外,
還要去了解自己負責的項目對其他部門的項目的影響,以及那些項目製作會被我們所負責的項目給影響到。


以Model來舉例,並不是做出一體成形、精緻高面數(high polygon)的模型就表示你是好的模型師。
就一個好的模型,應該要注意面數是否會過高而影響後續Render花費太多時間,
還有模型做成一體成形對後面shader的製作或是燈光的設定會產生一些製作上的困擾 。
所以一個合格的模型師應該要去了解那些模型需要比較高的面數,
那些模型角色可能在畫面呈現的時候,只是驚鴻一暼,不需花費太多時間製作。
總歸一個重點就是瞭解pipeline(製作流程)之間的互相關係跟影響。

不管你是負責哪個項目的製作。你需要去了解怎樣才能把時間花在刀口上,
這一切的依據除了各組組長會去做衡量之外,對於每個項目的製作所需要花費的時間跟精緻度,
全都是要按照劇本的描寫、分鏡的設定及最後導演的需求來做為製作時的一個依據。