การใช้กระดูกควบคุมแบบจำลองสามมิติ

จากวิกิพีเดีย สารานุกรมเสรี
ไปยังการนำทาง ไปยังการค้นหา
การใช้กระดูกควบคุมแบบจำลองสามมิติ

ในงานคอมพิวเตอร์กราฟิกส์สามมิติ และเกมคอมพิวเตอร์แบบ 3 มิติ นิยมใช้กระดูกเพื่อบังคับการเคลื่อนไหวของโมเดลสามมิติ[ต้องการอ้างอิง] โดยแทนที่จะเก็บ Key frame ของแต่ละการเคลื่อนไหวแยกกันไป ก็อาจเก็บการเคลื่อนไหวของกระดูกแทน เมื่อมีการขยับกระดูก กระดูกก็จะไปบังคับให้กลุ่มของจุดหรือ Vertex (geometry) เคลื่อนที่ไปตามกระดูกนั้นๆ

ลักษณะการเกาะกระดูกของ vertex[แก้]

Weight[แก้]

โดยทั่วไปในโมเดลสามมิติหนึ่งๆถ้ามีกระดูกก็มักจะมีกระดูกหลายชิ้น โดย vertex หนึ่งๆอาจเกาะอยู่กับกระดูกมากกว่าหนึ่งชิ้น ด้วยน้ำหนัก (Weight) ที่แตกต่างกันไป เช่นเกาะกระดูก A ด้วยน้ำหนัก 0.7 และเกาะกระดูก B ด้วยน้ำหนัก 0.3 โดยทั่วไปซอฟต์แวร์มักแสดงค่าน้ำหนักรวมเป็น 1.0 หรืออาจคำนวณจากอัตราส่วนต่อค่ารวม weight ทั้งหมดก็ได้ ทั้งนี้ ขึ้นกับซอฟต์แวร์ การใส่ค่า weight เริ่มต้นให้ Vertex นี้สามารถทำได้ทั้งแบบอัตโนมัติด้วยขั้นตอนวิธีที่แตกต่างกันไป หรือใช้การระบายสีน้ำหนักโดยมนุษย์ (paint weight) หรือผสมทั้งสองวิธีการด้วยกันเช่นให้ซอฟต์แวร์ช่วยคำนวณก่อน แล้วค่อยตบแต่งด้วยการ paint weight ในบางจุดเพื่อเก็บรายละเอียด

การเกาะกระดูกแบบนี้เหมาะกับการจำลองการเคลื่อนไหวโมเดลที่มีผิวยืดหยุ่น เช่นคน สัตว์ เสื้อผ้า นอกจากนี้การคำนวณการเกาะกระดูกจากน้ำหนักก็ยังมีหลายขั้นตอนวิธีให้เลือก เช่น Linear Blend Skin (LBS) หรือ Dual quaternion[1] ฯลฯ ซึ่งจะให้ผลลัพธ์ที่แตกต่างกันและใช้เวลาในการประมวลผลไม่เท่ากัน หรือบางครั้งอาจซับซ้อนกว่าการคำนวณโดยใช้กระดูกควบคุม vertex โดยตรง เช่นอาจใช้กระดูกควบคุมโมเดลความละเอียดต่ำ (low poly) แล้วใช้โมเดลความละเอียดต่ำไปทำหน้าที่เป็นกระดูกเพื่อควบคุมโมเดลความละเอียดสูง[2] เป็นต้น

แบบอื่นๆ[แก้]

การเกาะกระดูกแบบอื่นๆ ใช้การเก็บค่า weight ค่าเดียวแทนที่จะเก็บหลายค่าสำหรับแต่ละ vertex ในลักษณะนี้ ซอฟต์แวร์อาจใช้เทคนิกต่างๆเพื่อช่วยให้รอยพับดูเรียบขึ้น เช่นการคำนวณจากระยะทางระหว่าง vertex กับกระดูก หรือการคำนวณ weight ของแต่ละ vertex โดยใช้หลักการนำความร้อน[3] (แต่วิธีนี้สุดท้ายก็จะกลับไปใช้วิธีแบบเก็บค่า weight ที่คำนวณได้ลงในแต่ละ vertex) หรือบังคับค่า weight ตายตัวกับกลุ่มของ vertex ต่อกระดูกชิ้นหนึ่งๆ ซึ่งวิธีหลังนี้นิยมใช้กับโมเดลประเภทเครื่องกลไก ข้อต่อหุ่นยนต์[ต้องการอ้างอิง] ฯลฯ

อ้างอิง[แก้]

ดูเพิ่ม[แก้]