मैं एक शौक परियोजना के रूप में एक खान परियोजना के रूप में काम कर रहा हूं यह देखने के लिए कि आधुनिक हार्डवेयर और ओपनजीएल> = 3. पर वोक्सेल इलाकों की अवधारणा को कितनी दूर धकेल दिया जा सकता है। इसलिए, मेरी सभी ज्यामिति में क्वाड, या वर्ग होते हैं सटीक।एक ट्रैक्टर पर मानक के bilinear interpolation कैसे करें?
मैंने परिवेश के प्रक्षेपण का अनुमान लगाने के लिए एक रेकास्टर बनाया है, और प्रकाश व्यवस्था करने के लिए "झुकाव मानक" की तकनीक का उपयोग किया है। तो मेरे आदर्श क्वाड के लिए लंबवत नहीं हैं, न ही उनके पास इकाई की लंबाई है; बल्कि, वे मोटे तौर पर उस स्थान की तरफ इशारा करते हैं जहां कम से कम प्रकोप हो रहा है, और जब कमर को कम रोशनी मिलती है तो कम होते हैं। इस तकनीक का लाभ यह है कि इसे केवल एक बार की गणना की आवश्यकता होती है, और अनिवार्य रूप से समय प्रस्तुत करने में नि: शुल्क है।
हालांकि, जब मैं चिकनी रोशनी प्राप्त करने के लिए एक ही ट्रैक्टर के विभिन्न शीर्षकों को अलग-अलग मानदंडों को आवंटित करने का प्रयास करता हूं तो मैं परेशानी में पड़ता हूं।
समस्या यह है कि ओपन barycentric का उपयोग करता है: क्योंकि ट्रैक्टर त्रिकोण में विभाजित है, और रैखिक प्रक्षेप प्रत्येक त्रिकोण से अधिक होता है, प्रक्षेप का परिणाम स्पष्ट रूप से बदसूरत विकर्ण कलाकृतियों के रूप में त्रिकोण की उपस्थिति को दर्शाता प्रत्येक त्रिकोण पर इंटरपोलेशन, जो 4 कोनों में से 3 से अधिक भारित योग है। आदर्श रूप से, मैं बिलीनेर इंटरपोलेशन का उपयोग करना चाहता हूं, जहां परिणाम की गणना करने में सभी 4 कोनों का उपयोग किया जा रहा है। एक 2x2 आरजीबी बनावट में
सामग्री Normals, और बनावट प्रोसेसर द्विरेखीय प्रक्षेप करते हैं:
मैं कुछ समाधान के बारे में सोच सकते हैं। यह टुकड़े टुकड़े में एक बनावट लुकअप की लागत पर होता है। मुझे दक्षता के लिए इन सभी मिनी-बनावट को बड़े पैमाने पर पैक करने की भी आवश्यकता होगी।
प्रत्येक चरम पर सभी 4 मानक संलग्न करने के लिए वर्टेक्स विशेषताओं का उपयोग करें। प्रत्येक वर्टेक्स में कुछ [0..1] गुणांक संलग्न करें, बनावट निर्देशांक की तरह, और टुकड़े टुकड़े में बिलीनेर इंटरपोलेशन करें। यह शेडर करने के लिए 4 normals गुजर बजाय सिर्फ 1.
की मुझे लगता है कि इन दोनों तकनीकों काम करने के लिए बनाया जा सकता है की कीमत पर होता है, लेकिन वे मेरे कुछ है कि बहुत सरल होना चाहिए के लिए kludges के रूप में हड़ताल। हो सकता है कि मैं किसी भी तरह के मानदंडों को बदल सकता हूं, ताकि ओपनजीएल का इंटरपोलेशन परिणाम देगा जो इस्तेमाल किए गए विशेष त्रिभुज पर निर्भर नहीं है।
(ध्यान दें कि समस्या normals के लिए विशिष्ट नहीं है, यह रंग या किसी अन्य मूल्य सुचारू रूप से एक ट्रैक्टर भर अंतर्वेशित किए जाने की जरूरत है कि करने के लिए समान रूप से लागू होता है।)
कोई भी विचार और कैसे इस समस्या के दृष्टिकोण के लिए? यदि नहीं, तो ऊपर की दो तकनीकों में से कौन सा सबसे अच्छा होगा?
मैं जाल घनत्व में वृद्धि नहीं करना चाहता, क्योंकि मैं जितना संभव हो उतने ब्लॉक को धक्का देने की कोशिश कर रहा हूं। मुझे पता है कि खुद को बनावट कैसे विभाजित करना है, लेकिन अगर मैं इसकी मदद कर सकता हूं तो मैं अपने आदर्शों को बनावट में संग्रहित नहीं करना चाहता - इसलिए यह सवाल! – Thomas