Displacement Map
สร้างฉากใต้ทะเล โดยใช้ Displacement Map
Chamferbox
ขั้นตอนการสร้าง เตียง ผ้าคลุมเตียง หมอนใบนั้น
Compesite Map
ขั้นตอนการสร้างวัสดุ น้ำ Compesite Map

[PRMan Memo page 2: LOD]
LOD [Level Of Detail]
เทคนิกหนึ่งที่เป็นที่นิยมใช้กันอย่างมากในการสร้าง special effect คือการสร้าง model หลายๆแบบ หลายๆระดับความละเอียดเอาไว ้และเลือกใช้ในแต่ละกรณีต่างกันออกไป เช่น ถ้าอยู่ใกล้กล้อง ใช model ที่มีความละเอียดสูงและอาจเห็นเพียงบางส่วน หรือใช้ตัวแสดงจริง แทนที่จะเป็น CG หรือ สตั๊นแมน เมื่ออยู่ไกลกล้องก็เลือกใช model ที่มีความ ละเอียดตํ่าลงหรือใช CG ที่รายละเอียดไม่สูงมากนัก PRMan ก็เช่นกันครับ มีความสามารถในการใช้งานเทคนิกอย่างที่ว่านี้ผ่านทางารกำหนด LOD หรือ Level Of Detail ลองนึกภาพฉากที่มีตัวละคร เป็นพันๆตัว อยู่ในสนามรบเราจะพบว่า ไม่มีทางที่มุมกล้องจะสามารถทำให้ทั้ง พันตัวมองเห็น detail ได้ครบถ้วนทุกตัว แสดงว่าต้องมีบางตัวอยู่ใกล ้กล้อง ซึ้งต้องมีความละเอียดสูง และบางตัว ต้องอยู่ไกลกล้อง ก็ไม่จำเป็นต้องมีรายละเอียดสูงมาก เป็นการประหยัดเวลาในการ render ลงได้อย่างมาก เทคนิกการทำ LOD จะใช้การวัดขนาดของ model บนภาพในขณะ render (pixel space) คือวัดขนาดเป็น pixel โดยใช้จนาดอ้างอิงจาก bounding box ที่กำหนด

จากกราฟแสดงให้เห็นการเปลี่ยน model ใน version ต่างๆโดยการ fade-in และ fade-out ตามขนาดที่เรากำหนด ลองมาดูRIB กันครับ

สิ่งที่เราต้องกำหนดมีสองอย่างคือ Detail หรือ Detail size เป็นการกำหนด bounding box หรือกรอบรอบตัวละคร เพื่อกำหนดว่าตัวละครที่เราต้องการมีขนาดประมาณเท่าไหร ่โดยใช้มุมของกล่องสองมุมซึ่งกำหนดโดยตำแหน่ง xyz สองชุด (6ตัว) ต่อมาคือ Detail Range หรือพื้นที่ที่bounding box ที่เรากำหนดขึ้นมาปรากฎขณะ render กำหนดโดยตัวเลข 4 ตัว สองตัวแรกเป็นช่วงในการ fade-in และสองตัวหลังเป็นช่วงในการ fade-out ลองดูตัวอย่างซักอันดีกว่าครับ

ตัวนี้เป็นตัวละครความละเอียดสูงที่เราต้องการเมื่ออยู่ใกล้กล้อง มีการใช้งาน shader เต็มที่รวมทั้ง displacement ด้วย และตัวละครเป็น Subdivision Surfaces ซื่ง render ช้า

version ที่มีความละเอียดลดลง โดยเปลี่ยนกลับไปเป็น Polygon และไม่มีการใช Displacement มี2118 faces

version ที่มีความละเอียดตํ่าลงอีกระดับ โดยใช้คำสั่ง Polygons>>Reduce เพื่อลดจำนวน polygon มี530 faces และลบลูกตาออก

version ที่มีความละเอียดตํ่าสุดลดจำนวน polygon เหลือเพียง 84 faces และลบลูกตาออก

รูปแบบในการใช้งาน ต้อง group model แต่ละ version เอาไว้เป็น group และ group ทั้งหมดรวมกันอีกทีgroup บนสุดของ model ต้อง attach LOD Control ลงไป

และ attch Detail Range ลงไปที่group node ของแต่ละ model กำหนด Detail Size min, max ให้ใกล้เคียงกับ model นึกภาพว่าโมเดลคือกล่องมุมกล่องล่างซ้ายและบนขวา coordinate เป็นเท่าไหร่ก็ใส่ลงไปครบ Detail Range ตัวที่หลาบที่สุดจะกำหนดสองตัวแรกเป็น 0, 0 ตัวถัดไปก็คือขนาดที่model ตัวต่อไปจะเริ่ม fade-in และตัวที่หยาบที่สุดเริ่ม fade-out ในกรณีนี้คือ 9และ 16 หมายถึงขนาด 3x3 และ 4x4 pixel นั่นเองครับ ส่วนขนาดสำหรับตัวที่ละเอียดที่สุดสองตัวท้ายจะตัวเป็นตัวเลขมากๆเข้าไว้เช่น 1e38 หรือ 10 ยกกำลัง 38 ก็คือใหญ่มากๆ สุดท้ายต้อง attach Slim Archivers แต่ละอันลงไปใน group node ของ model แต่ละตัวครับ

ไม่ต้องตั้งค่าอะไรครับ เพียงแค่ให slim สร้าง LOD ให้เราใน RIBเท่านั้น ลองมาดูผลงานกัน

ภาพนี้ปิด polygon และ subdivision surfaces เอาไว้ครับ เพื่อให้แสดงผลได้เร็วขึ้น

ถ้าเปิดออกมาก็เป็นแบบนี้

ลอง render ดูก็จะพบว่า model ที่อยู่ไกลจะ render เร็วมาก ดังนั้นเราสามารถใส่ลงไปเป็นพันหรือหมื่นตัวก็ได้ครับ ขึ้นกับ RAM ที่มีและกำลังเครื่อง

ลอง render จากตัวหลังสุดก็จะพบว่าถ้าเลื่อนกล้องเข้ามาใกล้เราก็จะเห็น detail ของตัวนี้อีกครั้ง

ลองดูอีกซักมุมครับ
LOD เป็นเทกนิกที่มีประโยชน์อย่างมากในการสร้างฉากที่ต้องมีจำนวน model มากๆ เช่นใบไม ้ต้นหญ้า นักรบในสนามรบ คนในเมือง เหล่านี้เป็นต้น หรือแม้แต่ฉากที่มีmodel ไม่เยอะแต่มีการเลื่อนกล้องไปมาและ model มีความละเอียดสูงก็ใช ้เทกนิกนี้ช่วยได ้ลองใช้งานดูครับ

<<Back