มีข้อกำหนดมาตรฐานสำหรับการแสดงกราฟิก 3 มิติหรือไม่


12

ฉันกำลังอ่านหนังสือเกี่ยวกับคอมพิวเตอร์กราฟิกและในบางครั้งมันก็แสดงแบบจำลอง 3 มิติที่สร้างจากไฟล์. dat

นี่เป็นกฎบางประการสำหรับการสร้างไฟล์. dat:

  • ทำจากรายการของตำแหน่งจุดสุดยอด / ใบหน้า
  • เขียนทวนเข็มนาฬิกา
  • ใบหน้าลงท้ายด้วยจุด (.)
  • เศษส่วนยังเป็นที่ยอมรับ

ฉันต้องการทราบว่านี่เป็นมาตรฐานหรือไม่ถ้าไม่อะไรคือวิธีมาตรฐานในการกำหนดวัตถุ 3 มิติ

นอกจากนี้หากมีข้อกำหนดใครเป็นผู้กำหนดและหาได้ที่ไหน

คำตอบ:


8

เมื่อพูดถึงรูปแบบไฟล์เรากำลังพูดถึงการเก็บข้อมูลบางอย่างที่เกี่ยวข้องกับแบบจำลอง / เรขาคณิต 3 มิติ ไม่มีมาตรฐานสากลสำหรับรูปแบบไฟล์สำหรับเรขาคณิต 3 มิติที่คงอยู่ มีเพียงบางรูปแบบที่โดดเด่นกว่ารูปแบบอื่น ๆ

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

เช่นเดียวกันกับรูปแบบไฟล์ที่จัดเก็บข้อมูล 3D โดยทั่วไปซอฟต์แวร์สร้างแบบจำลอง 3 มิติจะมีรูปแบบที่ต้องการหนึ่งหรือชุด ส่วนใหญ่จะกำหนดรูปแบบที่กำหนดเองที่ใช้งานได้กับเครื่องมือรุ่นที่ระบุเท่านั้น สิ่งนี้อาจเกิดขึ้นได้จากหลายสาเหตุตั้งแต่การทำให้การทำงานภายในของแอพพลิเคชั่นง่ายขึ้นหรือทำให้การโหลดไฟล์เร็วขึ้นจนถึงการเชื่อมโยงผู้ใช้กับเครื่องมือที่กำหนด

นี้.datรูปแบบที่คุณอธิบายเป็นรูปแบบที่กำหนดเองที่สร้างขึ้นโดยผู้เขียนหนังสือเล่มนี้ซึ่งได้รับการออกแบบอาจจะด้วยความเรียบง่ายในใจ ดูเหมือนว่าจะเป็นไฟล์ข้อความคล้ายกับรูปแบบWavefront OBJซึ่งในทางกลับกันเป็นรูปแบบที่นิยมมากสำหรับการจัดเก็บรูปทรงเรขาคณิตคงที่แม้ว่าจะล้าสมัยไปแล้วในตอนนี้ อาจกล่าวได้ว่า.OBJรูปแบบนั้นเป็น.BMPรูปแบบโมเดล 3 มิติ

รูปแบบโมเดล 3D ยอดนิยมอื่น ๆ ได้แก่ :

และอื่น ๆ อีกมากมาย. คำอธิบายทั่วไปมากขึ้นที่นี่

โปรดทราบว่าฉันได้กล่าวไว้ในตอนต้นว่าสิ่งเหล่านี้เป็นรูปแบบสำหรับการจัดเก็บ / สร้างแบบจำลอง 3 มิติหรือรูปทรงเรขาคณิตบนที่เก็บข้อมูลออฟไลน์ ไม่ได้หมายความว่า (และมักจะไม่ใช่กรณีนี้) ว่าแอปพลิเคชันที่ใช้พวกเขาจะเก็บข้อมูลภายในหน่วยความจำโดยใช้เลย์เอาต์เดียวกันกับไฟล์ โดยปกติแล้วข้อมูลประเภทนี้จะได้รับการประมวลผลจำนวนมากหลังจากที่โหลดจากไฟล์จนกว่าจะปรากฏขึ้นบนหน้าจอ


1
"โดยปกติแล้วข้อมูลประเภทนี้จะได้รับการประมวลผลจำนวนมากหลังจากที่ถูกโหลดจากไฟล์จนกว่าจะปรากฏขึ้นบนหน้าจอ" เหมือนภาพที่ได้รับการแปลงเป็นอาร์เรย์พิกเซลก่อนที่จะถูกผลักบนหน้าจอโดยไม่คำนึงถึงรูปแบบดั้งเดิม (การบีบอัดฮาร์ดแวร์แม้จะมี)
ประหลาดวงล้อ

@ ratchetfreak แต่ไม่ใช่ว่าการใช้รูปแบบ 3 มิติทั้งหมดจะจบลงที่หน้าจอ
joojaa

BMP ซึ่งเป็นรูปแบบไบนารีไม่ใช่คู่ที่ดีของ OBJ การจับคู่ที่ดีกว่านั้นคือXPMซึ่งเป็นข้อความ
Ruslan

5

