รูปแบบไฟล์สำหรับโมเดล 3 มิติแบบคงที่และเคลื่อนไหว


22

ฉันกำลังเขียนเกม 3 มิติใน C ++ กับ OpenGL และฉันมาถึงส่วนที่จะโหลดโมเดล 3 มิติดังนั้นฉันจึงกำลังมองหารูปแบบไฟล์และเทคนิคยอดนิยมสำหรับ

  • แสดงตาข่ายคงที่และ
  • แสดงภาพเคลื่อนไหวตาข่าย

ฉันได้พบรูปแบบและเทคนิคที่เป็นไปได้ค่อนข้างมากเช่นภาพเคลื่อนไหวเฟรมเฟรม, ภาพเคลื่อนไหวโครงกระดูก, MD2 ถึง MD5, 3DS, X, Collada ฯลฯ pp

เพื่อความเรียบง่ายฉันต้องการใช้รูปแบบ (และเทคนิค) ที่ช่วยให้ทั้งตาข่ายคงที่และเคลื่อนไหว ดังนั้นคำถามของฉันคือถ้ารูปแบบใดรูปแบบหนึ่งเหมาะสมกับงานนั้นและรูปแบบใดที่คุณต้องการแนะนำ และเพื่อชี้แจงเล็กน้อย: ฉันไม่ต้องการภาพเคลื่อนไหวที่นุ่มนวลหรือคุณลักษณะใหม่เอี่ยม

Sidenote: เพราะฉันเป็นแฟนของเครื่องปั่น (แต่ไม่ใช่ผู้เชี่ยวชาญ ;-)) มันจะมีประโยชน์ถ้ามันสามารถใช้กับมันได้ - แต่แน่นอนว่ามันไม่ควรจะเป็นโชว์จุกที่นี่

คำตอบ:


16

ผมขอเสนอให้คุณใช้Collada

ได้รับการสนับสนุนอย่างกว้างขวางจากเครื่องมือ DCC และได้มาตรฐาน มันรองรับอนิเมชั่นโครงกระดูกและ .. ก็ทำได้เกือบทุกอย่างรวมถึงตัว shaders และฟิสิกส์ - มันไม่เกี่ยวข้องกับคุณ

แอนิเมชันที่ใช้ Vertex เช่นในรูปแบบ MDL หรือ MD2 นั้นเป็นเรื่องราวในอดีตมากกว่าหรือน้อยกว่า วันนี้ภาพเคลื่อนไหวส่วนใหญ่เป็นภาพเคลื่อนไหวโครงกระดูก (เช่นคิดว่าถ้าตัวอักษรที่มีหัวต่อที่ราบเรียบ) และเครื่องมือสร้างเนื้อหาได้รับการปรับให้เหมาะกับพวกเขา

Blender มีผู้ส่งออก Collada ที่ใช้งานได้ แต่เช่นเคยการส่งออกสิ่งของจาก Blender อาจสร้างความรำคาญ คุณอาจต้องลองผู้ส่งออกอื่นหรือรูปแบบไฟล์หรือแฮ็คสคริปต์ด้วยตนเองหากคุณประสบปัญหา

หากต้องการโหลด Collada ให้ใช้ไลบรารีเช่นFColladaหรือColladaDOM (อย่าพยายามแยกวิเคราะห์ด้วยตัวคุณเอง Collada เป็นสัตว์ประหลาด XML ที่อ้วนมาก ... ) นอกจากนี้ยังมีไลบรารีการนำเข้าสินทรัพย์เปิดซึ่งโหลดรูปแบบไฟล์ประมาณ 25 รูปแบบรวมถึง Collada (และรูปแบบอื่น ๆ ทั้งหมดที่คุณพูดถึง) มันจะเป็นตัวเลือกที่ยอดเยี่ยมเนื่องจากมีจุดมุ่งหมายโดยเฉพาะอย่างยิ่งต่อผู้พัฒนาเกมและให้ผลลัพธ์ในรูปแบบที่เหมาะสมสำหรับการแสดงผลแบบเรียลไทม์ แต่พูดตามตรง: ฉันเป็นหนึ่งในผู้ร่วมเขียนดังนั้นฉันอาจจะลำเอียงเล็กน้อย

