Saturday, December 12, 2015

รัน Pixar Denoise แบบ stand alone

Denoiser เป็นฟังค์ชั่นที่เพิ่มมาใหม่ใน Renderman ver 20.x ซึ่งจากภาพตัวอย่างในเวบ Pixar แล้ว น่าใช้เป็นที่สุด

ภาพจาก http://renderman.pixar.com/view/denoiser

ปกติ เราสามารถสั่งเปิด Denoise ได้จาก Render Globals ใน Maya ซึ่งมี 2 โหมดหลักๆ คือ single frame ซึ่งแก้ noise ในภาพเดียว และ cross frame ซึ่งจะดูเฟรมหน้าและหลัง ด้วย


แต่ว่าการสั่ง denoise ใน render globals เลยนั้นผมว่าไม่สะดวกนัก เพราะคำสั่งนี้จะไม่ทำงานเลย จนกว่าการเรนเดอร์จะสิ้นสุดถึงเฟรมสุดท้าย ซึ่งถ้าเรา cancel batch render กลางคัน คำสั่งก็จะไม่รันเลย

ดังนั้นวิธีที่ดีกว่า คือการสั่งจาก command line ซึ่งเราจะพบตัว denoise.exe ได้ ใน folder ของ Pixar

  

ซึ่งวิธีการใส่คำสั่ง ผมแนะนำให้ทำเป็น bat ไฟล์ ซึ่งทำเพียงไฟล์เดียวแล้วก็อปวางใน folder ที่ต้องการใช้งานได้ สะดวกมาก

 PATH "C:\Program Files\Pixar\RenderManProServer-20.5\bin"; %PATH%;  
 dir /b *.exr > files.txt  
 denoise.exe -b --crossframe -v variance files.txt  

PATH = เพื่อให้ bat file รู้ตำแหน่งของ denoise.exe
dir = เพื่อเซฟรายชื่อไฟล์ exr ใน folder นั้นๆ ลง files.txt
และบรรทัดสุดท้ายคือรัน denoise โดยใช้ variance เพื่อใช้รายชื่อไฟล์ที่เซฟเอาไว้

หลังจากนั้น นำ bat ไฟล์ ก๊อปไปวางไว้ใน folder ของไฟล์ภาพ

ก่อนรัน denoise.bat
 
หลังรัน denoise.bat

โดย default โปรแกรม denoise จะสร้างไฟล์ด้วยชื่อ _filtered และวางไว้ที่เดียวกับไฟล์ต้นแบบเลย

ถ้าต้องการตั้งชื่อใหม่ หรือเซฟไปที่อื่น ทาง Pixar มี flag อื่นๆ ให้เราทำได้ อันนี้ลองหาข้อมูลใน doc ดูนะครับ

https://renderman.pixar.com/resources/current/RenderMan/risDenoiseTool.html

ถามว่า จะสามารถ denoise ภาพที่เรนเดอร์จากโปรแกรมอื่นได้มั้ย... denoise tool จำเป็นต้องใช้ albedo pass ในไฟล์ exr ซึ่งหาก render engine ที่เราเลือกใช้สามารถเรนเดอร์ pass นี้ได้ ก็คงได้ละมังครับ อันนี้ผมไม่แน่ใจเพราะ V-Ray ผมยังหาวิธีเรน albedo pass ไม่ได้เลย

ถึงจะดูคล้ายๆ diffuse แต่มันเป็นคนละอย่างกัน


เดี๋ยว entry ต่อไปผมจะเอาผลการ denoise animation ต้นไม้มาลงให้ดูนะครับ

No comments:

Post a Comment