ไม่มีรูปแบบมาตรฐานสำหรับโมเดล 3 มิติ คนทั่วไปบางคนจะถูกระบุไว้ในคำตอบของ glampert สามารถพบได้มากขึ้นในคำตอบ SEนี้

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

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


4

ไม่มีมาตรฐานเดียวที่กำหนดที่เก็บข้อมูลของแบบจำลอง 3 มิติ API กราฟิกนั้นให้ความสำคัญกับรูปสามเหลี่ยมซึ่งกำหนดโดยจุดยอดและดัชนีที่ระบุว่าจุดยอดใดเป็นรูปสามเหลี่ยม

บริษัท หลายแห่งได้สร้างรูปแบบโมเดลของตนเองพร้อมคุณสมบัติและเป้าหมายที่แตกต่างกัน หนึ่งในสิ่งที่ง่ายที่สุดคือรูปแบบ. obj (วัตถุ Wavefront) ซึ่งมีรายการของตำแหน่งจุดสุดยอด, บรรทัดฐานและพิกัดพื้นผิวและรายการของดัชนีที่ประกอบเป็นรูปสามเหลี่ยม นอกจากนี้ยังมีวัสดุที่มีคุณสมบัติพื้นฐานบางอย่างเป็นพื้นผิวสีกระจายและ specular

รูปแบบโมเดลขั้นสูงเพิ่มเติมเช่น. fbx (FilmBox) ที่ Autodesk ใช้มีข้อมูลเพิ่มเติมที่ซอฟต์แวร์การสร้างแบบจำลองต้องการ เหล่านี้อาจรวมถึงกระดูกลำดับชั้นและคุณสมบัติจุดสุดยอดอื่น ๆ ที่ใช้สำหรับการสร้างสกินเป็นต้นดังนั้นจึงมี "มาตรฐาน" แต่ไม่รวมเป็นหนึ่งเดียวเนื่องจากทุกโปรแกรมอาจต้องการข้อมูลที่แตกต่างกัน แต่ wavefront เป็นตัวเลือกที่ดีมากเพราะแอปพลิเคชั่นการสร้างแบบจำลองจำนวนมากสามารถส่งออกไปยังมันและมันเป็นเรื่องง่ายที่จะเขียน (ค้นหา) ผู้นำเข้า


3

ตามคำตอบอื่น ๆ ที่กล่าวถึงมีรูปแบบการแข่งขันหลายรูปแบบสำหรับจัดเก็บข้อมูล 3D

อย่างไรก็ตามรูปแบบหนึ่งที่เฉพาะเจาะจงได้ปรากฏตัวขึ้นตั้งแต่คำถามนี้ถูกถามว่ามีหลายลักษณะที่คุณคาดหวังจาก "มาตรฐาน": รูปแบบ glTF


glTF เป็นมาตรฐาน 3 มิติที่เผยแพร่โดย Khronos Group (องค์กรที่อยู่เบื้องหลัง OpenGL และ Vulkan) ซึ่งมีจุดมุ่งหมายเพื่อชดเชยข้อบกพร่องใน Collada

ข้อดีหลักของมันคือ:

  • มันใช้ JSON ซึ่งทำให้แยกวิเคราะห์จัดลำดับอ่านและส่งผ่านเครือข่ายได้ง่าย

  • มีความกำกวมหรือความซ้ำซ้อนน้อยมากในมาตรฐาน (แม้ว่าจะมีบาง *) หน่วย, ถนัดมือ, พื้นผิวสัญญาณพิกัด ฯลฯ ทั้งหมดเป็นมาตรฐาน; ทุกอย่างเป็นไปตามดัชนีซึ่งหมายความว่าไม่มีข้อมูลซ้ำซ้อน สิ่งนี้ทำให้ง่ายต่อการเขียนผู้นำเข้า

  • เอกสารมีความสะอาดและครบถ้วนสมบูรณ์

  • เลย์เอาต์ของข้อมูลจะขึ้นอยู่กับเวิร์กโฟลว์ OpenGL / WebGL ซึ่งหมายความว่าโมเดลที่นำเข้ามาสามารถใช้เป็นข้อมูลในเครื่องยนต์ที่มีการวางท่อประปาน้อย

  • มาตรฐานคือโอเพ่นซอร์สและข้อมูลจำเพาะโฮสต์บน Github นั่นหมายความว่ามาตรฐานจะพร้อมใช้งานใช้ได้ฟรีและทุกคนสามารถมองเห็นกระบวนการพัฒนาได้ ในทางตรงกันข้ามอนาคตของมาตรฐานโอเพนซอร์ซจะถูกตัดสินโดยผลประโยชน์ส่วนตัวซึ่งเป็นอันตรายโดยเนื้อแท้

  • glTF รองรับโดยยักษ์ใหญ่ในอุตสาหกรรมหลายแห่งผ่าน Khronos (Adobe, Google, Microsoft, Mozilla, Unity); สามารถส่งออกโดย Blender (การส่งออกจาก Maya ยังไม่ได้รับการสนับสนุนอย่างเป็นทางการ) และนำเข้าโดย Unreal, Unity และ Godot

ดูสิ่งนี้ด้วย:

* ฉันค่อนข้างมั่นใจว่าการแปรปรวนแบบแปรผันนั้นไม่มีจุดหมาย


2

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

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