एफबीएक्स द्वारा निर्मित खराब कोलाडा को कैसे ठीक किया जाए?


10

मैंने FBX फ़ाइलों को आयात करने में सक्षम होने के लिए FBX फ़ाइलों को लोड करने और उन्हें Collada फ़ाइलों के रूप में सहेजने के लिए FBX SDK (2011.3.1) का उपयोग करने का प्रयास किया। दुर्भाग्य से परिणामस्वरूप कोलाडा फाइलें कई कारणों से उपयोग करने योग्य नहीं हैं, उनमें से:

  • वहाँ एक माया विशिष्ट अतिरिक्त तकनीक है

फैलाना

<diffuse>
    <texture texture="Map__2-image" texcoord="CHANNEL0">
        <extra>
            <technique profile="MAYA">
                <wrapU sid="wrapU0">TRUE</wrapU>
                <wrapV sid="wrapV0">TRUE</wrapV>
                <blend_mode>ADD</blend_mode>
            </technique>
        </extra>
    </texture>
</diffuse>
  • यह एक टेक्सकोर्ड चैनल नाम प्रदान करता है जिसे फ़ाइल में कहीं और संदर्भित नहीं किया गया है (पिछले कोड नमूने में, कोई ज्यामिति "CHANNEL0" ...) का उपयोग नहीं करता है

  • प्रत्येक बहुभुज को दो बार निर्यात किया जाता है, पहली बार एक मूल सामग्री (केवल फैलाना रंग, विशेष रंग आदि) के साथ और दूसरी बार एक बनावट सामग्री के साथ -> यह प्रत्येक मॉडल के बहुभुज की संख्या को बिना किसी मूल्यवान कारण के दोगुना कर देता है।

वैसे भी, Collada फाइल को OpenCOLLADA या Panda3D की "dae2egg" के साथ सही ढंग से नहीं खोला जा सकता है।

किसी को भी इस पर "ठीक" करने का कोई अनुभव है और इसे OpenCOLLADA जैसे सामान्य और अच्छी तरह से प्रतिष्ठित Collada आयातकों द्वारा समझा जा सकता है?


3
यह एक बड़ी समस्या है जिसे मैंने कोलाडा के साथ पाया है: यह वास्तव में मनमाने ढंग से साधनों के बीच डेटा के परिवहन के लिए बहुत उपयोगी नहीं है जो इसके लिए समर्थन का दावा करते हैं, क्योंकि यह इस तरह के अतिरंजित प्रारूप है। इसमें लगभग किसी भी स्कीमा का डेटा हो सकता है और अभी भी एक मान्य, मानक-अनुरूप कोलाडा फ़ाइल हो सकती है जिसे आप उपयोग कर रहे विशिष्ट आयातक वास्तव में संभाल नहीं सकते हैं। जब आप आयातक / निर्यातक पर अधिक नियंत्रण रखते हैं, या उपकरण कोलाडा जैसा बनने के लिए होते हैं, तो यह डेटा इंटरचेंज प्रारूप के रूप में अधिक उपयोगी होता है।

1
@ जोश: बंद द्विआधारी प्रारूपों के विपरीत, कम से कम यह मानव-पठनीय है। कम से कम कोलाडा के साथ, आप उपकरण और स्क्रिप्ट बना सकते हैं जो डेटा के एक सेट से दूसरे में अनुवाद कर सकते हैं। इंटरोप कम से कम संभव है , भले ही इसके लिए अतिरिक्त काम करना पड़े।
निकोल बोलस

जवाबों:


2

