โมเดล Polygon PLY (.ply)
Stanford มาตรฐานPolygon File Format (PLY หรือ Stanford Triangle Format) เป็นรูปแบบ 3D ที่ขยายได้ พัฒนาโดย Greg Turk ที่มหาวิทยาลัย Stanford และใช้ในเวิร์กโฟลว์การสแกน โฟโตแกรมเมทรี และพอยต์คลาวด์บางประเภท
แปลง PLY เป็น OBJ
ตัวแปลงจาก PLY เป็น OBJ ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบไฟล์และข้อมูลเมตา
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ PLY โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวระดับไบต์
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ PLY โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
70 6C 79 0Aการแสดงผลรูปแบบ ASCII: ply\n
มาตรฐาน: Stanford University Computer Graphics Laboratory Standard
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | ส่วนหัว ASCII หรือไบนารีที่กำหนดองค์ประกอบและคุณสมบัติที่ขยายได้ ตามด้วยอาร์เรย์ข้อมูลจุดยอด/หน้าแบบดิบ |
| การบีบอัด | ข้อมูลไบนารีแบบมีโครงสร้างหรือข้อความ ASCII ที่ไม่บีบอัด |
| การจัดลำดับไบต์ | ระบุในส่วนหัว: 'format binary_little_endian 1.0', 'format binary_big_endian 1.0' หรือ 'format ascii 1.0' |
| พื้นที่สี | สี RGB/RGBA แยกตามจุดยอด, ค่าสเกลาร์ความเชื่อมั่น, เวกเตอร์ตั้งฉากพื้นผิว |
| ช่องสัญญาณและโครงสร้าง | จุดยอด, หน้าโพลีกอน, กลุ่มจุด, สีแยกตามจุดยอด, เวกเตอร์ตั้งฉาก และคุณสมบัติเซนเซอร์กำหนดเองได้ตามต้องการ |
| ขนาดสูงสุด | พื้นที่พิกัด 3D และจำนวนจุดยอดไม่จำกัด |
| ความโปร่งใส | รองรับช่องสัญญาณอัลฟาแยกตามจุดยอดผ่านคุณสมบัติ 'alpha' |
| การสตรีมและแบบโปรเกรสซีฟ | ส่วนหัวระบุจำนวนองค์ประกอบอย่างแน่นอน จึงจองหน่วยความจำล่วงหน้าได้ทันทีและอ่านตามลำดับได้รวดเร็ว |
ตารางเปรียบเทียบทางเทคนิค: PLY กับคู่แข่ง
| คุณลักษณะทางเทคนิค | PLY (ปัจจุบัน) | OBJ | STL | XYZ |
|---|---|---|---|---|
| สีต่อจุดยอด (Per-Vertex Color) | RGB/RGBA ต่อจุดยอดแบบเนทีฟ | ต้องใช้พื้นผิววัสดุ | ไม่มี (เรขาคณิตอย่างเดียว) | สเกลาร์พิกัดดิบ |
| คุณสมบัติที่ขยายได้ | กำหนดคุณสมบัติแบบกำหนดเองได้ตามต้องการในส่วนหัว (header) | ไวยากรณ์แท็กคงที่ | ไวยากรณ์สามเหลี่ยมคงที่ | คอลัมน์พิกัดคงที่ |
| การรองรับพอยต์คลาวด์ | พอยต์คลาวด์ประสิทธิภาพสูงแบบเนทีฟ | ใช้งานยุ่งยาก (ต้องกำหนดหน้าให้มีจุดยอดเดียว) | ไม่มี (ต้องใช้สามเหลี่ยมปิด) | พิกัดจุดดิบแบบเนทีฟ |
| Gaussian Splatting | หนึ่งในรูปแบบที่ใช้เก็บข้อมูล Gaussian Splatting | ไม่รองรับ | ไม่รองรับ | ไม่รองรับ |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
ซอฟต์แวร์รายงานว่า 'PLY: End of file reached before all elements read'
สาเหตุหลัก: ความไม่ตรงกันระหว่างจำนวนเอเลเมนต์ที่ประกาศไว้ในส่วนหัว (header) กับจำนวนแถวข้อมูลไบนารีจริง
การกู้คืน: คำนวณจำนวนเอเลเมนต์ส่วนหัวใหม่โดยใช้ File2File.app PLY Repair Tool
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
ตัวถอดรหัส PLY แยกวิเคราะห์การประกาศส่วนหัวที่กำหนดขนาดคุณสมบัติ ซึ่งอินทิเจอร์โอเวอร์โฟลว์อาจทำให้หน่วยความจำฮีปเสียหายได้
เวกเตอร์การโจมตีที่ทราบ
- อินทิเจอร์โอเวอร์โฟลว์ระหว่างการจัดสรรหน่วยความจำ property_count * element_count
- การอ่านบัฟเฟอร์เกินขอบเขตเมื่ออ่านประเภทคุณสมบัติไบนารีที่ผิดรูป (เช่น อ่าน float64 เข้าสู่บัฟเฟอร์ float32)
- การปฏิเสธการให้บริการด้วยการจัดสรรหน่วยความจำมากเกินไปจากจำนวนเอเลเมนต์ที่ปลอมแปลง
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: ตรวจสอบว่าจำนวนไบต์ของเอเลเมนต์ที่ระบุไว้ตรงกับขนาดไฟล์จริงก่อนจัดสรรหน่วยความจำ
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- ขยายได้สูงมาก: ผู้ใช้สามารถกำหนดคุณสมบัติกำหนดเองได้อย่างอิสระ (สีต่อจุดยอด, ความมั่นใจ, ความโค้ง, อุณหภูมิ)
- รองรับทั้งรูปแบบไบนารีขนาดกะทัดรัดพิเศษและรูปแบบ ASCII ที่มนุษย์อ่านได้ ทั้งในลำดับไบต์แบบ Big และ Little-Endian
- PLY จัดเก็บจุดยอด หน้า และฟิลด์สีหรือเวกเตอร์ปกติที่เป็นตัวเลือกได้ เครื่องมือสแกนและโฟโตแกรมเมทรีจึงใช้กับพอยต์คลาวด์และเมช โปรดตรวจสอบว่าเครื่องมือปลายทางอ่านฟิลด์ที่มีในไฟล์ของคุณได้
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- การรองรับในเอนจินเกม 3D ของผู้บริโภคมีจำกัดเมื่อเทียบกับ glTF หรือ FBX เว้นแต่จะมีปลั๊กอินพอยต์คลาวด์เฉพาะทาง
- ไม่มีการรองรับการผูกโครงกระดูก (rigging), น้ำหนักกระดูก หรือลำดับชั้นแอนิเมชันตัวละครในตัว
- ไม่มีข้อกำหนดวัสดุ PBR มาตรฐาน (โดยหลักอาศัยสีที่กำหนดต่อจุดยอดหรือพื้นผิวกระจายแสงแบบง่าย)
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- ไฟล์ PLY ที่ถูกต้องทุกไฟล์จะต้องเริ่มต้นด้วยอักขระ 4 ตัวที่แน่นอนคือ 'ply\n' บนบรรทัดที่ 1
- Stanford Bunny อันโด่งดังถูกสร้างขึ้นในปี 1994 โดยการสแกนกระต่ายเซรามิกด้วยเครื่องสแกนเลเซอร์ Cyberware 3030 ซึ่งเดิมทีบันทึกในรูปแบบ PLY
- งานวิจัย Gaussian Splatting ปี 2023 ใช้พอยต์คลาวด์ที่มี spherical harmonics โดย PLY เป็นหนึ่งในรูปแบบที่ใช้จัดเก็บข้อมูลดังกล่าว
คำถามทางเทคนิคที่พบบ่อย
ปัจจุบันรูปแบบ PLY ถูกนำไปใช้เพื่ออะไร
PLY ถูกนำไปใช้อย่างแพร่หลายสำหรับการทำ 3D Gaussian Splatting, การสแกนเลเซอร์ 3 มิติ, การอนุรักษ์ดิจิทัลทางโบราณคดี, การสร้างภาพถ่ายจากมุมมอง (Photogrammetry) และพอยต์คลาวด์ LiDAR
ความแตกต่างระหว่าง ASCII PLY และ Binary PLY คืออะไร
PLY แบบ ASCII เก็บค่าจุดยอดและหน้าเป็นตัวเลขที่อ่านได้ ส่วน PLY แบบไบนารีเก็บเป็นไบต์ โดยทั่วไปไฟล์ไบนารีมีขนาดกะทัดรัดกว่า ส่วน ASCII ตรวจดูได้ง่ายในโปรแกรมแก้ไขข้อความ
ฉันจะแปลงไฟล์ PLY เป็น OBJ หรือ STL ได้อย่างไร
อัปโหลดไฟล์ PLY ของคุณไปยัง File2File.app เพื่อแปลงเป็นโมเดล OBJ มาตรฐานหรือตาข่าย STL ที่พิมพ์ 3 มิติได้ทันทีในเว็บเบราว์เซอร์ของคุณ