खेल में ज्यामितीय एलओडी में कला की स्थिति क्या है?


15

वर्ण, भू-भाग, और पर्ण जैसे ऑब्जेक्ट मेश के लिए आधुनिक गेम ज्यामिति के स्तर का विस्तार कैसे करते हैं? मेरे प्रश्न के दो भाग हैं:

  1. परिसंपत्ति पाइपलाइन कैसा दिखता है? क्या कलाकार एक उच्च-पाली मॉडल बनाते हैं जिसे बाद में विघटित कर दिया जाता है? यदि ऐसा है, तो कौन सा डेसीमेशन एल्गोरिदम सबसे लोकप्रिय है? क्या एलओडी मेष कभी-कभी हाथ से किए जाते हैं?
  2. रन टाइम के दौरान विभिन्न ऑब्जेक्ट LODs के बीच इंजन कैसे परिवर्तित होते हैं? क्या कोई सहज या प्रगतिशील बदलाव हैं?

उत्तर हो सकता है "विभिन्न स्टूडियो विभिन्न तकनीकों का उपयोग करते हैं।" यदि हां, तो कृपया कुछ सबसे सामान्य प्रथाओं की पहचान करें। यह भी बहुत अच्छा होगा यदि आप मुझे व्हाइटपापर्स / स्लाइड्स पर इंगित कर सकते हैं जो विशिष्ट उदाहरणों को कवर करते हैं।


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

हम LOD एल्गोरिदम और डाटा संरचनाओं यहाँ में कला के राज्य के बारे में बात कर सकते हैं, लेकिन अगर सवाल यह है कि आधुनिक खेल विशेष रूप से यह कर के बारे में है, तो आप अधिक भाग्य gamedev.se में पूछ हो सकता है: gamedev.stackexchange.com
उपनाम

3
मुझे शक है कि। गेम देव बहुत ग्राफिक्स लाइट है। यह ज्यादातर एकता और जावा के सवालों के साथ कुछ पथ खोजने और तय फ्रेम दर सवालों के घेरे में है: p
एलन वोल्फ

1
@Alan, Activision ने एक वास्तविक 3 डी रणनीतिक गेम नॉट आइस आइसोमेट्रिक स्प्राइट बेस एक बनाने के लिए कला एल्गोरिदम की बहुत सारी स्थिति का उपयोग किया, जो कि मैं इसके साथ ठीक हूं, लेकिन उन्होंने सीओडी में बहुत अच्छा काम किया हालांकि यह अभी भी थोड़ा सुस्त और आलसी है यहां तक ​​कि शुरुआती स्तर पर कम संख्या में संपत्ति के साथ (Iphone 5s पर उनके मोबाइल गेम के बारे में बात कर रहा हूं)। मुझे लगता है कि आपको इस तरह के खेल को लिखने के लिए ओपनग्लस विशेषज्ञ सुविधाओं और अंतर्निहित परतों को सीखने की आवश्यकता है।
इमान

मैं मामले में ड्यूटी के कॉल के उनके कंसोल संस्करण के बारे में बात कर रहा हूं जो इसे साफ करता है।
एलन वोल्फ

जवाबों:


23

रेखागणित LOD के लिए अधिकांश गेम बस पूर्वनिर्धारित LOD की एक संख्या के बीच स्विच करते हैं। उदाहरण के लिए "बदनाम: दूसरा बेटा" 3 एलओडी मेज़ ( एड्रियन बेंटले - "इनफोमस: दूसरा सोन इंजन पोस्टमॉर्टम", जीडीसी 2014 ) और "किलज़ोन: शैडो फॉल" का उपयोग 7 एलओडी मेज़ का उपयोग करता है। डेमो पोस्टमॉर्टम ", Devstation2013 )। उनमें से अधिकांश उत्पन्न होते हैं, लेकिन अधिक महत्वपूर्ण (जैसे मुख्य चरित्र) हाथ से बनाए जा सकते हैं। अक्सर एक लोकप्रिय सिम्पलगन मिडलवेयर का उपयोग करके मेष उत्पन्न होते हैं, लेकिन कभी-कभी वे अपने पसंदीदा 3 डी पैकेज में ग्राफिक्स कलाकारों द्वारा बस उत्पन्न किए जाते हैं।

