[Global Illumination in mental ray] GI คืออะไรและทำงานอย่างไร ??
การคำนวณ GI แบ่งเป็น 2 ประเภทใหญ่ๆคือ แบบ Radiosity และ Photon mapping Lightscape เป็นตัวอย่างที่ดีของการคำนวณแบบ Radiosity ซึ่งตอนนี้ถูกผนวกเข้าไปเป็นส่วนหนึ่งของ Autodesk VIZ 4 และ 3ds max 5 แล้ว การคำนวณแบบนี้จะพยายามคำนวณให้ใก ้เคียงกับแสงจริงมากที่ สุด โดยจะทำการ subdivide หรือแบ่ง object ในฉากของเป็นส่วนย่อย เพื่อให้เกิด vertex กระจายอยู่ทั่ว ทั้งฉาก vertex เหล่านี้จะเป็นตัวเก็บค่าแสงที่ได้รับมา นั่นหมายความว่า ยิ่ง vertex เยอะมาก การคำนวณก็ จะกินเวลา มาก Radiosity จึงเหมาะกับ ฉากที่เป็นเหลี่ยมเช่นห้อง บ้าน เป็นต้น Photon mapping เป็นการคำนวณอีกแบบ ซึ่งไม่ใช้ vertex ในการเก็บข้อมูล แต่เก็บข้อมูลในรูปของ texture แทน โดยมี Photon shader เป็นตัวรับผิดชอบในการจัดการกับ map หลักการคือแสงแต่ละตัวจะ ยิง Photon ออกมา แล้ว Photon เหล่านี้จะเด้งไปมาในฉากเหมือนลูกบอล เมื่อเด้งไปชนอะไรก็ตามจะมีสี ติดอยู่ตรงนั้น
ทั้งสามภาพนี้แสดงให้เห็นว่า photon แต่ละอันจะมีขนาด เมื่อมีขนาดเล็ก เช่นภาพแรก เราก็จะเห็นได้ชัดเจน และเมื่อใหญ่ขึ้นเรื่อยๆ photon map ก็จะกลืนเข้าหากัน ทำให้ภาพดูเนียนขึ้น สำหรับ mental ray มีความสามารถอีกอย่างที่เรียกว่า Final Gather ซึ่งมีความสามารถในการเปล่งแสง ออกมาจาก object ทุกตัว แล้วเกลี่ยสีจนเนียนเรียบ เมื่อเราใช้ GI และ Final Gather คู่กันจะทำให้ ภาพออกมา เนียนมากๆ แต่ Final Gatherกินเวลาคำนวณพอดูเลยทีเดียว ลองมาทำกันจริงๆใน Maya กันเลยดีกว่าครับ ผมมีฉากง่ายๆที่เห็นข้างล่าง ใช้ lambert ทั้งหมด เปลี่ยนสี ให้ต่างกัน แล้วก็ใส่แสงลงไปสองดวง spotlight นะครับ
เมื่อลง mental ray for maya ไปเร็วจะเปลี่ยนตัว render ให้เป็น mental ray ได้โดยไปที่ render>>render using>>mental ray ถึงตอนนี้ให้คลิกที่ spotlight ทีละตัวนะครับ แล้วตั้งค่าตามข้างล่างนี้เลย
ส่วนที่สำคัญคือตั้ง Decay ให้เป็น Quadratic ซึ่งเป็น Decay ของแสงจริงตั้ง Intensity เยอะ เพื่อให้แสง แรงพอที่จะไปถึง object และเกิดเงาในที่นี้ก็ตั้งไว้ที่ 1000 มาดูส่วนของ mental ray บ้าง ติ๊ก Emit Photon ให้ยิง Photon ออกมา ค่า Energy สามค่านี้คือ RGB นั่นเอง เป็นค่าที่บอกว่าเมื่อแสงตกกระทบแล้วจะสะท้อนออกมาแรงแค่ไหน แล้วก็ติ๊ก Physical เพื่อให้ energy ลดลงเมื่อสะท้อนไปหลายที Global Illum Phtons ก็คือจำนวน Photon ที่จะปล่อยออกมา ปกติ ผมจะตั้งไว้ ไม่เกิน 10000 ถ้าจะลอง render ดูเร็วๆก็อาจจะตั้งไว้ซัก 1000 ก็ได้ครับ Area Light ทำให้เกิดเงาแบบ soft shadow ตั้งค่าถามที่ให้มาก้ OK แล้วครับ คือ sampling 3 3 ถ้า มากกว่านี้จะ render ช้ามากๆอาจจะลองตั้งให้น้อยกว่านี้ก็ได้ ตั้งค่าให้แสงทั้งสองดวง จะลองตั้งให้ต่างกันดูก็ได้ครับ ลองดูหลายๆแบบ จะทำให้รู้จักตัวแปลแต่ละตัวมาก ขึ้น ทีนี้มาถึง Render Global ของ mental ray บ้าง
ดูที่หัวข้อ Overrides แล้วคลิกให้ Global Illum Generating และ Global Illum Receiving เป็น On เพื่อให้ Object ในฉากทุกตัวสะท้อนและรับ Photon
ติ๊ก Global Illum ตั้ง Accuracy ไว้ที่ 100 ค่านี้คือค่าความแม่นยำในการยิง Photon ถ้าตั้งไว้มากเช่น 1000 ก็จะช้า ในตอนแรกยังไม่ต้องติ๊ก Final Gather ครับ render ดูแล้วตั้ง Global Illum Radius ให้ ใหญ่พอจนมองไม่เห็นเป็นรอยมากนัก เช่นตัวอย่างอันบนสุด ผมก็ตั้งไว้ที่ 3ถ้ามากกว่านี้จะเบรอเกินไป แต่ละ ฉากจะไม่เท่ากันครับ อันนี้ต้องลองปรับดู เมื่อได้ Global Illum Radius ที่พอใจแล้วก็ติ๊ก Final Gatherตอนแรกก็ตั้ง Final Gather Rays ไ ว้ซัก 50 ไม่ก็ 100 แล้วปรับ min, max Radius ให้เหมาะสม ถ้าค่า Radius มากไปก็จะเบรอเกินไปน้อยไปก็จะ เห็นเป็น รอยด่าง ต้องลองปรับให้ได้ที่ครับ ในที่นี้ผมก็ตั้งไว้ที่ 1 และ 2.5 แล้วก็ตั้ง Final Gather Rays ไว้ 250 เพื่อ render ครั้งสุดท้าย อันต้องระวังนิดนะครับ ตอนแรก Maya จะตั้งไว้ให้เรา 1000 ถ้าสั่ง render ไปเลย จะช้าเป็นเต่าเลย
สุดท้ายตรงนี้เป็นการตั้งคุณภาพของภาพโดยจะกำหนดจากตัวแปล min และ max samples โดยปกติจะตั้ง ไว้ที่ -1 และ 1 เพื่อให้ render เร็ว แต่ถ้าต้องการคุณภาพมากขึ้นก็ลองเพิ่มขึ้นเรื่อยๆ อันนี้ผมตั้งไว้ที่ 1 กับ 3 ก็ ok แล้วครับ ถ้ามีเวลา render ก็ลองตัวไว้ที่ 3 กับ 4 ก็ได้ แต่จะช้า อย่างมาก สั่ง render ออกมาก็ได้ออกมาแบบนี้
ภาพนี้ใช้เวลาประมาณ 15 นาที ก็ถือว่าไม่นานมากครับสำหรับคุณภาพระดับนี้ ทั้ง soft shadow และ GI |
|