अनुमानित ग्रिड जल क्षितिज विस्तार


13

मैं C ++ और DirectX11 के साथ एक महासागर दृश्य को लागू करने की कोशिश कर रहा हूं। वर्तमान में मेरे पास अनुमानित ग्रिड, गेरस्टनर तरंगें और एक मूल छायांकन है। मेरी समस्या यह है कि जब मैं अपने कैमरे को क्षैतिज रूप से लक्ष्य करता हूं, तो मैं पानी के क्षितिज को देख सकता हूं, दूरी में अनुमानित ग्रिड अपर्याप्त हो जाता है, यहां तक ​​कि उच्च शीर्ष संख्याओं पर भी। ये स्क्रीनशॉट समस्या बताते हैं:

छायांकित पानी की सतह

वायरफ्रेम पानी की सतह

मुझे पता है कि समस्या का कारण अनुमानित ग्रिड की अवधारणा में है (ग्रिड कैमरा के पास विस्तृत है, मोटे तौर पर इससे दूर है), लेकिन इसे हल करने के लिए सबसे अच्छा अभ्यास होना चाहिए।

कोई विचार?

जवाबों:


7

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

मुश्किल सा यह सुनिश्चित कर रहा है कि प्रोजेक्शन कैमरा के दृश्य का क्षेत्र हमेशा रेंडर कैमरा से देखे गए दृश्य के क्षेत्र को कवर करता है। मेरे पास हाथ में एक संसाधन नहीं है जो यह वर्णन करता है कि उपयुक्त परिवर्तनों की गणना कैसे करें, और यह हाथ से प्राप्त करने के लिए थकाऊ हो सकता है।

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


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

6

आप यथार्थवादी और वास्तविक समय दोनों हो सकते हैं। गुप्त को प्रत्येक बार शैनन-नेक्विस्ट (यानी ग्रिड) पैमाने के तहत सूचना प्राप्त करने के लिए प्रतिनिधित्व को बदलना है: ज्यामिति से सामान्य नक्शे से छायांकन मॉडल तक। यह पेपर आपके लिए बनाया गया है: http://maverick.inria.fr/Publications/2010/BNH10/index.php (Yoube वीडियो भी देखें)


3

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

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


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.