बड़े ड्रॉ के साथ खेल अतिरिक्त रूप से पत्ते, पेड़ों और ऊंची इमारतों ( एड्रियन बेंटले - "inFAMOUS: दूसरा सोन इंजन पोस्टमॉर्टम", जीडीसी 2014 ) के लिए imposters का उपयोग करते हैं । वे पदानुक्रमित LODs को भी नियुक्त करते हैं, जो एक के साथ वस्तुओं के एक सेट को प्रतिस्थापित करते हैं। उदाहरण के लिए "जस्ट कॉज़ 2" के पेड़ों को पहले सामान्य एलओडी मेश के रूप में व्यक्तिगत रूप से प्रस्तुत किया जाता है, फिर व्यक्तिगत रूप से थोपने वाले के रूप में और अंत में एक विलीन वन जाल ( एमिल पर्सन, जोएल डे वाहल - "पॉपुलेटिंग अ मासिव गेम वर्ल्ड", सिग्राफ 2013 ) और के रूप में दुनिया के "सूर्यास्त ओवरड्राइव" दूर के हिस्सों को स्वचालित रूप से ऑफ़लाइन उत्पन्न जाल ( एलान रस्किन - "स्ट्रीमिंग सनसेट ओवरड्राइव ओपन वर्ल्ड", GDC2015 ) द्वारा प्रतिस्थापित किया जाता है ।

एलओडी प्रणाली का एक अन्य घटक सामग्री और शेड का सरलीकरण है। उदाहरण के लिए "किलज़ोन: शैडो फॉल" दूर के एलओडी ( मीकल वैलिएंट - "किलज़ोन: शैडो फॉल डेमो पोस्टमॉर्टम", Devstation2013 ) के लिए स्पर्शरेखा स्थान और सामान्य मानचित्रण को अक्षम करता है । यह आमतौर पर प्रति LOD प्रति shader सुविधाओं के एक सेट को विश्व स्तर पर अक्षम करके लागू किया जाता है, लेकिन shader रेखांकन वाले इंजन के लिए, जहां कलाकार कस्टम शेड बना सकते हैं, इसे मैन्युअल रूप से करने की आवश्यकता है।

LOD संक्रमणों के लिए कुछ गेम बस मेष को स्विच करते हैं और कुछ का उपयोग चिकनी LOD संक्रमणों के लिए किया जाता है - LOD स्विच में दो मेषों का प्रतिपादन किया जाता है: पहला धीरे-धीरे बाहर निकलता है और दूसरा फीका ( साइमन स्क्रीबेट ब्लॉग - "हत्यारे पंथ 3 - LoD सम्मिश्रण" )। क्लासिक सीपीयू प्रगतिशील जाल तकनीकों का उपयोग नहीं किया जाता है क्योंकि उन्हें एक महंगा जाल अद्यतन और जीपीयू को अपलोड करने की आवश्यकता होती है। हार्डवेयर टेसेलेशन का उपयोग कुछ शीर्षकों में किया जाता है, लेकिन केवल सबसे विस्तृत एलओडी के शोधन के लिए, क्योंकि यह धीमा है और सामान्य स्थिति में यह पूर्वनिर्धारित ज्यामिति एलओडी को प्रतिस्थापित नहीं कर सकता है।

