आस्थगित decals सामान्य समस्या है


11

मैं एक आस्थगित decal प्रणाली पर काम कर रहा हूँ। अब तक मैंने प्रक्षेपण भाग समाप्त कर दिया है, जिसका अर्थ है कि मैं दृश्य में कुछ क्लिक कर सकता हूं और यह ठीक से वस्तु की सतह पर एक decal प्रोजेक्ट करेगा।

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

डीसल सामान्य मैपिंग करने के लिए, मुझे जी-बफर के सामान्य के साथ डीटेल के सामान्य (एक सामान्य नक्शे से) को मिश्रण करने की आवश्यकता है। जी-बफ़र की सामान्य बनावट को लिखने की आवश्यकता है।

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

जवाबों:


1

आप किस प्रतिपादन प्रणाली का उपयोग करते हैं? निम्नलिखित जानकारी सभी रेंडरिंग सिस्टम के लिए मान्य होनी चाहिए, लेकिन DX11 या बाद के ओपनजीएल संस्करणों में यूएवी के उपयोग से बेहतर समाधान हो सकता है।

-

आपको प्रत्येक पास से पहले सामान्य बफर को कॉपी करना होगा। जब तक आप जानते हैं कि decals उसी स्क्रीन स्पेस टुकड़े को संशोधित नहीं करते हैं, जिसे आपको कॉपी अपडेट करने की आवश्यकता नहीं है।

आप अपने सभी डिकल्स को अलग-अलग बफ़र्स में भी प्रस्तुत कर सकते हैं और केवल एक सामान्य बफर कॉपी का उपयोग करके अपने सामान्य बफर में एक मिश्रण पास करते हैं। इससे आपके पास जितने decals होंगे, उससे कहीं ज्यादा बेहतर होगा।

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

DX9 में मैंने पाया कि जब तक आप केवल निकटतम बिंदु फ़िल्टरिंग का उपयोग करते हैं और जब तक आप वर्तमान में लिखते हैं, तब तक एक अलग पिक्सेल नहीं पढ़ते हैं, तब तक अपेक्षित आउटपुट में उसी बनावट को पढ़ने और लिखने से परिणाम मिलता है! जैसा कि यह अपरिभाषित व्यवहार है इसमें ड्राइवर और ग्राफिक कार्ड हो सकते हैं जो इस तरह से व्यवहार नहीं करते हैं। DX10 वर्तमान में रेंडर टारगेट के रूप में बाध्य unbinding textures द्वारा ऐसा करने से रोक देगा।

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