पीएलवाई फाइल क्या है?
PLY, बहुभुज फ़ाइल स्वरूप, 3D फ़ाइल स्वरूप का प्रतिनिधित्व करता है जो बहुभुज के संग्रह के रूप में वर्णित चित्रमय वस्तुओं को संग्रहीत करता है। इस फ़ाइल स्वरूप का उद्देश्य एक सरल और आसान फ़ाइल प्रकार स्थापित करना था जो सामान्य रूप से मॉडलों की एक विस्तृत श्रृंखला के लिए उपयोगी हो। पीएलवाई फ़ाइल प्रारूप एएससीआईआई के साथ-साथ कॉम्पैक्ट स्टोरेज के लिए और तेजी से बचत और लोडिंग के लिए बाइनरी प्रारूप के रूप में आता है। फ़ाइल स्वरूप का उपयोग विभिन्न अनुप्रयोगों द्वारा किया जाता है जो 3D फ़ाइलों को पढ़ने के लिए समर्थन प्रदान करते हैं।
पीएलवाई प्रारूप में वस्तुओं को रंग और सामान्य दिशा जैसे गुणों के साथ-साथ इन तत्वों से जोड़ा जा सकता है, साथ ही शिखर, चेहरे और अन्य तत्वों के संग्रह द्वारा वर्णित किया जाता है। अन्य गुण जिन्हें वस्तु के साथ भी संग्रहीत किया जा सकता है उनमें शामिल हैं:
- सतह मानदंड
- बनावट निर्देशांक *पारदर्शिता
- रेंज डेटा आत्मविश्वास
- बहुभुज के आगे और पीछे के गुण
पीएलवाई प्रारूप द्वारा दर्शाया गया ऑब्जेक्ट विभिन्न स्रोतों का परिणाम हो सकता है जैसे हाथ से डिजिटाइज्ड ऑब्जेक्ट्स, मॉडलिंग अनुप्रयोगों से बहुभुज ऑब्जेक्ट्स, रेंज डेटा, मार्चिंग क्यूब्स से त्रिकोण, इलाके डेटा और रेडियोसिटी मॉडल।
संक्षिप्त इतिहास
PLY फॉर्मेट को 1990 में ग्रेग तुर्क और अन्य लोगों द्वारा स्टैनफोर्ड ग्राफिक्स लैब में विकसित किया गया था और इसीलिए इसे स्टैनफोर्ड ट्रायंगल फॉर्मेट के रूप में भी जाना जाता है। तब से फ़ाइल स्वरूप का संस्करण 1.0 है और कोई और संशोधन नहीं किया गया था।
प्लाई फ़ाइल प्रारूप
एक साधारण PLY वस्तु में वस्तु के प्रतिनिधित्व के लिए तत्वों का संग्रह होता है। इसमें एक शीर्ष के (x,y,z) त्रिगुणों की सूची और चेहरों की एक सूची होती है जो वास्तव में शीर्षों की सूची में सूचकांक होते हैं। शीर्ष और फलक तत्वों के दो उदाहरण हैं और अधिकांश PLY फ़ाइल में ये दो तत्व होते हैं। किसी वस्तु के तत्वों के साथ नए गुण भी बनाए और संलग्न किए जा सकते हैं, लेकिन इन्हें इस तरह से जोड़ा जाना चाहिए कि इन नए गुणों का सामना करने पर पुराने कार्यक्रम टूट न जाएं। अनुप्रयोगों को पढ़कर भी ऐसी संपत्तियों को त्याग दिया जा सकता है। इसके अलावा, नए तत्व बनाए जा सकते हैं और गुणों को भी इस तत्व के साथ परिभाषित किया जा सकता है।
फ़ाइल संरचना
एक PLY फ़ाइल स्वरूप की फ़ाइल संरचना इस प्रकार है:
फ़ील्ड |
---|
फाइल हैडर |
वर्टेक्स लिस्ट |
चेहरे की सूची |
अन्य तत्वों की सूची |
उदाहरण संरचना
हम PLY फ़ाइल स्वरूप के विभिन्न भागों के लिए अपनी अगली चर्चा में नीचे दिए गए उदाहरण का उपयोग करेंगे।
ply
format ascii 1.0 { ascii/binary, format version number }
comment made by Greg Turk { comments keyword specified, like all lines }
comment this file is a cube
element vertex 8 { define "vertex" element, 8 of them in file }
property float x { vertex contains float "x" coordinate }
property float y { y coordinate is also a vertex property }
property float z { z coordinate, too }
element face 6 { there are 6 "face" elements in the file }
property list uchar int vertex_index { "vertex_indices" is a list of ints }
end_header { delimits the end of the header }
0 0 0 { start of vertex list }
0 0 1
0 1 1
0 1 0
1 0 0
1 0 1
1 1 1
1 1 0
4 0 1 2 3 { start of face list }
4 7 6 5 4
4 0 4 5 1
4 1 5 6 2
4 2 6 7 3
4 3 7 4 0
फाइल हैडर
PLY फ़ाइल स्वरूप शीर्षलेख में ASCII के साथ-साथ बाइनरी प्रारूप दोनों के लिए ASCII पाठ होता है। हेडर सेक्शन का प्रारंभ और अंत प्लाई और एंड-हेडर कीवर्ड द्वारा पहचाना जाता है। हेडर की शुरुआत में जादुई शब्द प्लाई होता है जिसका उपयोग पाठकों द्वारा पीएलवाई फ़ाइल प्रारूप की पहचान के लिए किया जाता है। अगली पंक्ति इस फ़ाइल के लिए संस्करण संख्या दिखाती है। PLY फ़ाइल स्वरूप में टिप्पणियाँ प्रत्येक टिप्पणी पंक्ति की शुरुआत में टिप्पणी कीवर्ड से शुरू होती हैं।
तत्व कीवर्ड
तत्व कीवर्ड तब बताता है कि फ़ाइल के अंदर क्या है। इसके बाद उस विशिष्ट तत्व प्रकार के गुण होते हैं जहां प्रत्येक संपत्ति का अपना संपत्ति प्रकार और क्रम निर्दिष्ट होता है जैसा कि नीचे दिखाया गया है:
element vertex 8 { define "vertex" element, 8 of them in file }
property float x { vertex contains float "x" coordinate }
property float y { y coordinate is also a vertex property }
property float z { z coordinate, too }
इस विशेष उदाहरण में, विशिष्ट शीर्ष तत्व में निर्दिष्ट क्रम के साथ फ्लोट प्रकार के 3 गुण हैं।
डेटा प्रकार के प्रकार
एक संपत्ति में दो प्रकार के डेटा प्रकार हो सकते हैं।
स्केलर
: अदिश डेटा प्रकार नीचे दिखाए गए हैं:
|#नाम|#प्रकार|#बाइट्स की संख्या |चार|चरित्र|1 |uchar|अहस्ताक्षरित चरित्र|1 |छोटा|छोटा पूर्णांक|2 |ushort|अहस्ताक्षरित लघु पूर्णांक|2 |int|पूर्णांक|4 |uint|अहस्ताक्षरित पूर्णांक|4 |फ्लोट|एकल-सटीक फ्लोट|4 |डबल|डबल सटीक फ्लोट|8
सूची
: संपत्ति परिभाषाओं का एक विशेष रूप है जो सूची डेटा प्रकार का उपयोग करता है। इसका एक उदाहरण ऊपर क्यूब फ़ाइल से है:
संपत्ति सूची uchar int vertex_index
इसका मतलब यह है कि संपत्ति “vertex_index” में पहले एक अहस्ताक्षरित चार होता है जो बताता है कि संपत्ति में कितने सूचकांक हैं, उसके बाद एक सूची है जिसमें कई पूर्णांक हैं। इस चर-लंबाई सूची में प्रत्येक पूर्णांक एक शीर्ष के लिए एक सूचकांक है।