2013-10-28 10 views
5

मेरे कार्यक्रम में मेरे पास एक बनावट है जिसे विभिन्न स्थितियों में कई बार उपयोग किया जाता है। प्रत्येक परिस्थिति में मुझे पैरामीटर के एक निश्चित सेट को लागू करने की आवश्यकता है।ओपनजीएल: विभिन्न पैरामीटर के साथ एक ही बनावट का पुन: उपयोग

मैं अतिरिक्त बफर बनाने से बचाना चाहता हूं और अनिवार्य रूप से बनावट की एक प्रति बना रहा हूं, हर बार जब मुझे इसे किसी अन्य चीज़ के लिए उपयोग करने की ज़रूरत है, तो मैं जानना चाहता हूं कि कोई बेहतर तरीका है या नहीं?

उत्तर

7

यह sampler objects है (संस्करण 3.3 के बाद से कोर में उपलब्ध है, या ARB_sampler_objects का उपयोग कर)। नमूना वस्तुएं बनावट छवि को इसके पैरामीटर से अलग करती हैं, ताकि आप कई पैरामीटर सेट के साथ एक बनावट का उपयोग कर सकें। वह कार्यक्षमता बिल्कुल आपकी समस्या के साथ दिमाग में बनाई गई थी।

ARB_sampler_objects विस्तार कल्पना से उद्धरण:

unextended OpenGL संरचना में छवि डेटा (MIP-चेन, सरणियों, घन-नक्शा चेहरे सेट, आदि) और नमूने राज्य के सेट माना जाता है (नमूना मोड , मिप-मानचित्रण राज्य, समन्वय लपेटना और क्लैंपिंग नियम, आदि) एक ही वस्तु में संयुक्त। नमूनाकरण राज्यों के सीमित सेट के साथ कई बनावटों का उपयोग करने के लिए यह एक सामान्य अनुप्रयोग है जो उनके बीच समान है। इस तरह से बनावट का उपयोग करने के लिए, एक एप्लिकेशन को कई बनावट नामों को उत्पन्न और कॉन्फ़िगर करना होगा, दोनों अनुप्रयोगों और कार्यान्वयन के लिए ओवरहेड जोड़ना होगा। इसके अलावा, क्या एक आवेदन एक से अधिक तरीकों से बनावट से नमूना करना चाहता है (उदाहरण के लिए मिप-मैपिंग के साथ और बिना) इसे या तो बनावट की स्थिति को संशोधित करना चाहिए या दो बनावट बनाना चाहिए, प्रत्येक एक ही छवि डेटा की एक प्रति के साथ । यह एप्लिकेशन में रनटाइम और मेमोरी लागत पेश कर सकता है।

+0

यदि आपके पास नमूने ऑब्जेक्ट्स उपलब्ध नहीं हैं तो भी जब भी आपको ऐसा करने की आवश्यकता हो, तो आप बनावट पैरामीटर बदल सकते हैं। वे एक बार सेटिंग्स नहीं हैं। – datenwolf

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