[PRMan Memo page 2: LOD]
จากกราฟแสดงให้เห็นการเปลี่ยน 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 ของตัวนี้อีกครั้ง
ลองดูอีกซักมุมครับ |
|