AC # टूल यहां आपका मित्र है - आप .NET System.Xml फ्रेमवर्क का उपयोग करके जल्दी से कुछ लिख सकते हैं, जो इनपुट फ़ाइल पर पुनरावृत्त करता है, उन हिस्सों को स्पॉट करता है जो आपको पसंद नहीं हैं, और इसे वापस लिखने से पहले दस्तावेज़ से उन्हें हटा (या ट्वीक) करता है। फिर से बाहर। प्रभावी रूप से वही है जो एक्सएसएलटी करता है, लेकिन व्यवहार में मैंने हमेशा सी # कोड लिखना आसान समझा है कि एक ही चीज़ को करने के लिए क्रिप्टिक एक्सएसएलटी सिंटैक्स को खोजने की तुलना में परिवर्तन का वर्णन करें।

आपको जो करने की आवश्यकता है वह 'खराब' मामलों को देखते हैं और वे जो आम हैं, उन्हें देखते हैं। उदाहरण के लिए यदि सभी फैली हुई तकनीकों में बनावट है जो टेक्सकोर्ड = "CHANNEL0" का उपयोग करती है, तो इसे खोजना आसान है। आप बस सभी वस्तुओं को पुनरावृत्त करते हैं, और प्रत्येक वस्तु के लिए, अपमानजनक विशेषता के लिए इसकी सभी तकनीकों की जांच करते हैं। यदि आपको यह नहीं मिलता है, तो नोड को आउटपुट दस्तावेज़ में जोड़ें और आगे बढ़ें। यदि आप नोड को नहीं पहचानते हैं, तो इसे आउटपुट में जोड़ें और आगे बढ़ें। यदि आप इसे ढूंढते हैं, तो इसे आउटपुट डॉक्यूमेंट में जोड़ने की जहमत न करें और इसे प्रभावी रूप से हटा दिया जाएगा।

डुप्लिकेट पॉलीगन्स को खोलना हालांकि थोड़ा पेचीदा है, क्योंकि आपको प्रत्येक जोड़े को पॉलीगॉन के लिए तुल्यता का विश्लेषण करना होगा। बहुत आसान होगा यदि आप एक नियम पर निर्णय ले सकते हैं, जैसे कि "मुझे फ्लैट रंग के बहुभुज की परवाह नहीं है, केवल बनावट वाले बहुभुज", तो आप बस उपयुक्त बहुभुज को त्याग सकते हैं।

हालाँकि यह मुझे बहुत अजीब लगता है कि आप वास्तव में डुप्लिकेट बाहर हो रहे हैं; ज्यामिति का दोहराव स्पष्ट कारणों के लिए एक बड़ा नहीं-नहीं है, इसलिए मुझे आश्चर्य है कि एफबीएक्स ऐसा करेगा। मैंने केवल कोलाडा का उपयोग माया / मैक्स के साथ किया है, इसलिए जो एफबीएक्स पैदा करता है उसके लिए वाउच नहीं कर सकता। लेकिन मैं पूछता हूँ, क्या आप सुपर दोगुना हैं कि FBX फ़ाइल में वास्तव में डुप्लिकेट ज्यामिति नहीं है?


आपके उत्तर के लिए धन्यवाद। बेशक, मैं इसे अपने स्वयं के आयातक में ठीक करने में सक्षम था, मैं बस किसी ऐसे व्यक्ति की तलाश कर रहा था जो पहले से ही सामना कर रहा था और ठीक उसी समस्या को ठीक कर रहा था ताकि मुझे एक मानक तय हो सके और शायद उन मुद्दों के लिए सुधार लागू करूं जिन्हें मैंने अभी तक नहीं खोजा है।
डेविड

0

एक अलग निर्यातक खोजें या लिखें, या शायद (चूंकि कोलाडा फाइलें सिर्फ एक्सएमएल हैं) [एक्सएसएलटी] [1] का उपयोग अवांछित डेटा को दूर करने के लिए या अधिक सामान्यीकृत रूप में करें?


मुझे यकीन है कि मैं क्या कर रहा हूं, लेकिन मैं किसी ऐसे व्यक्ति की तलाश कर रहा था जो पहले से ही ऐसा कर रहा था (पहिया को ठीक न करें?)
डेविड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.