2011-10-12 11 views
5

हाल ही में मैंने वोक्सेल इंजन विकसित करना शुरू कर दिया है। मुझे जो चाहिए वह केवल बनावट के बिना रंगीन voxels है, लेकिन बहुत बड़ी राशि (Minecraft से बहुत छोटा) पर - और सवाल यह है कि दृश्य को तेजी से कैसे आकर्षित करें? मैं सी #/xna का उपयोग कर रहा हूं लेकिन मेरी राय में यह इस मामले में बहुत महत्वपूर्ण नहीं है, चलिए सामान्य मामलों के बारे में बात करते हैं। इन दो मैचों को देखो:वोक्सेल इंजन और अनुकूलन

  1. http://www.youtube.com/watch?v=EKdRri5jSMs
  2. http://www.youtube.com/watch?v=in0bavLJ8KQ

विशेष रूप से मैं वीडियो नंबर 2 महान अनुकूलन विधियों का प्रतिनिधित्व करता है लगता है (मेरे GFX कार्ड घुट शुरू होता है बस में 192 x 192 x 64) वे कैसे प्राप्त इस?

इंजन में मैं क्या होगा के लिए: बनावट के बिना

  • रंगीन voxels, लेकिन छायांकित
    • कई, कई voxels, कम से कम कहने के 512 x 512 x 128 वीडियो # 2 की तरह कुछ प्राप्त करने के लिए
    • छाया (चिकनी छाया बहुत अच्छा होगा, लेकिन यह आवश्यक नहीं है)
    • वैकल्पिक: गतिशील प्रकाश
    • (उड़ान आग के गोले, जो वॉक्सेल संरचनाओं के पास प्रकाश से उदाहरण के लिए)
    • फ़्रेमरेट कम से कम 40 एफपीएस
    • कैमरा स्वतंत्रता के 3 तरीके (x- अक्ष में कदम, y- अक्ष में ले जाते हैं, z- अक्ष में ले जाते हैं), कोई कैमरा रोटेशन की जरूरत है
    • अंत में वैकल्पिक सुविधा की गहराई हो सकता है फील्ड (यह ^^ मीठा हो जाएगा)

क्या अनुकूलन मैं पहले से ही पता है: (कवर

  • अनदेखी voxels कि वॉक्सेल संरचना के भीतर रहता है हटाने fr ओम छह अन्य voxels द्वारा दिशाओं)
    • voxels के अनदेखी चेहरे को दूर - क्योंकि कैमरा कोई घुमाव है और हमेशा TPP खेल में की तरह आगे तिरछे करते हैं, इसलिए अगर हम खड़ी कटौती करके स्क्रीन विभाजित, छोड़ दिया voxels और सही voxels दिखाएगा केवल 3 चेहरों
    • 3-आयामी सरणी के बजाय शब्दकोश में voxels रखें - आकार 512 x 512 x 128 आकार के सरणी के माध्यम से कूदना अस्वीकार्य है - लेकिन शब्दकोश int: रंग जहां int पैक किया गया है 3 डी स्थिति बहुत तेज है
    • इंस्टेंसिंग का उपयोग करें जहां applciable
    • प्रलोभन? (यह कैसे करना है?)
    • अंतरिक्ष विभाजन/octtree (यह अच्छा विचार है?)

मैं अगर कोई मुझे मौजूदा ऊपर या सूचीबद्ध अनुकूलन में सुधार करने के लिए कैसे एक टिप दे बहुत आभारी हो जाएगा नए सुधारों के विचार साझा कर सकते हैं। धन्यवाद

+2

ध्यान दें कि दोनों वीडियो ऐसे इंजन दिखाते हैं जो रोटेशन का समर्थन नहीं करते हैं। साथ ही, दूसरा वीडियो शायद वोक्सेल ऑब्जेक्ट्स के बजाय फोकस ऑब्जेक्ट्स के बाहर बिलबोर्ड का उपयोग कर रहा है। – Skizz

उत्तर

8

1) वोक्सट्रॉन जीपीयू की बजाए एक सॉफ्टवेयर प्रस्तुतकर्ता का उपयोग करता है।यदि आप इस ब्लॉग पोस्ट में टिप्पणी पढ़ने के आप इसके बारे में कुछ जानकारी पढ़ सकते हैं:

http://www.lexaloffle.com/bbs/?tid=201

मैं विस्तार से देखा नहीं है अपने आप ताकि आप उस की तुलना में अधिक नहीं बता सकता।

2) मैंने कभी भी 3 डी डॉट गेम नायकों को नहीं खेला है, लेकिन मेरे पास यह विश्वास करने का कोई कारण नहीं है कि यह वॉक्सल्स का उपयोग करता है। मेरा मतलब है, मुझे कोई भी क्यूब जोड़ा या हटाया नहीं जा रहा है। सबसे अधिक संभावना यह एक अच्छी बनावट के साथ सिर्फ एक स्थिर बहुभुज जाल है।

इसे स्वयं लागू करने के लिए, क्यूब्स प्रस्तुत करके दुनिया को आकर्षित करने की कोशिश न करें क्योंकि यह बहुत धीमी है। इसके बजाय आपको मात्रा को संसाधित करना चाहिए और ठोस voxels और खाली वाले के चौराहे पर लेटे हुए मेष उत्पन्न करना चाहिए। वॉल्यूम को उपयुक्त आकार वाले क्षेत्रों (जैसे 32x32x32) में विभाजित करें और प्रत्येक के लिए जाल उत्पन्न करें।

मैंने इस बारे में एक पुस्तक लेख लिखा है जिसे आप उपयोगी पा सकते हैं। यह वास्तव में चिकनी वोक्सेल टेरेन के बारे में है लेकिन बहुत से priciples stll लागू होते हैं।

आप यहाँ गूगल पुस्तकों पर यह पढ़ सकते हैं: http://books.google.com/books?id=WNfD2u8nIlIC&lpg=PR1&dq=game%20engine%20gems&pg=PA39#v=onepage&q&f=false

और तुम यहाँ जुड़े स्रोत कोड पा सकते हैं: http://www.thermite3d.org

2

आप XNA का उपयोग कर रहे हैं, तो आप सिर्फ instancing वांछित प्रभाव प्राप्त करने के लिए उपयोग कर सकते हैं: http://www.float4x4.net/index.php/2010/06/hardware-instancing-in-xna/ http://roecode.wordpress.com/2008/03/17/xna-framework-gameengine-development-part-19-hardware-instancing-pc-only/

बुनियादी विचार की instancing जाता है: इस सुविधा आपको दोहराने वाले डेटा और कुछ मात्रा में वीए निर्दिष्ट करने देता है एक DrawIndexedPrimitive कॉल में डेटा rying। आपके मामले में, इंस्टेंस स्ट्रीम एक ठोस बॉक्स होगा, और दूसरी स्ट्रीम ट्रांसफॉर्म और रंग की जानकारी होगी।