टेरेन LODs को विशिष्ट गुणों का फायदा उठाने के लिए अलग से नियंत्रित किया जाता है। टेरेन ज्यामिति LOD आमतौर पर क्लिपमैप ( Marcin Gollent - "लैंडस्केप निर्माण और REDengine 3 में रेंडरिंग ) का उपयोग करके कार्यान्वित किया जाता है । " मैदानी सामग्री LODs को या तो जाली LODs के समान संभाला जाता है या किसी प्रकार की आभासी बनावट Ka Chen का उपयोग किया जाता है - "Adaptive Virtual Texture Renderering in Far Cry 4

अंत में यदि आप वास्तविक गेम LOD पाइपलाइनों को देखने के इच्छुक हैं, तो बस किसी भी आधुनिक गेम इंजन के प्रलेखन के माध्यम से ब्राउज़ करें: अवास्तविक इंजन 4 - "LODs बनाना और उपयोग करना" , CryEgnine - Static LOD और Unity - LOD


1
गेम इंजन में आमतौर पर पूर्व परिभाषित विधियों का एक सेट होता है और आप LOD एल्गोरिथ्म को वास्तव में बदलने के लिए कोर में नहीं पहुंच सकते। क्या मैं सही हू? मैं उस मामले के बारे में बात कर रहा था जब आप खुद को OpenGL या SpriteKit ढांचे के साथ एक खेल लिख रहे हैं, मुझे नहीं पता कि क्या एकता या अवास्तविक में LOD के एल्गोरिथ्म को अनुकूलित करने में सक्षम है, क्या यह संभव है?
इमान

3

LOD (विस्तार का स्तर) का अर्थ है अलग-अलग डिस्प्ले स्केल में ऑब्जेक्ट का प्रबंधन करना, जिसे दो भागों द्वारा विभाजित किया जा सकता है। हालाँकि, आप उनमें से एक का उपयोग कर सकते हैं और यह अधिकांश मामलों के लिए पर्याप्त होगा।

  1. परिमाण (प्रदर्शन पैमाने) के आधार पर परतों (एक ही प्रकार की वस्तुओं का समूह) को दिखाएँ / छिपाएँ।

  2. बीजगणितीय गोमरी आधारित विधि, जिसे सामान्यीकरण कहा जाता है (जो बहुभुज को सरल बनाने के लिए एक एल्गोरिथ्म है)। निम्नलिखित तस्वीर को देखो

    सामान्यकरण

बहुभुज को सामान्य बनाने (सरलीकृत) करने के लिए सबसे प्रसिद्ध और कुशल विधि डेसकार्टेस-यूलर पॉलीहेड्रॉन प्रमेय के रूप में जाना जाता है (समीकरण 4.5 क्षमा करें यदि मैं एक पुस्तक का उल्लेख कर रहा हूं, तो मैं सबसे अच्छा कर सकता हूं) और इसका उपयोग अधिकांश स्थानिक डेटाबेस के लिए किया जाता है उदाहरण के लिए PostgreSQL में PostGIS मॉड्यूल। यह बस एक बहुभुज के छोटे पक्षों को निकालता है और एक बहुत गोल बनाता है। (ऊपर चित्र)

एक गेम में LOD को लागू करने के लिए आपको अपने मैप (दृश्य) के पैमाने को सहेजने और प्रबंधित करने की आवश्यकता होती है, जो कि th ज़ूम इन / आउट ऑपरेशन के दौरान होती है। पैमाने शून्य से अनंत में बदल जाता है और आपको इसे कुछ विशेष श्रेणियों में विभाजित करना होगा उदाहरण के लिए कुछ इस तरह से:

  1. 1 / शून्य = 1/50 तक अनन्तता
  2. 1/50 से 1/100
  3. 1/100 से 1/1000
  4. 1/1000 से 1 / अनंत = 0

फिर आपको यह परिभाषित करने की आवश्यकता है कि उपरोक्त प्रत्येक श्रेणी में आपकी किस प्रकार की वस्तुएं (परतें) दृश्य या अदृश्य होनी चाहिए। उदाहरण के लिए एक छोटे प्रकार की वस्तु जैसे कि हाइड्रेंट वाल्व दिखाई नहीं देना चाहिए जब उपयोगकर्ता चौथी श्रेणी में होता है क्योंकि यह उस पैमाने पर बहुत छोटा होगा और इसमें भेदभाव नहीं किया जा सकता है, इसलिए इससे कोई फर्क नहीं पड़ता कि आप इसे ड्राइंग पर छोड़ते हैं या नहीं। स्क्रीन।

इसलिए जब कोई उपयोगकर्ता ज़ूम इन और ज़ूम इन का उपयोग करता है तो वह एक सीमा से दूसरी सीमा तक ऊपर की ओर बढ़ने वाले आवर्धन को बदल देता है, और आपका गेम दृश्य पर वस्तुओं को दिखा या छिपाकर विवरण के स्तर को प्रबंधित करने के लिए इन डिस्प्ले स्केल का उपयोग करता है। यह एक असतत समाधान करता है जो ऑब्जेक्ट आपके ज़ूम आउट ऑपरेशन के दौरान अचानक फीका हो जाता है, हालांकि डिस्प्ले स्केल और मैग्नीफिकेशन रेंज को ध्यान से परिभाषित किया गया है, उपयोगकर्ता कुछ भी महसूस नहीं करता है।

4 श्रेणियों का उपरोक्त समूह केवल एक उदाहरण है और आपको परीक्षण और त्रुटि द्वारा अपने स्वयं के मामले के लिए सबसे अच्छा खोजने की आवश्यकता है। उसके लिए कोई नियम नहीं है।

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

हालाँकि मान लीजिए कि आप ओपेन जीएल के साथ एक पूर्ण 3 डी गेम को लागू कर रहे हैं और आप उन्हें ग्राफिक हार्डवेयर में स्थानांतरित करने से पहले कुछ जाल को फ़िल्टर करना चाहते हैं, मुझे यकीन है कि यह बफर ऑब्जेक्ट्स और वर्टेक्स एरेज़ (वीबीओ, वीएओ) के साथ बाइंडिंग / अनबाइंडिंग ऑपरेशन को कम करने में मदद करेगा। OpenGl के साथ काम करना।

केवल एक परत प्रबंधन का उपयोग करना या केवल यूलर के सामान्यीकरण को लागू करना

ज्यादातर मामलों में यह सामान्यीकरण एल्गोरिथ्म को लागू करने के लिए आवश्यक नहीं है, और वस्तुओं को फ़िल्टर करना बस काम करता है और आपको दक्षता (रिफ्रेश रेट) तक पहुंचाता है, हालांकि यह पूरी तरह से निर्भर करता है, केस द्वारा केस। हालांकि यह एक आसान एल्गोरिथ्म है जो बस एक बहुभुज के छोटे पक्षों को हटा देता है, आपको एक सीमा को परिभाषित करने की आवश्यकता है जो परिमाण और एक स्थिर संख्या का उत्पाद है, इसलिए बड़े पक्ष बहुत दूर के दृष्टिकोण में फ़िल्टर हो जाते हैं।

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

पुनश्च: आवर्धन एक फ्लोट संख्या> 0 है जो 1 / स्केल के बराबर है और स्केल आमतौर पर <1 है 1 के बाद से: 1 स्केल का मतलब है कि आपके खेल में वास्तविक दुनिया की लंबाई है।


मतदाता, कृपया आप फिर से वोट देने पर विचार करें, अगर यह अभी भी -1 है, तो मेरे लिए एक टिप्पणी छोड़ने पर विचार करें। धन्यवाद
इमान

मैं नीचे नहीं आया, लेकिन मेरे हिस्से में आश्चर्य है कि यहाँ कला का क्या अर्थ है? इसलिए मैं या तो वोट नहीं कर सकता।
पूजा

1
मैंने नीचे पढ़ा है क्योंकि यह पढ़ना कठिन था और IMHO यह खेलों में LODs के लिए प्रासंगिक नहीं है। पुनर्विचार करने के बाद मैंने अपने डॉनवॉट को रद्द करके रद्द करने का फैसला किया और बस अपना जवाब जोड़ दिया।
क्रिज़िस्तोफ नार्कोविज़ 18

कला की स्थिति को एक बहुत ही उत्कृष्ट काम माना जाता है, लेकिन विभिन्न तरीकों से विभिन्न मामलों में अलग-अलग परिणाम होते हैं, उदाहरण के लिए कॉल ऑफ ड्यूटी में लेयर मैनेजमेंट और मिपमैपिंग है, हालांकि प्रिय सता (डीएच 2014) लंबन के साथ पृष्ठभूमि का उपयोग करता है और एक माइपमैप जो सामान्य रूप से प्रदान किया गया है बनावट। सबवे सर्फर पूरी तरह से एक अलग कहानी है, और मैं उन सभी के लिए कला की स्थिति कहता हूं, भले ही सबवे सर्फर इमारतों या अन्य शहरी वस्तुओं को बहुत आकर्षित करता है या ज़ूम या पैनिंग करते समय कॉल ऑफ़ ड्यूटी थोड़ा सुस्त है। मुझे लगता है कि वे अपने मामले में सर्वश्रेष्ठ हैं।
इमान

3

इमान ने पहले से ही एक पूर्ण उत्तर तैयार कर लिया था, लेकिन मैं इसमें कुछ जोड़ना चाहता हूं

LOD को दो अलग-अलग तरीकों से किया जा सकता है

  1. निरंतर जिसे CLOD कहा जाता है और बहुभुज जाल अनुकूलन है
  2. इस समूह में माने जाने वाले बहुभुज जाल अनुकूलन की तुलना में लगभग हर दूसरे एल्गोरिथ्म को अलग करें।

उदाहरण के लिए mipmaping एक अच्छा, तेज़ लेकिन भारी है जो ऊपर के एकांत समूह का है

यहां आपको OpenGl के साथ कोडिंग और कार्यान्वयन कोड के लिए एक अच्छी व्याख्या मिल सकती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.