2010-11-27 19 views
7

मुझे वोक्सल फ़ील्ड में क्वाड की सरणी को कन्वर्ट करने के लिए कुछ कोड लिखना होगा। इसे काम करना आसान होना चाहिए, लेकिन इसे तेजी से बनाना इतना छोटा नहीं होगा।एक 3 डी मॉडल को वोक्सेल फ़ील्ड में कनवर्ट करना

क्या कोई भी किसी भी libs या स्रोत कोड के बारे में जानता है जिसका मैं उपयोग कर सकता हूं? मुझे यकीन है कि किसी ने पहले यह किया होगा।

संपादित करें: एल्गोरिदम को मॉडल के अंदर वोक्सल्स के साथ भरने की आवश्यकता है। बस एक खोल नहीं करेगा।

+1

यह निर्दिष्ट करना सहायक हो सकता है कि आपका मतलब क्या है ["quad"] (http://en.wikipedia.org/wiki/Quad)। –

+2

'voxelization' के लिए कुछ त्वरित Google बहुत सी चीजें दिखाता है। ग्राफिक्स में इस http://www.cs.princeton.edu/~min/binvox/ –

+0

@ सेवन को देखें, 'क्वाड' आमतौर पर चार कोपलानर शिखरों द्वारा परिभाषित आकार का अर्थ है। –

उत्तर

7

@ एलेक्सेंड्रे सी द्वारा पोस्ट किया गया वोक्सेलेशन लिंक अच्छा दिखता है।

यहां एक संक्षिप्त अवलोकन है कि हमने नियमित क्वाड/त्रिकोण मॉडल को फोटोनिक्स/ईएम सिमुलेशन के लिए अपवर्तन/ईपीएसलॉन मानों के सूचकांक के एक क्यूबिकल सरणी में परिवर्तित करते समय इस समस्या का समाधान कैसे किया।

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

  4. लाभ!

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

इसके अलावा, ध्यान दें कि यह पूरी प्रक्रिया संकलन समय पर होनी चाहिए या एक समर्पित उपकरण का उपयोग करना चाहिए (जो स्पष्ट रूप से, पेड़ और वोक्सेल फ़ील्ड वाली फ़ाइल का उत्पादन करेगा जिसे आप रन टाइम पर उपयोग करेंगे)। यदि आप एक्सएनए का उपयोग कर रहे हैं, तो सामग्री पाइपलाइन में कुछ भी आयात करना बहुत आसान है।

+0

मुझे पहले उल्लेख किया जाना चाहिए था, लेकिन मॉडल के अंदर भी वोक्सल्स के साथ भरा जाना चाहिए। हालांकि जब तक हम एक और पॉली नहीं मारते, तब तक मैं पॉली को मारने के बाद वोक्सल्स जोड़ना जारी रखता हूं, मानते हैं कि सतह बंद है? – Hannesh

+0

मुझे प्यार नहीं है। 5! +1! – jwueller

+0

@ हनेश हां। बीएसपी आपको प्रत्येक बिंदु के लिए "अंदर" या "बाहरी" परिणाम देगा।एक मॉडल के अंदर होने के बाद आप वोक्सल्स बनाने बंद करने की कोई आवश्यकता नहीं है, और आपको यह पता होना जरूरी नहीं है कि एक मॉडल कहां रुकता है और अगला वाला शुरू होता है। इस दृष्टिकोण के बारे में अच्छी बात यह है कि, किसी दिए गए XYZ मूल्य के लिए, आपको इसके आसपास होने वाली किसी भी चीज का कोई ज्ञान नहीं होना चाहिए। –

1

Marching cubesalgorithm देखें। मुझे लगता है कि आपको अपनी समस्या के संदर्भ में इसे उलटा करने की आवश्यकता है !;

+0

मैं कल्पना नहीं कर सकता कि मॉडल के बाहरी खोल के अलावा किसी अन्य चीज़ के लिए काम करना। – Hannesh

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^