अपने इंजन में मैं सीपीयू पर गणना किए गए पेर्लिन शोर एल्गोरिटम के उपयोग के साथ अनंत इलाके बनाता हूं।
इलाके का निर्माण इस प्रकार है:
- यदि कैमरा अनलोड किए गए पैच के पास है, तो इसे बनाएं
- दी गई सीमाओं के साथ 513x513 शोर सरणी की गणना करें
- कम्प्यूटेशनल मानदंडों, स्पर्शरेखा, असामान्य, सूचकांकों
- Vbo को डेटा पास करें
पेशेवरों:
- जरूरत पड़ने पर ही पेश किया जाना चाहिए
- टक्कर लगाना आसान
चोर
- धीमे 64 513x513 पैच 3,1s (एक धागा) में बनाए जाते हैं। प्रत्येक टाइल के लिए ~ 20ms शोर निर्माण, ~ 25ms कोने, मानक, स्पर्शरेखा, बिटेंगेंट, सूचकांक। जब कैमरा तेज चलता है, तो उपयोगकर्ता टाइल लोडिंग को नोटिस कर सकता है।
- स्मृति खपत ???
अब मैं सोच रहा था कि पूरी तरह से GPU पर इलाके पैदा करके इसे कैसे गति दें लेकिन कुछ संदेह हैं:
- यदि शेड्स हर फ्रेम में चलते हैं, तो क्या यह कंप्यूटेशन पॉवर वेस्ट नहीं है, जो बार-बार शोर की गणना करता है? आरबीजीए बनावट में परिणाम लिखने से इसे टाला जा सकता है और बाद में विस्थापन के लिए वर्टेक्स शेडर में उपयोग किया जाता है, लेकिन स्मृति उपयोग में वृद्धि होती है। दूसरी ओर यदि निर्माण सुपर फास्ट होगा, तो केवल दृश्यमान टाइलें ही स्मृति में रहेंगी। हालाँकि, बफर का पता लगाने से जीपीयू-सीपीयू सिंक होता है जो ऐप को धीमा कर सकता है (क्या मैं सही हूं?)
- यदि इलाके सिर्फ एक सपाट ग्रिड है जिसे वर्टेकर शेडर द्वारा विस्थापित किया गया है, तो टकराव के लिए दिए गए बिंदु पर ऊंचाई और सामान्य गणना करने के लिए सीपीयू पर समान काम करने की आवश्यकता है।
- यह सिर्फ एक अवधारणा है, लेकिन हर चीज को गति देने के लिए मैं व्यूपोर्ट पर ग्रिड प्रोजेक्ट करने के बारे में सोच रहा था, इसलिए केवल न्यूनतम मात्रा का उपयोग किया जाता है। क्या आपको लगता है कि यह काम करेगा?
मेरा अंतिम प्रश्न है:
GPU पर अनंत इलाके बनाने के लिए सबसे अच्छी / सबसे तेज़ / मोटे तौर पर इस्तेमाल की जाने वाली तकनीक क्या है?