एचएसएलएस पिक्सेल शेडर का उपयोग करके मैं छवि में सभी पिक्सेल की कुशलतापूर्वक गणना कैसे कर सकता हूं? मुझे पिक्सेल शेडर 2.0 में दिलचस्पी है, कि मैं एक डब्ल्यूपीएफ शेडर प्रभाव के रूप में आह्वान कर सकता हूं।सभी पिक्सेल के कुशल पिक्सेल शेडर योग
उत्तर
WPF में प्रभाव दृश्य परिणाम उत्पन्न करने के लिए अधिक उपयुक्त हैं। ऐसा लगता है कि आप उन्हें एक अलग प्रकार की गणना के लिए उपयोग करना चाहते हैं, ऐसा करने के लिए आपको छवि परिणाम का इलाज करने की आवश्यकता होगी क्योंकि डेटा को RenderTargetBitmap की आवश्यकता होगी जो कि सॉफ़्टवेयर में वैसे भी किया जाएगा। आप GPGPU के लिए डिज़ाइन की गई इन परियोजनाओं को देखना चाहेंगे।
OpenTK मैं OpenTK में OpenCL बाइंडिंग का राज्य नहीं जानता। डायरेक्ट कॉम्प्यूट और सीयूडीए जैसी अन्य तकनीकें भी एक लायक हो सकती हैं।
एक बहुत ही सरल समाधान है जो शेडर्स का उपयोग नहीं करता है: छवि को बनावट के रूप में लोड करें, एक मिपमैप श्रृंखला बनाएं और अंतिम मिपमैप (1x1 पिक्सेल) के मान को वापस पढ़ें। इस चाल का उपयोग बड़े पैमाने पर गेम में गणना के लिए किया जाता है, उदाहरण के लिए, एक दृश्य की औसत ब्रिगेनेस (एचडीआर टोनमैपिंग लागू करने के लिए)। यदि आप सटीकता पर सादगी और दक्षता का महत्व रखते हैं तो यह एक बड़ी चाल है।
आप डब्ल्यूपीएफ में एक छवि से मिपमैप चेन कैसे बनाते हैं, जो पिक्सेल शेडर लगाने के जितना तेज़ है? – luvieere
एक बॉक्स फ़िल्टर का उपयोग कर 1x1 का उपयोग कर छवि का आकार बदलकर। –
इसके लिए धन्यवाद। मेरे बनावट कुछ हद तक अपमानजनक (उच्च परिशुद्धता संख्यात्मक एफएफटी) हैं और त्रिभुज फ़िल्टर का उपयोग करके इसके परिणामस्वरूप बहुत अच्छे परिणाम दिए गए हैं (प्लस या वांछित परिणाम का 1% घटाएं) जो मेरे लिए काफी अच्छा है। हालांकि, बॉक्स फ़िल्टर बंद था। – Thomas
यह मानते हुए कि आप छवि में आर/जी/बी चैनल मानों का योग करना चाहते हैं (और यह सोचते हैं कि आप मूल पिक्सल नष्ट कर सकते हैं) - यहाँ मेरी आंशिक समाधान है:
- प्रत्येक 10 वीं पिक्सेल की औसत रंग गणना करेंगे 10 पड़ोसी पिक्सल और छवि पर इस औसत रंग डाल दिया।
- फिर प्रत्येक 10 वीं पिक्सेल के CPU पक्ष योग
Pix_Value*10
में।
इस मामले में हमें केवल सीपीयू पक्ष में पिक्सल मानों की तुलना में लगभग 10x गति-अप मिलता है।
'सभी पिक्सेल के योग' कहकर आपका क्या मतलब है - यह सभी आर/जी/बी मूल्यों या कुछ अलग है? –