2009年10月31日 星期六

使用 mental ray 把 occlusion bake 成貼圖 (texture)


Ambient occlusion 這幾年來已經成為圖學玩家的愛將. 在大部分的case來說,它可以大幅增加物件的立體感,也可以凸顯 物件的細節.

在Maya裡我們如果想要先把 occlusion 算成貼圖 (為了加快render速度或拿來跟其他貼圖做額外處理),可以使用 mental ray 的 color -> batch bake 功能.




Bake 大概要注意的設定:
  • objects to bake : selected (只處理被選取的物件) 或 all (處理所有物件)
  • Bake to : Texture (貼圖)
  • Bake shadows : 是否把陰影也算進來
  • Camera : 指定運算使用的攝影機
  • Color Mode : Occlusion
  • Occlusion rays : sample的一種. 數值越高效果越好,運算時間也增加. 預設值是 64
  • Occlusion falloff : 距離衰退值. 零代表不衰退.
  • X Y resolution : 產生貼圖大小
  • Bits per channel : 8 或 16 通常就夠了, 除非要當 render pass
  • samples : anti-aliasing 數值. 預設是 1
  • bake to one map: 是否只產生一張貼圖




以上的結果是沒使用final gather去算的. 不但速度很慢, noise 也稍多了一點. 許要使用更高的 occlusion ray 才可以產生較順的圖. Autodesk 在 說明書裡也比較推薦使用 final gather 去算 AO. 要把 final gather 打開的話是在 Window->Rendering Editors-> Render Settings->Indirect Lighting ->Final Gathering 的 選項裡把 final gathering 打勾.





這是加上 final gather 算的 AO. 速度加快不少,顏色分配也比較順. 拿到 AO的貼圖之後你就可以對它做很多事,例如把它乘上 diffuse 顏色,讓細節更明顯等等.

3 則留言:

  1. 是否有方法可以把bake option中的设置写进mel中,在运行mel就可以完成设置?

    回覆刪除
  2. 怎麼把BAKE好的AO貼圖輸出呀?

    回覆刪除
  3. @aaron fang : 由於這功能是用mental ray 算的,而mental ray功能很多時候都不會在 script editor 看到相對mel指令,所以可能還要仔細研究看有沒有相對的mel.

    @JC_Jr : bake好之後該貼圖應該會連結到物件的材質,去看貼圖路徑就可以找到輸出的位子.

    回覆刪除