สุดท้าย แต่ไม่ท้ายสุด : รูปแบบไฟล์ที่คุณใช้เพื่อนำเข้าสินทรัพย์ของคุณไม่ควรกำหนดความสามารถของเครื่องยนต์และเทคนิคที่ใช้ - ควรเป็นวิธีอื่น ไม่ว่าภาพเคลื่อนไหวของคุณจะเรียบเนียนสุด ๆ ไม่ใช่คำถามของรูปแบบการนำเข้า แต่เป็นเรื่องเกี่ยวกับเทคนิคที่คุณใช้ในการเคลื่อนไหวตาข่ายและวิธีการสร้างแบบจำลองที่ดีในตอนแรก รูปแบบการนำเข้าควรช่วยให้คุณนำข้อมูลจาก Blender มาไว้ในเกมของคุณ


ขอบคุณมากสำหรับคำตอบโดยละเอียดของคุณ ฉันได้ยิน Collada เป็นครั้งแรกในวันนี้ (แนะนำโดยเพื่อน) และไม่แน่ใจว่าพร้อมใช้งานในสภาพแวดล้อมการผลิตจริงหรือไม่ ฉันจะให้มันยิงตอนนี้ขอบคุณ :-)
stschindler

2
คำแนะนำที่ดีโดยเฉพาะการอ้างอิงถึง AssImp ฉันจะไม่แนะนำ COLLADA แต่เนื่องจากไม่มีใครสนับสนุนทั้งหมดอย่างถูกต้องและสม่ำเสมอและมันค่อนข้างใหญ่สำหรับวัตถุประสงค์ของเนื้อหาจริง ฉันขอแนะนำให้ใช้บางอย่างเช่น MD5 ซึ่งทำให้คุณมีโครงกระดูกและมีการใช้งานอย่างถูกต้อง (ฉันคิดว่า) ฉันจะไม่ยกเลิก MD2 ค่อนข้างง่ายเช่นกัน; มีโมเดลตัวอย่างจำนวนมากสำหรับมันและคุณสามารถสร้างภาพเคลื่อนไหวได้อย่างง่ายดาย (แม้ว่ามันจะไร้ประโยชน์สำหรับ ragdolls หรือสิ่งที่มีอยู่)
ChrisE

ฉันจะเล่นกับไฟล์หลาย ๆ รูปแบบ ขอบคุณ AssImp ที่จะทำให้ง่ายขึ้น MD2 เป็นความคิดแรกของฉัน แต่ฉันคิดว่ามันค่อนข้างแพงในการสร้างแทนที่จะส่งออกกระดูกที่เหมาะสม Ragdolls ไม่ต้องการในกรณีของฉันฉันแค่ต้องการโมเดลเคลื่อนไหวไม่มีสาขาวิชาฟิสิกส์
stschindler

มีผู้ส่งออก Collada ที่ไม่ดีอย่างแท้จริงออกมาที่นั่น แต่อย่างน้อยก็เป็นรูปแบบที่มีเอกสารที่ดีดังนั้นคุณมักจะรู้ว่าใครควรตำหนิ :-) MD5 ก็เป็นผู้สมัครที่ดีเช่นกัน แต่ฉันไม่รู้ว่าผู้ส่งออกเครื่องปั่นดีแค่ไหน MD2 มีการแสดงจุดสุดยอดที่ จำกัด มากและทนทุกข์ทรมานจากขนาดและขีด จำกัด ความแม่นยำ ฉันจะไม่ใช้มันจริงๆไม่มีเหตุผลที่จะทำเช่นนั้น
Alexander Gessler

wazim.com/Collada_Tutorial_1.htmเป็นแบบฝึกหัดในเชิงลึกที่ดีสำหรับการโหลด collada แต่ฉันยังคงแนะนำให้ใช้ห้องสมุดแทน
Exilyth
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.