[Introduction to Shading Language Part 2]
คราวที่แล้ว เราได้พูดกันถึงเรื่องพื้นฐานของการใช้งาน shading Language ไปแล้ว ลองมาประยุกต์ใช้งานกันดูครับ...
ภาพลูกตาด้านบนนี้คือจุดหมายของเราในตอนนี้ เนื่องจากลูกตาเป็นส่วนประกอบที่สำคัญ ของตัวละครเกือบทุกตัวหลายๆคนคงเคยพยายามทำหลายๆวิธีมาแล้ว ลองมาดูวิธีนี้อีกอัน
จากภาพถ่าย close up ของลูกตา ลองเลียนแบบลักษณะการวางเส้นของม่านตาดูครับ
layer ก็ออกมาแบบนี้ครับ ลองทำตาม ไม่ยากอย่างที่คิด :)
ก็จะออกมาแบบนี้
เทคนิคนี้เหมาะกับ texture ความละเอียดระดับกลางเท่านั้น เหมาะกับ shot ที่ไม่ได้ close up เข้าไปที่ตาของตัวละคร ถ้าต้องการ close upจำเป็นต้องมีการ paint ที่ละเอียดกว่านี้ มากครับ ต้อง paint ให้เห็นเส้นใยของม่านตาและเส้นเลือดฝอยรอบดวงตาอย่างชัดเจนแต่เท่านี้ก็เพียงพอในการทำตาของตัวการ์ตูนทั่วไปได้ครับ ถึงคิวของ renderman แล้วครับ ลองดูตัวอย่าง slim template ด้านล่าง...
slim template ด้านบนนี้เดิมเป็น template ของ ceramic shader แล้วนำมาปรับแต่งโดยสังเกตที่hilight เอาไว้คือส่วนทีเพิ่มเข้าไปครับ shader ตัวนี้เป็นตัวอย่างที่ดีของ การส ร้าง และเรียกใช function ใน slim template function ตัวอย่างด้านบนส่งกลับข้อมูลแบบ color นั่นคือมีหน้าที่คำนวณสีแล้วส่งกลับมานั่นเอง
อันนี้ก็หน้าตาลอง shading network ที่ทำเสร็จแล้วครับ ลองมาดูกันทีละตัว... เริ่มจาก blin4 ตัวนี้คือ ตัวสร้างสีให้กับม่านตาครับ
ตั้งค่า Eccenticity และ Specular Rolloff ตามสมควรครับ แล้วลอง render ดูเราจะทำการใส texture ลงไป 2 ส่วนคือ surface color และ specular color surface color ก็คือภาพม่านตาที่วาดมาในตอนต้นนั่นเองครบ ส่วนภาพ specular color คือภาพ surface colorนั่นเองเพียงแต่นำมาเพิ่มสีดำสนิท ลงไปในส่วนของตาขาวครับ เพื่อไม่ให้สะท้อนแสงมากจนเกินไป
เนื่องจาก renderman รู้จักแค file .tex เท่านั้นในการทำ texture เราจึงต้องเปลี่ยน .tif ที่เราสร้างจาก Photoshop เป็น .tex โดย เลือกConvert>>Convert Textures และ เลือก smode periodic เพื่อไม่ให้ขอบด้าน s เป็นสีดำ เมื่อ Blin เสร็จก็จัดการต่อเข้ากับ ensemble_c ครับ
blin จะรับหน้าที่เป็น surface ของ ensemble เราต้องเพิ่มช่อง displaement ลงไปครับ โดยเลือก displacement แบบ simple
ช่อง displacement ใส colortogray ลงไป
เนื่องจาก displacement รับเฉพาะสีขาวดำ (float) เท่านั้น จึงต้องเปลี่ยนจากสีเป็นขาวดำก่อนครับ ต่อ inputcolor เข้ากับ colorramp...
เลือก ramptype เป็น T Ramp และตั้งสีขาวดำตามภาพเพื่อให้มีการ bump เกิดขึ้นที่ม่านตา ตรงนี้ก็เสร็จในส่วนของ ensemble_c ครับมาต่อกับในส่วนของ ensemble_s ซึ่งรับหน้าที่ในการสร้าง specular...
ต่อ offsetceramic ที่เราสร้างขึ้นเข้ากับ surface ของ ensemble_s และต่อ simple เข้าไปที่displacement คล้ายกับ ensemble_c แต colorramp จะแตกต่างกัน
colorramp ในส่วนนี้จะทำให้ตานูนขึ้นมาเพื่อรับ specular ได้ตรงตำแหน่งมากขึ้นครับ เมื่อเสร็จทั้งสอง ensemble ก็สร้าง ensemble adaptor มาหนึ่งตัว เพื่อเป็นตัวสลับ ensemble
กดปุ่ม add condition ก็จะมีปุ่มให้เราต่อ ensemble_c เข้าไปที่บรรทัดแรกตั้งชื่อ eye_color และ ensemble_s เข้าบรรทัดที่สอง ตั้งชื่อ eye_specular และ attach ensemble adaptor เข้าไปที่sphere ที่เราสร้างขึ้นใน Maya ได้เลยครับ
จัดแสงง่ายๆ และเปิด render global ของ renderman ขึ้นมาดู
ช่อง context เราต้องใส่ชื่อของ ensemble ที่ต้องการ render ครับ เช่น eye_color
ทำการ render ออกมา 2 ครั้งก็จะได้ออกมาแบบนี้ครับ shake เจ้าเก่าทำหน้าที่composite...
ต่อเข้าด้วยกันแบบ IAdd ก็เห็นผลลัทพ์ครับ :)
|
|