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