2017-03-31 20 views
6

के साथ 3 डी बनावट का उपयोग करके लाखों voxels प्रतिपादन मैं त्रिभुजों के एक सेट के रूप में एक voxel प्रतिनिधित्व प्रस्तुत करने के लिए तीन.js का उपयोग कर रहा हूँ। मुझे इसे 5 मिलियन त्रिकोण आराम से मिला है लेकिन यह सीमा है। आप इसे ऑनलाइन देख सकते हैं hereतीन .js

कई त्रिकोणों को तैयार करने के लिए रेज़ोल्यूशन 3 पर डबलिन मॉडल का चयन करें।

screenshot

मैं हर चाल का इस्तेमाल किया है यहां तक ​​प्राप्त करने के लिए (बफर ज्यामिति, वॉक्सेल culling, कई बफ़र्स), लेकिन मुझे लगता है कि यह अधिकतम राशि है जो ओपन त्रिकोण पूरा कर सकते हैं मारा गया है।

बड़ी मात्रा में वोक्सल्स को 3 डी बनावट में छवियों के एक सेट के रूप में प्रस्तुत किया जाता है और 3 डी बनावट में 2 डी बनावट को कैसे हैक करने के तरीके पर कई पोस्ट होते हैं लेकिन उन्हें बनावट आकार पर अधिकतम सीमा होती है।

मैंने इस दृष्टिकोण का उपयोग कर ट्यूटोरियल या उदाहरण खोजे हैं लेकिन कोई भी नहीं मिला है। क्या किसी ने इस दृष्टिकोण का उपयोग तीन .js

+2

मुझे लगता है कि आप भाग्य से बाहर हैं उन्हें सीधे प्रदर्शित करने की कोशिश कर रहे हैं। आपको शायद किसी प्रकार की एलओडीडी प्रणाली की आवश्यकता है, दूरी में अधिक विस्तार और कम विस्तार दिखाने के लिए कुछ तरीका। [यहां एक और गहराई डेटा आधारित दर्शक है] (http://potree.org/demo/potree_1.3/showcase/ca13.html), जैसा कि आप ज़ूम करते हैं, आप इसे अधिक विस्तार से लोड करेंगे। ऐसा लगता है कि आप "एपारेन्स-> सामग्री-> वृक्ष गहराई" चुनते हैं, यह आपको एलओडी दिखाएगा। – gman

+0

मेरे पास वापस आने के लिए धन्यवाद। यह वास्तव में एक एलओडी मॉडल पर बनाया गया है जिसमें ऑक्टेट्स और पोट्री की विविधता का उपयोग करके मुझे वेब आधारित दर्शक करने के लिए प्रेरित किया गया है। मुझे लगता है कि मैंने इस डेटा को प्रस्तुत करने में वेबग्ल की हार्ड सीमा को मारा है। – jonathanbyrn

उत्तर

6

आपका दृश्य दो बार प्रस्तुत किया गया है, क्योंकि एसएसएओ को गहराई बनावट की आवश्यकता है। आप WEBGL_depth_texture एक्सटेंशन का उपयोग कर सकते हैं - which have pretty good support - इसलिए आपको केवल एक रेंडर पास की आवश्यकता है। यदि एक्सटेंशन अनुपलब्ध है तो आप कम-परफ-डबल-पास पर फ़ॉलबैक डाल सकते हैं।

आपकी वोक्सेल की सामग्री डबल पक्षीय है। यह उद्देश्य पर हो सकता है, लेकिन यह एक बड़ा ओवरड्रा बना सकता है।

अपने डेमो में, आप मेशफोंगमटेरियल और दिशात्मक रोशनी का उपयोग करते हैं। यह एक अनावश्यक जटिल सामग्री है। आपकी ज्यामिति में कोई मानक नहीं है, इसलिए आपके पास कोई प्रकाश नहीं हो सकता है। एक सरल अनलिमिटेड सामग्री का उपयोग करने का प्रयास करें।

अपने लक्ष्य, कोने की एक बड़ी राशि रेंडर करने के लिए तो यह सोचते हैं फ़्रेमरेट शिखर शेडर से बाध्य है है: preprocess करने https://github.com/GPUOpen-Tools/amd-tootle तरह

  • कोशिश सामान अपने ज्यामिति। प्रीफेच वर्टेक्स कैश और वर्टेक्स कैश पर फ़ोकस करना।

  • आपके वर्टेक्स बफर द्वारा उपयोग की जाने वाली बैंडविड्थ को कम करें। चूंकि आपके शिखर को "ग्रिड" पर गठबंधन किया गया है, इसलिए आप 3 फ्लोट्स के बजाए 3 शॉर्ट्स के रूप में कॉलर स्थिति को स्टोर कर सकते हैं, अपने वीबीओ आकार को 2 से कम कर सकते हैं। यदि आप सामान्य मानते हैं तो आप एक ही चाल का उपयोग कर सकते हैं क्योंकि सभी मानदंड एक्सिस गठबंधन (cubes)

  • आम तौर पर अगर आप सिर्फ vec3 स्थिति की तुलना में अधिक विशेषताओं की जरूरत है टुकड़ा शेडर

  • द्वारा आवश्यक varyings की मात्रा को कम, attrib प्रति एक के बजाय एक ही interleaved VBO का उपयोग करें।

+1

आपके विस्तृत उत्तर के लिए धन्यवाद। मेरे अधिकांश कोड प्रोसेसिंग समय पर प्रभाव को महसूस किए बिना ट्यूटोरियल्स से प्रतिलिपि बनाई गई थीं।मैं अपने कोड को दोबारा शुरू करना शुरू कर दूंगा और गहराई से बनावट और ज्यामिति को प्रीप्रोसेसिंग करने के लिए आगे बढ़ना चाहता हूं। – jonathanbyrn