Heyo में कर सकते हैं के लिए देख रहा हूँ, यह मेरी पहली बार एक सवाल पूछने यहाँ तो मुझे माफ कर दो है अगर मैं गड़बड़ किसी चीज़ अप> ~ <मैं किसी भी अनुकूलन मैं एक ग्राफिक्स संपादन प्रोग्राम
मैं पर काम कर रहा हूँ ओपन कैनवास के समान एक कार्यक्रम, पहले वाले लोगों ने इंटरनेट पर वास्तविक समय में एक ही कैनवास पर कई लोगों को आकर्षित करने की अनुमति दी थी। ओसी की वास्तव में छोटी गाड़ी है और इसमें कई सीमाएं हैं, यही कारण है कि मैं इसे लिखना चाहता था।
मैंने इसे स्थापित किया है ताकि कैनवास सभी दिशाओं में "अनिश्चित काल तक" फैला हुआ हो और 512x512 ब्लॉक पिक्सल से बना हो जो तब तक सक्रिय न हो जाएं जब तक कि वे खींचे जाएं, जो वास्तव में बनाना आसान हो, और मैं इसे हार्डवेयर तेज करने के लिए डायरेक्ट 3 डी का उपयोग करने के बारे में सोच रहा था, इस प्रकार 512 वर्ग ब्लॉक।
मेरी समस्या तब होती है जब मैं परतों का उपयोग करना चाहता हूं, मुझे पूरा यकीन नहीं है कि मैं परतों को जल्दी से और मेमोरी का उपयोग किए बिना कैसे लिख सकता हूं, क्योंकि मेरा लक्ष्य 128 एम मेमोरी के साथ डायरेक्टएक्स 9 संगत वीडियो कार्ड है, और एक सिस्टम लगभग 3.2 गीगा सीपीयू पावर और रैम के 2 और 8 गीगा के बीच। मेरे पास कुछ अलग-अलग दृष्टिकोण थे जो मैं सोचने के बारे में सोच रहा था और सोच रहा था कि शायद सबसे अच्छा क्या होगा, और यदि कुछ भी था तो मैं इसे बेहतर चलाने के लिए देख सकता था।
मेरा पहला विचार जीएफएक्स हार्डवेयर को सभी ब्लॉकों पर सभी परतों को बनावट के रूप में जितना संभव हो उतना काम करना था, और उन्हें बदलते क्षेत्र को लॉक करके अपडेट किया जाएगा, उन्हें सीपीयू पर अपडेट किया जाएगा, और उन्हें अनलॉक कर रहा है। जिन ब्लॉक्स को वर्तमान में बदला नहीं जा रहा है वे एक बनावट में चपटे हैं और व्यक्तिगत परतों को सिस्टम मेमोरी में रखा जाता है, जो जीएफएक्स मेमोरी को कम कर देता है, लेकिन सिस्टम और जीएफएक्स मेमोरी के बीच बैंडविड्थ उपयोग में काफी वृद्धि कर सकता है। मैं निरंतर लॉकिंग देख सकता हूं और सिस्टम को बहुत खराब तरीके से धीमा कर सकता हूं। एक और संभावित मुद्दा यह है कि मैंने 200 परतों का उपयोग करके कुछ लोगों को सुना है, और मैं ऊपर दिए गए को अनुकूलित करने के किसी भी अच्छे तरीके के बारे में नहीं सोच सकता।
मेरा दूसरा विचार बनावट को लिखना था - सिस्टम मेमोरी में, उन्हें एक बनावट में लिखें, और उस बनावट को प्रत्येक ब्लॉक में जीएफएक्स मेमोरी में प्रतिलिपि बनाने के लिए कॉपी करें। ऐसा लगता है कि अन्य तरीकों के साथ कई मुद्दों को खत्म करना प्रतीत होता है, लेकिन साथ ही मैं सभी कार्यों को सीपीयू में ले जा रहा हूं, इसे संतुलित करने के बजाय। यह तब तक एक बड़ा सौदा नहीं है जब तक कि यह अभी भी जल्दी से चलता है। फिर भी, दो सौ परतें रखने का मुद्दा है। हालांकि, इस मामले में, मैं शायद अंतिम पिक्सल को केवल अपडेट कर सकता हूं जो वास्तव में बदल रहे हैं, जो मुझे लगता है कि साई और फ़ोटोशॉप जैसे बड़े नाम प्रोग्राम हैं।
मैं ज्यादातर सिफारिशों, सुझावों की तलाश कर रहा हूं जो उपर्युक्त, बेहतर तरीके या ऐसे प्रोजेक्ट से संबंधित लेखों के लिंक को बेहतर बना सकते हैं। जबकि मैं इसे सी ++ में लिख रहा हूं, मुझे अन्य भाषाओं से अनुवाद करने में कोई परेशानी नहीं है। अपना समय ~
वास्तव में अच्छा सवाल है! मुझे सिर्फ इसके लिए एक ही एप्लीकेशन को कोड करना है, लेकिन दुर्भाग्यवश मेरे पास समय नहीं है; ( –