मैं एक सरल खेल एक 3 डी ग्रिड प्रतिनिधित्व का उपयोग करता है, कुछ की तरह:3 डी खेल ज्यामिति
double x,y,z, dx,dy,dz;
:
Blocks grid[10][10][10];
खेल में व्यक्ति एक बिंदु और एक दृष्टि वेक्टर का प्रतिनिधित्व करती है मैं छोरों के लिए नेस्ट 3 के साथ ग्रिड आकर्षित:
for(...) for(...) for(...)
draw(grid[i][j][k]);
जब ग्रिड के आकार हुन भीतर बढ़ता है इस के साथ स्पष्ट समस्या है ड्रेड्स, एफपीएस नाटकीय रूप से ड्रॉप। कुछ अंतर्ज्ञान के साथ, मुझे एहसास हुआ कि:
- ब्लाकों कि ग्रिड में अन्य ब्लॉक से छिपी हुई हैं भी करने की आवश्यकता नहीं है प्रदान करने की
- ब्लाकों उस व्यक्ति की दृष्टि क्षेत्र के भीतर नहीं थे की जरूरत नहीं है गाया (यानी। ब्लॉकों उस व्यक्ति के पीछे थे)
मेरा प्रश्न दिया जाता है, एक grid[][][]
, एक व्यक्ति की x,y,z
, और एक दृष्टि वेक्टर dx,dy,dz
, मैं कैसे यह पता लगाने सकता है जो ब्लॉकों प्रदान करने की जरूरत है और जो डॉन ' टी?
यह एक काफी बड़ा विषय है, [छिपे हुए सतह निर्धारण] में सीधे कवर किया गया है (http : //en.wikipedia.org/wiki/Hidden_surface_determination)। –
यदि आप ओपनजीएल, या किसी अन्य 3 डी लाइब्रेरी का उपयोग करते हैं, तो यह अंतिम प्रतिपादन में स्वचालित रूप से _culling_ करता है। – toto2
तो अगर मैं ओपनजीएल का उपयोग करता हूं, तो ज्यामितीय ऑप्टिमाइज़ेशन जोड़ना समग्र प्रदर्शन को प्रभावित नहीं करेगा? –