मैं एक एंड्रॉइड एप्लिकेशन, मैं इस सतह के अन्य कशेरुक पर फैलती सतह की सामान्य गणना करना चाहता हूं। मैं इसे "मास्टर" प्रोग्राम में नहीं करना चाहता क्योंकि इसमें काफी समय लगता है। प्रत्येक शिखर के लिए वास्तव में मैं प्रत्येक vextex के लिए 4 नाव सरणी पारित:ओपनजीएल एस 2 में वर्टेक्स शेडर प्रोग्राम में अन्य वर्टेक्स तक कैसे पहुंचे?
attribute vec3 a_bottom;
attribute vec3 a_left;
attribute vec3 a_right;
attribute vec3 a_top;
vec3 calculNormal() {
return normalize(cross((a_left - a_right) , (a_bottom - a_top)));
}
यह बहुत बहुत गंदे कोड मुझे पता है बहुत है, इसलिए बजाय 4 सरणियों पास करने का, मैं ऐसा करना चाहते:
vec3 calculNormal() {
vec3 a_left = CURRENT_FLOATBUFFER[ CURRENT_FLOAT_BUFFER_POSITION - 1 ];
vec3 a_bottom = CURRENT_FLOATBUFFER[ CURRENT_FLOAT_BUFFER_POSITION - X ];
...
return normalize(cross((a_left - a_right) , (a_bottom - a_top)));
}
तो वर्तमान में फ्लोट बफर को स्वीकार करने के लिए एक कशेरुक शेडर प्रोग्राम में यह संभव है? क्या वर्तमान फ्लोट जैसे विशेष कीवर्ड हैं? या क्या कोई और संभावना है कि मुझे याद आती है?
हाय डेटनवॉल्फ। अगर मैं रनटाइम पर ऑब्जेक्ट बनाने के बाद एक ऊंचाईमैप का नमूना देना चाहता हूं तो क्या होगा? क्या मुझे इसे ऊंचाई के नमूने के नमूने के लिए एक शेडर के माध्यम से चलाया जाना चाहिए, शिखर को बदलना, इसे वापस भेजना, फिर एक और वीबीओ अपलोड करना चाहिए? मुझे नहीं लगता कि सीपीयू पर एक बनावट का नमूना वास्तव में रास्ता है, अच्छी तरह से एक चीज के लिए glTexImage का उपयोग करके बनावट अपलोड की गई है और सीपीयू में वास्तव में यह नहीं है। – Zebrafish
@ टिटोनमोरीस: मूल प्रश्न सामान्य मेष के बारे में था। लेकिन ऊंचाईमैप एक विशेष मामला है, जहां सतह सामान्य को सही कर्नेल (असतत अंतर, उर्फ ढाल कर्नेल) के साथ एक रूपांतरण का उपयोग करके गणना की जा सकती है। 'TextureGather' (GLSL-4 और बाद में) का उपयोग करके टेक्स्ट के 2 × 2 ग्रिड को लाया जा सकता है, जो आपको इसके लिए आवश्यक है।हालांकि मैं अभी भी मानदंडों को सटीक करने की अनुशंसा करता हूं, जो आपको बनावट के लिए * सामान्य मानचित्र * प्रभावी रूप से प्रभावी बनाता है। – datenwolf
@TitoneMaurice: अनुप्रयोग विचार: उच्च रिज़ॉल्यूशन पर ऊंचाईमैप बनाएं, उस से सामान्य मानचित्र उत्पन्न करें, रोशनी की गणना के लिए पूर्ण संकल्प सामान्य मानचित्र (खंड टुकड़े में) का उपयोग करें और वर्टेक्स विस्थापन के लिए डाउनस्म्प्लेड ऊंचाईमैप। आगे विचार: आप पूर्ण रिज़ॉल्यूशन ऊंचाई-सामान्य-मानचित्र स्टोर कर सकते हैं और वर्टेक्स चरण में कम रिज़ॉल्यूशन लोड तक पहुंच सकते हैं और खंड के शेडर में पूर्ण रिज़ॉल्यूशन और वर्टेक्स ऊंचाई मान के बीच अंतर का उपयोग दृश्य गुणवत्ता बढ़ाने के लिए लंबन मैपिंग में इनपुट के रूप में करते हैं। – datenwolf