मैं एक दर्पण या अन्य चिंतनशील सतहों को कैसे प्रस्तुत करूं?


16

मैं बस सोच रहा था कि एक 3 डी गेम के भीतर दर्पण कैसे बनाया जाए? मेरा सुझाव है / किरणों का पता लगाने के लिए, "मिरर" ऑब्जेक्ट को हिट करना, फिर "मिरर" ऑब्जेक्ट पर एक दूसरे कैम की तस्वीर खींचना, जो मूल कैमरा के मिरर "पॉइंट" पर स्थित है, मिरर ऑब्जेक्ट के हिट साइड का उपयोग करके मिररिंग प्लेन।

हमें मूल कैमरा के केंद्र से आने वाली एक किरण का उपयोग उस बिंदु को निर्धारित करने के लिए करना होगा जहां दृष्टि का केंद्र दर्पण विमान पर स्थित है।


1
क्या आप इस बात का "मैं कैसे मतलब था" का एक स्केच / ड्राइंग करना पसंद करूंगा?
डेमोनफ़ायर 300

आप इसे stackoverflow.com पर पोस्ट करने का प्रयास कर सकते हैं क्योंकि यह सीधे गेम डेवलपमेंट से संबंधित नहीं है; शायद वहाँ पर अधिक ग्राफिक्स विशेषज्ञ हैं जो आपकी मदद कर सकते हैं।
विकेट

जवाबों:


14

यदि आप OpenGL का उपयोग कर रहे हैं, OpenGL FAQ सेक्शन 9: ट्रांसफ़ॉर्मेशन को ठीक से कवर किया जाता है कि यह कैसे करना है। और नहीं, इसमें रेस्ट्रिंग शामिल नहीं है, क्योंकि इसे पूरा करने के लिए बहुत ही अक्षम (लेकिन उच्च गुणवत्ता) तरीका है।

9.170 मैं एक दर्पण कैसे प्रस्तुत करूं?

यहाँ अनिवार्य रूप से FAQ प्रविष्टि क्या कहती है, और उदाहरण कोड प्रदर्शित करता है:

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

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

मुझे लगता है, अगर आप डायरेक्टएक्स का उपयोग कर रहे हैं, तो प्रक्रिया बहुत समान होगी।


3
एक विकल्प, यदि आपके पास समय रेंडर करने की तुलना में अधिक मेमोरी है, तो बस अपने 3 डी एडिटर में दर्पण के माध्यम से अपनी विश्व ज्यामिति को प्रतिबिंबित करना है, तो आप इसे संशोधित करके देख सकते हैं, हालांकि आप चाहते हैं (कम एमआईपी स्तरों को लागू करें, आदि)। हमने पीएस 1 पर ऐसा किया, जहां एक चमकदार मंजिल पर बैठे सामान को भूमिगत रूप से डुप्लिकेट / उलटा कर दिया गया था, और फर्श को ही सेमीट्रांसपैरेंट प्रदान किया गया था।
डैश-टॉम-बैंग

ध्यान दें कि सैंपल कोड , रेप्लगेट ओपन स्पेसिफिकेशन को संदर्भित करता है। फिर भी अवधारणा सार्वभौमिक है और संभवत: नए ओपनजीएल विनिर्देश का उपयोग करके इसी तरह लागू किया जा सकता है ।
patryk.beza
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.