तो मैं एक्सएनए 3.1 के साथ एक चीज़ बना रहा हूं, और मेरे पास बहुत से अलग प्रभाव हैं जो पिक्सेल शेडर्स के माध्यम से लागू होते हैं। ये सभी प्रकार के स्रोतों से आते हैं, जैसे विशेष हमले, पर्यावरण, और बहुत आगे। मेरे पास जो मुद्दा है वह यह है कि मैं फ्रेम दर में महत्वपूर्ण कमी देख रहा हूं।कई पिक्सेल शेडर्स को कुशलता से जोड़कर
फिलहाल, मैं पूरे दृश्य को एक RenderTarget2D पर खींच रहा हूं, जिसे मैं तब सभी प्रभावों को लागू कर रहा हूं। मैं एक SortedDictionary प्रभाव और उनकी आईडी युक्त स्टोर (आईडी कार्यावधि में मानकों को बदलने के लिए उपयोग किया जाता है), और मैं इस पर पुनरावृत्ति कर रहा हूँ और अन्य के बाद एक प्रभाव एक आवेदन:
foreach(KeyValuePair<Ref<int>,Effect> p in renderEffects)
{
Effect r = p.Value;
g.SetRenderTarget(0, MainGame.MainRenderTarget);
//Change RenderTarget to allow code to grab existing texture in the same draw area.
levelDraw = MainGame.LevelRenderTarget.GetTexture();
//Change back to draw back to this texture, allowing render effects to be layered.
g.SetRenderTarget(0, MainGame.LevelRenderTarget);
MainGame.StartDraw(MainGame.GameBatch);
//Starts the sprite batch and sets some parameters
r.Begin();
r.CurrentTechnique.Passes[0].Begin();
MainGame.GameBatch.Draw(levelDraw, new Rectangle(0, 0, levelDraw.Width, levelDraw.Height), Color.White);
r.CurrentTechnique.Passes[0].End();
r.End();
MainGame.GameBatch.End();
}
अब, यह ध्यान देने योग्य का उत्पादन फ्रेम केवल 3 प्रभावों को लेते समय गिरता है, और 10 लागू करते समय, यह 60 एफपीएस से 16 एफपीएस तक गिर जाता है, जो निश्चित रूप से अस्वीकार्य है। मैं सोच रहा हूं कि ऐसा करने का एक और अधिक प्रभावी तरीका है या नहीं। ध्यान में रखते हुए कि मेरे पास केवल एक बनावट है, मैंने सोचा कि मैं प्रभाव को एक फ़ाइल में जोड़ सकता हूं और बनावट को वापस पकड़ने के बिना एकाधिक पास निष्पादित कर सकता हूं। मुझे यकीन नहीं है कि यह संभव है, हालांकि।
मुझे सच में यकीन नहीं है कि यह करने का सबसे अच्छा तरीका कैसा है, हालांकि मुझे लगता है कि जिस तरह से मैं इसे कर रहा हूं उससे बेहतर तरीका होना चाहिए।
मैं अपने शीर्षक संपादित किया है को देखने के लिए चाहते हो सकता है। कृपया देखें, "[प्रश्नों में उनके शीर्षक में" टैग "शामिल होना चाहिए?] (Http://meta.stackexchange.com/questions/19190/)", जहां आम सहमति है "नहीं, उन्हें नहीं करना चाहिए"। –
इसके लिए धन्यवाद। मैं उन्हें लोगों को यह जानने के लिए शामिल करता हूं कि वे टैग को देखने के बजाय, एक नज़र में मदद कर सकते हैं या नहीं, लेकिन मैं वहां उनका उपयोग न करने में तर्क देख सकता हूं। – Hoeloe
टैग में एक गड़बड़ शीर्षक को देखने से बेहतर तंत्र शामिल है। आप "पसंदीदा टैग" सेट कर सकते हैं जो उन टैग के संदेशों को हाइलाइट करने का कारण बनेंगे; और "अनदेखा टैग" जो उन टैग के साथ संदेशों को छुपाएगा। –