2009-01-08 22 views
6

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

ऐसा करने के लिए सबसे सरल सेटअप मैं सोच सकता हूं कि एक साधारण सफेद ट्रैक्टर प्रदर्शित करना है जो संपूर्ण व्यूपोर्ट को ऑर्थोगोनल प्रोजेक्शन में ले जाता है और फिर छवि प्रसंस्करण बिट को एक टुकड़े टुकड़े के रूप में लिखता है। यह प्रसंस्करण के कई उदाहरणों को समानांतर में चलाने के साथ-साथ प्रसंस्करण के लिए आवश्यक बनावट के किसी भी पिक्सेल तक पहुंचने की अनुमति देगा।

क्या यह क्रिया का एक व्यवहार्य तरीका है? क्या इस तरह चीजों को करना आम बात है? क्या ऐसा करने का कोई बेहतर तरीका हो सकता है?

उत्तर

2

हां, यह चीजों को करने का सामान्य तरीका है।

  1. एक बनावट में कुछ प्रस्तुत करें।
  2. उस शेडर के साथ एक पूर्णस्क्रीन ट्रैक्टर बनाएं जो उस बनावट को पढ़ता है और कुछ संचालन करता है।

सरल प्रभाव (उदा। ग्रेस्केल, रंग सुधार इत्यादि) एक पिक्सेल पढ़ने और टुकड़े टुकड़े में एक पिक्सेल आउटपुट करके किया जा सकता है। ऑफ़सेट स्थान से एक पिक्सेल पढ़ने और एक पिक्सेल आउटपुट करके अधिक जटिल संचालन (जैसे घुमावदार पैटर्न) किया जा सकता है। कई पिक्सेल पढ़ने से भी अधिक जटिल संचालन किए जा सकते हैं।

कुछ मामलों में कई अस्थायी बनावट की आवश्यकता होगी। जैसे उच्च त्रिज्या के साथ धुंध अक्सर इस तरह से किया जाता है:

  1. एक बनावट में प्रस्तुत करें।
  2. एक अन्य (छोटे) बनावट में एक शेडर के साथ प्रस्तुत करें जो प्रत्येक आउटपुट पिक्सेल को एकाधिक स्रोत पिक्सल के औसत के रूप में गणना करता है।
  3. एक छोटे से बनावट में प्रस्तुत करने के लिए इस छोटे बनावट का उपयोग करें, एक शेडर जो उचित गॉसियन धुंध या कुछ करता है।
  4. ... दोहराने

ऊपर सभी मामलों में, हालांकि, प्रत्येक उत्पादन पिक्सेल अन्य उत्पादन पिक्सल के स्वतंत्र होना चाहिए। यह एक और अधिक इनपुट पिक्सल का उपयोग ठीक कर सकता है।

प्रसंस्करण ऑपरेशन का एक उदाहरण जो अच्छी तरह से मानचित्रण नहीं करता है, समेकित क्षेत्र तालिका है, जहां प्रत्येक आउटपुट पिक्सेल इनपुट पिक्सेल पर निर्भर है और आसन्न आउटपुट पिक्सेल का मान है। फिर भी, जीपीयू (example pdf) पर उन प्रकारों को करना संभव है।

2

हां, यह छवि प्रसंस्करण करने का सामान्य तरीका है। क्वाड का रंग वास्तव में कोई फर्क नहीं पड़ता कि आप प्रत्येक पिक्सेल के लिए रंग सेट करेंगे। आपके आवेदन के आधार पर, आपको पिक्सेल नमूनाकरण मुद्दों के बारे में सावधान रहना पड़ सकता है (यानी यह सुनिश्चित करना कि आप दो पिक्सेल के बीच आधा रास्ते की बजाय स्रोत बनावट पर बिल्कुल सही पिक्सेल से नमूना लें)।

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