मेरे पास एक प्रोजेक्ट है जो मैं सिमुलेशन से फिल्में बना रहा हूं। सिमुलेशन किसी अन्य प्रोग्राम से पारित किया जाता है जो प्रक्षेपण मैट्रिक्स को परिभाषित करता है।कैमरे से दूर गहराई बफर सटीक बढ़ाना
मुद्दा मैं में चल रहा हूँ कि अन्य कार्यक्रम 'झूठे' ओर्थोग्रफिक दृश्य का एक प्रकार है, क्या मैं यह मतलब है कि इसके प्रक्षेपण मैट्रिक्स इस प्रकार है है है:
PerspectiveMatrix = glm::perspective(3.5, 1, 1.0f, 50.0f);
और यह का उपयोग करता है lookAt समारोह:
ViewMatrix = glm::lookAt(
(2000,-3000,2000), // eye
(0,0,0), // center
(0,0,1)//up
);
तो क्या मैं 'झूठे' ओर्थोग्रफिक दृश्य मतलब है कि "दृश्य लाइनों" (एक की कमी के लिए है कि वे कैमरा तैनात है बहुत दूर दूर (और छोटे कोण दृश्य ज़ूम करने के लिए) है बेहतर शब्द) वास्तविक ऑर्थोग्राफिक प्रक्षेपण की तरह लगभग समानांतर हैं।
तो यह सब ठीक है और अच्छी तरह से है, लेकिन क्या मैं आई है, और अन्य कार्यक्रम में एक मुद्दे के रूप में अच्छी तरह से है, कि उच्च परिशुद्धता गहराई परीक्षण के सभी कैमरे के लिए और मेरे मामले में यह है करीब है है खाली जगह। इसका मतलब यह है काफी Z लड़ाई का एक बहुत है कि वहाँ के रूप में नीचे दिए गए लिंक में दिखाया गया है:
तो मेरे सवाल है किस तरह से मैं क्रम में मेरी गहराई परीक्षण बदल सकते हैं हो सकता है की ओर बफर पूर्वाग्रह दूर विमान? या उनके जैसे की कुछ और। मैंने पासप्लेन को आगे बढ़ने की कोशिश की है, जिसके पास स्क्रीन ज़ूम आउट करने का नतीजा है, इसलिए मैं परिप्रेक्ष्य में एक संकुचित कोण के साथ क्षतिपूर्ति करता हूं। लेकिन यह पर्याप्त समय करने से समस्या खराब हो जाती है, ज़ेड लड़ना नहीं है लेकिन यह सही गहराई पर चीजें नहीं खींचता है। गोलाकार सब कुछ के ऊपर खत्म होता है।
मैं Outerra पर कुछ जानकारी भी मिली: http://outerra.blogspot.com/2012/11/maximizing-depth-buffer-range-and.html वे गहराई बफर को पलटने के लिए कुछ विचार किया था लेकिन यह एनवीडिया विशिष्ट था और मैं दोनों अति और Nvidia
कैमरे को करीब क्यों नहीं ले जाएं और वास्तविक ऑर्थोग्राफिक प्रक्षेपण का उपयोग क्यों न करें? – Wyzard
यह निश्चित रूप से गहराई का मुद्दा होगा, समस्या यह है कि मेरे कार्यक्रम को 'पैरेंट' कार्यक्रम के समान दिखने की ज़रूरत है। वे दोनों एक ही छवियों को दिखा रहे हैं, लेकिन मेरा दृश्य एवीआई बनाम सिर्फ दृश्य का पूर्वावलोकन कर रहा है।अनिवार्य रूप से उपयोगकर्ता यह सुनिश्चित करने के लिए स्क्रीन का पूर्वावलोकन करता है कि उन्हें सही परिणाम मिल गया है और फिर वे मेरे प्रोग्राम को फिल्म – user3565590
में बनाने के लिए कहते हैं। एक तरीका यह है कि आप जिस बनावट को बड़े पैमाने पर चित्रित कर रहे हैं उसे बनाना। जितना बड़ा होगा, उतना ही सटीक आपका परिणाम होगा, लेकिन यह – Caesar