जो मैं करने की कोशिश कर रहा हूं वह एक बनावट बनावट पारदर्शी हिस्से का हिस्सा बनाने के लिए एक्सएनए में अल्फा मिश्रण का उपयोग करना है। तो उदाहरण के लिए, मैं स्क्रीन को कुछ रंगों में साफ़ करता हूं, ब्लू कहता हूं। फिर मैं एक बनावट खींचता हूं जो लाल है। अंततः मैं एक बनावट खींचता हूं जो केंद्र में पूरी तरह से पारदर्शी से किनारे पर पूरी तरह से काला होने के लिए सिर्फ एक रेडियल ढाल है। मैं चाहता हूं कि लाल बनावट रेडियल ग्रेडियेंट बनावट के समान स्थानों में पहले पारदर्शी हो। तो आप लाल बनावट के माध्यम से नीली पीठ के मैदान को देखने में सक्षम होना चाहिए।एक्सएनए अल्फा मिश्रण एक बनावट का हिस्सा बनाने के लिए पारदर्शी
मैंने सोचा कि यह काम करेगा।
GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin(SpriteBlendMode.None);
spriteBatch.Draw(bg, new Vector2(0, 0), Color.White);
spriteBatch.End();
spriteBatch.Begin(SpriteBlendMode.None);
GraphicsDevice.RenderState.AlphaBlendEnable = true;
GraphicsDevice.RenderState.AlphaSourceBlend = Blend.One;
GraphicsDevice.RenderState.AlphaDestinationBlend = Blend.Zero;
GraphicsDevice.RenderState.SourceBlend = Blend.Zero;
GraphicsDevice.RenderState.DestinationBlend = Blend.One;
GraphicsDevice.RenderState.BlendFunction = BlendFunction.Add;
spriteBatch.Draw(circle, new Vector2(0, 0), Color.White);
spriteBatch.End();
GraphicsDevice.RenderState.AlphaBlendEnable = false;
लेकिन यह मेरी सभी रेंडरस्टेट सेटिंग्स को अनदेखा करता है। मैंने स्प्राइटब्लेंड मोड को अल्फाब्लेंड में सेट करने का भी प्रयास किया। यह बनावट को मिलाता है, लेकिन यह वह प्रभाव नहीं है जिसे मैं चाहता हूं।
किसी भी मदद की सराहना की जाएगी।
जवाब के लिए धन्यवाद और इस बेहद करीब है, लेकिन उनके एक समस्या है। सर्कल बनावट पृष्ठभूमि बनावट से छोटी है, और उपर्युक्त कोड के साथ क्या हो रहा है, बैक ग्राउंड केवल तभी खींचा जाता है जहां सर्कल बनावट मौजूद होती है। विचार सर्कल बनावट को आकर्षित करना है जहां माउस पॉइंटर है और उपयोगकर्ता बैक ग्राउंड के माध्यम से देख सकता है जहां सर्कल बनावट है। – DangerMouse
@ डेविड, यदि आपको अल्फा मास्क को उलटा करने की आवश्यकता है तो अल्फा चैनल को सफेद का उपयोग करके साफ़ करें और काले रंग का उपयोग करके सर्कल खींचें। –
यह धन्यवाद काम किया। मुझे ग्राफिक्सडिवाइस.रेंडरस्टेट.डिस्टिनेशन ब्लेंड = ब्लेंड.जेरो; ग्राफिक्सडिवाइस। रेंडरस्टेट। सोर्सब्लेंड = ब्लेंड.ऑन; हालांकि इसे काम करने के लिए मंडलियों को आकर्षित करने से ठीक पहले। मैंने सोचा कि यह डिफ़ॉल्ट मान था, लेकिन जब तक मैं उन्हें सेट नहीं करता तब तक यह काम नहीं करता था। सभी मदद के लिए धन्यवाद। – DangerMouse