GPU बनाम CPU पर मेष हेरफेर


9

बस थोड़ा जिज्ञासु - सीपीयू पर या शेडर में आप कहां-कहां मेष जोड़तोड़ करते हैं? मैं सीपीयू पर सब कुछ कर रहा हूं और एक दोस्त ने जीपीयू की तरफ बढ़ने की सलाह दी।

यदि आप अस्थि एनिमेशन ... जीपीयू पर काम कर रहे हैं, तो आप जाली कैसे वापस ला सकते हैं? (जब से मैं टकराव का पता लगा रहा हूं ...)

जवाबों:


13

यह आमतौर पर GPU पर होता है, लेकिन दोनों के लिए ट्रेड ऑफ हैं और यह तय करना आपके लिए है कि आपके लिए सबसे अच्छा काम कौन करेगा।

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

सीपीयू पर हेरफेर करने का मतलब है कि आपके पास रूपांतरित जाल तक पहुंच है। आप इसके बारे में जानने के लिए आवश्यक हर चीज तक पहुंच सकते हैं। हालांकि, इसका मतलब है कि आपको उस पूरे जाल को जीपीयू के प्रत्येक फ्रेम में अपलोड करना होगा। इसका मतलब यह भी है कि आपको उस जाल के प्रत्येक उदाहरण के लिए एक रूपांतरित जाल अपलोड करना होगा । सारांश में यहाँ एक नहीं है जहाँ पेशेवरों और विपक्ष की संपूर्ण सूची के पास है।

  • GPU के लिए पेशेवरों

    • एक बार मेष डेटा अपलोड करें
    • इसे कई उदाहरणों के लिए परिवर्तित करें
    • केवल मैट्रिक्स ट्रांसफ़ॉर्म भेजने की आवश्यकता है
    • इस प्रकार की चीजों को समानांतर करने में GPU बहुत अच्छा है
  • GPU के लिए विपक्ष

    • सीपीयू पर परीक्षण के लिए ट्रांसफ़ॉर्म किए गए मेश उपलब्ध नहीं हैं
  • सीपीयू के लिए पेशेवरों

    • ट्रांसफॉर्मेड मेशेस टकराव परीक्षणों और कुछ और जरूरत के लिए उपलब्ध हैं।
  • सीपीयू के लिए विपक्ष

    • प्रत्येक फ़्रेम को पूरे रूपांतरित जाल को अपलोड करने की आवश्यकता है
    • मेष के प्रत्येक उदाहरण के लिए एक संपूर्ण जाल अपलोड करने की आवश्यकता है

हालांकि GPU के लिए विपक्ष के चारों ओर पाने के तरीके हैं।

  • जाल सटीक टक्कर नहीं हैपूरे जाल के लिए एक बाउंडिंग बॉक्स की तरह कुछ "करीब पर्याप्त" का उपयोग करें या जाल की प्रत्येक हड्डी के लिए बाउंडिंग बॉक्स हैं। नीचे जाल के लिए GPU ट्रांसफ़ॉर्म पर उपयोग किया जा रहा है, और सीपीयू में मेष एल्सिंग बाउंडिंग बॉक्स के लिए रूपांतरण होता है जो मेष का प्रतिनिधित्व करते हैं। आप गैर-एएबीबी का उपयोग करके और भी अधिक सटीक सीमा प्राप्त कर सकते हैं।

गोभी की हड्डियाँ

  • सीपीयू पर जाल की एक प्रति परिवर्तित करें यदि और केवल अगर जाली सटीक टकराव की आवश्यकता होती है । एक बाउंडिंग बॉक्स की टक्कर सही होने के बाद, GPU पर ट्रांसफ़ॉर्म से मिलान करने के लिए एक मेष को रूपांतरित करें, फिर टकराव की जाँच करें ताकि अधिक सटीक टक्कर डेटा प्राप्त कर सकें।

सभी-में-मैं मान लेता हूं कि आप देख सकते हैं कि GPU पर रूपांतरण करना अधिक सामान्य क्यों है


1
जिज्ञासा से बाहर, क्या यह वास्तव में सीपीयू पर रूपांतरित होने के लिए मेषों के लिए व्यावहारिक है जब आधुनिक खेलों में मेषों की जटिलता को ध्यान में रखते हुए, एक आधुनिक सीपीयू की शक्ति और मल्टी-कोर क्षमताओं और एक सीपीयू को अन्य कार्यों को करना चाहिए? इसके अलावा, क्या GPU को अपलोड करना इतना धीमा है कि यह विचार भी जमीन पर नहीं उतरेगा?
R4D4

यह खेल पर निर्भर करेगा, लेकिन यह आमतौर पर एक मध्यम जटिलता से ऊपर के खेल के लिए व्यावहारिक नहीं है। जब GPU पर ट्रांसफ़ॉर्म करने का इतना आसान विकल्प होता है, तो CPU पर ट्रांसफ़ॉर्म करने की अतिरिक्त संसाधन आवश्यकताओं को सही ठहराने के लिए एक कारण खोजना मुश्किल होता है। यह समस्या हर फ्रेम में GPU के लिए तब्दील जाल भेजने के साथ अधिक है, जो महंगी तेजी से मिलती है। जैसा कि अक्सर सॉफ़्टवेयर के साथ होता है, यह जटिलता और प्रदर्शन के बीच निर्णय लेने के लिए डेवलपर के ऊपर होता है।
MichaelHouse
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.