2012-07-30 11 views
5

मुझे बनावट रैपिंग के साथ मुद्दों का सामना करना पड़ रहा है। जो कलाकृतियों का कारण बन रहा है। चूंकि मेरा कोडबेस बहुत बड़ा हो गया है, जिसके बारे में मैं सोच सकता हूं कि यह देखने के लिए कुछ जांच करने के लिए कुछ निश्चित कार्य करना है कि क्या कुछ बनावट श्रेणी के अंतर्गत आती है जो कलाकृतियों का कारण बनती है और रेंडरबफर पर चित्रण करने से पहले पैरामीटर बदलती है।क्या समय के दौरान glTexParameteri() सेट करना बुरा है?

तो क्या यह आम तौर पर ठीक है?

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_MIRRORED_REPEAT); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_MIRRORED_REPEAT); 

रेंडर लूप के दौरान glindindTexture के बाद पैरामीटर सेट करने के लिए? या यह एफपीएस को प्रभावित करेगा क्योंकि यह प्रत्येक रेंडर फ्रेम के दौरान संचालन को बढ़ाएगा?

उत्तर

8

बदलते बनावट पैरामीटर आमतौर पर प्रदर्शन पर बहुत गंभीर प्रभाव नहीं डालते हैं, क्योंकि यह कैश को बरकरार रखता है और केवल पहुंच पैटर्न को बदलता है।

हालांकि इस विशिष्ट उपयोग परिदृश्य "नमूना ऑब्जेक्ट्स" के लिए ओपनजीएल के बाद के संस्करणों में पेश किया गया है। मुझे लगता है कि आप उन्हें देखना चाहते हैं।

+0

आपको बहुत बहुत धन्यवाद :) – Gamer

+3

मुझे इस संबंध में बनावट/नमूनाकरण पर उपयोगी [आर्कसिंथेसिस अध्याय 14] (http://www.arcsynthesis.org/gltut/Texturing/Tutorial%2014.html) मिला। – FriendlyGuy

3

अंगूठे का सामान्य नियम यह है: किसी भी राज्य को न बदलें जो आपको नहीं करना है।

यदि किसी बनावट में एक आंतरिक संपत्ति है जो आपको प्रतिबिंबित-दोहराने वाले रैपिंग मोड का उपयोग करती है, तो उसे हमेशा उस संपत्ति में होना चाहिए। इसलिए, बनावट मूल रूप से उस रैपिंग मोड के साथ सेट की जानी चाहिए थी।

यदि ऐसा कुछ है जो को की आवश्यकता है, तो समय दें, फिर हाँ, आप इसे कर सकते हैं। चाहे वह आपके प्रदर्शन को प्रभावित करता है प्रतिकूल रूप से निर्भर करता है कि आपके प्रतिपादन कोड को सीपीयू कैसे बाध्य करता है।

नोट:

चूंकि मेरे codebase विशाल हो गया है

यह कुछ भी करने के लिए एक अच्छा कारण नहीं है। यदि आप अपने कोड को सही तरीके से करने का कोई तरीका नहीं समझ सकते हैं, तो संभवतः आपके कोडबेस में कुछ बुरा हो गया है। और आपको इस बनावट समस्या से निपटने का प्रयास करने से पहले को ठीक करना चाहिए।

+0

जबकि मैं सहमत हूं, आम तौर पर बनावट नमूना पैरामीटर बनावट सामग्री से बंधे होते हैं, कुछ मामले हैं, जहां एक एकल बनावट को विभिन्न नमूना पैरामीटर के साथ समझदारी से उपयोग किया जा सकता है। उदाहरण के लिए आपके पास कुछ LUT हो सकता है जिसका उपयोग या तो उपयोग के आधार पर या तो लपेटा हुआ चक्रीय चक्रीय या दर्पण चक्रीय हो सकता है। उदाहरण के लिए एक ही बैंड बनावट का उपयोग एक संगमरमर शेडर (प्रतिबिंबित चक्र) और लकड़ी के शेडर (लपेटा चक्र) में विभिन्न टेक्सकोर्ड पीढ़ी के तरीकों के साथ किया जा सकता है। – datenwolf

+0

सभी मान्य औचित्य के लिए धन्यवाद। यह अब पूरी तरह से sence बनाता है :-) – Gamer

संबंधित मुद्दे