2012-01-26 10 views
7

सबसे पुराने खेलों से लेकर आधुनिक तक, ऐसा लगता है कि आप अभी भी दीवारों के माध्यम से देख सकते हैं या अक्सर कुछ कैमरे की स्थिति में जमीन देख सकते हैं। ग्राफिक्स इंजन में प्रभावी ढंग से गणना करने के लिए टक्कर मुश्किल क्यों है? क्या यह एक गलत-प्रस्तुत दृश्य की ओर अग्रसर परिशुद्धता जमा करने का दौर है/नुकसान?ग्राफिक्स इंजनों में प्रभावी रूप से गणना करने के लिए टकराव मुश्किल क्यों है?

+6

"दीवारों के माध्यम से देखें या अक्सर कुछ कैमरे की स्थिति में जमीन।" टकराव की समस्या नहीं है यह एक क्लिपिंग समस्या है; उन्होंने उस सामान से ठीक से फ़िल्टर नहीं किया है जिसे आप उस स्थान से प्रस्तुत दृश्य से नहीं देख पाएंगे। –

+0

आप छवि में "दीवार" के कुछ हिस्सों या दीवार के अंदर कैमरे की स्थिति के बारे में पूछने के बारे में पूछ रहे हैं ..? – Sorceror

उत्तर

2

यह वास्तव में स्पष्ट अर्थ में टकराव नहीं है। कैमरे की स्थिति शायद उन परिस्थितियों में दीवार या जमीन के अंदर "अंदर" नहीं है, लेकिन यह बस इसके बहुत करीब है।

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

अब, इस निकट विमान की दूरी डेवलपर्स द्वारा निर्धारित की जा सकती है, और यह सुनिश्चित करने के लिए बहुत छोटा हो सकता है कि इन तरह की स्थितियां नहीं हो सकती हैं। हालांकि, गहराई बफर या जेड बफर जिसका उपयोग यह निर्धारित करने के लिए किया जाता है कि कौन से ऑब्जेक्ट्स रेंडरिंग के दौरान कैमरे के सबसे नज़दीक हैं, और इस प्रकार जो ऑब्जेक्ट प्रस्तुत करना है और जो प्रस्तुत नहीं करना है, निकट और दूर के विमान दूरी से निकटता से संबंधित है।

ग्राफिक्स हार्डवेयर में गहराई बफर प्रत्येक पिक्सेल के लिए निश्चित मात्रा में बिट्स का उपयोग करके दर्शाया जाता है, उदाहरण के लिए 32 बिट्स। ये 32 बिट्स निकटतम विमान और दूर के विमान के बीच पूरे अवधि का सटीक रूप से प्रतिनिधित्व करने के लिए पर्याप्त होना चाहिए। यह रैखिक भी नहीं है, लेकिन कैमरे के करीब अधिक परिशुद्धता का उपयोग करेगा। नतीजतन, विमान दूरी के पास एक बहुत छोटा चुनने से गहराई बफर की समग्र परिशुद्धता बहुत कम हो जाएगी। यह पूरे दृश्य में कष्टप्रद झटके का कारण बन सकता है जहां भी दो वस्तुएं एक-दूसरे के बहुत करीब होती हैं।

आप इस समस्या here के साथ-साथ section 12.040 here के बारे में अधिक पढ़ सकते हैं।

+1

मैं हर दिन ग्राफिक्स कार्ड में 32-बिट्स जेड-बफर परिशुद्धता के लिए प्रार्थना कर रहा हूं :- डी .. उनमें से बहुत से अभी भी केवल 24-बिट्स या उससे कम सक्षम हैं (उन सभी "पुराने" एकीकृत इंटेल ग्राफिक्स कार्ड की तरह)। – Sorceror

1

यह कठिनाई के बारे में नहीं है (बेशक, गैर-उत्तल वस्तु के टकराव/क्लिपिंग की गणना करना आसान नहीं है), लेकिन आपके पास अभी भी पूरे फ्रेम की गणना करने के लिए ~ 33ms की तरह है, इसलिए कुछ समझौता किया जाना चाहिए (टकराव जाल आप वास्तव में देखे जाल की तरह नहीं है)। यदि सटीक समाधान के लिए कोई समय नहीं है (सभी शर्तों को पूरा करने के लिए - कैमरा दूरी, ऑब्जेक्ट जिसे देखा जाना चाहिए, टक्कर से बचने के लिए), आपको दीवार के माध्यम से देखने जैसे कुछ "आसान" समाधान पर पड़ना होगा।