2010-10-03 14 views
14

मैंने हाल ही में कुछ लैंडस्केप कोड बनाए हैं और दृश्य में कुछ प्रसारित प्रकाश जोड़ा है, हालांकि, मेरी निराशा के लिए, कोई छाया नहीं है। मैंने ओपनजीएल में छाया प्राप्त करने के तरीकों की तलाश में घंटों तक वेब के चारों ओर देखा, हालांकि वे सभी बहुत जटिल लग रहे थे; और अपने स्वयं के डेमो कार्यक्रमों के लिए बहुत ही अद्वितीय है।क्या ओपनजीएल में छाया प्राप्त करने का कोई आसान तरीका है?

क्या छाया बनाने के लिए कोई आसान तरीका है?

+3

वास्तव में नहीं। पाइपलाइन में छाया नहीं बनाई गई हैं। आपको उन्हें स्वयं उत्पन्न करना होगा (ऐसा करने के कई तरीके हैं, प्रत्येक के अपने पेशेवर और विपक्ष के साथ) और उन्हें स्वयं प्रस्तुत करें। – GManNickG

+0

ओपनजीएल छाया नहीं बनाता है, यह प्रत्येक बिंदु को प्रस्तुत करता है जैसे कि बिंदु और रोशनी –

+1

के बीच कोई बाधा नहीं है जब तक आप ग्राफिक्स प्रोग्रामिंग के अंदरूनी भाग सीखना नहीं चाहते हैं, तो आप एक ग्राफिक्स इंजन (जैसे हॉर्डे 3 डी) या गेम इंजन का उपयोग करना चाहेंगे (ओग्रे या इरलिच) शुद्ध ओपनजीएल के बजाय। यह आपको पहिया को फिर से आविष्कार करने से बचाएगा (ठीक है, शायद कई पहियों, शायद) और आप सीधे जो कुछ हासिल करना चाहते हैं उसमें कूदने दें। ओपनजीएल एक निम्न स्तरीय एपीआई है। – Kos

उत्तर

26

नहीं रास्टरराइजेशन इस पर बहुत बुरा है (यहां तक ​​कि हालिया एएए खेलों में ध्यान देने योग्य छाया कलाकृतियों हैं), लेकिन हर कोई इसके साथ रहता है।

समाधान (लगभग सबसे आसान से/सबसे गरीब के लिए सबसे अच्छा/सबसे मुश्किल।) में शामिल हैं:

  • नहीं छाया। गहरे रंगों के साथ प्रक्षेपण के लिए बस खाते हैं। xNormal, Blender
  • यदि आप किसी चरित्र के लिए अनुमानित छाया चाहते हैं, तो पारदर्शी और धुंधली बनावट के साथ जमीन पर एक साधारण फ्लैट बहुभुज होगा। उदाहरण के लिए ज़ेल्डा स्क्रीनशॉट देखें। यहां तक ​​कि कुछ हालिया गेम अभी भी इसका इस्तेमाल करते हैं।
  • लाइटमैप्स। केवल स्थिर ज्यामिति, लेकिन सही प्रकाश (precomputed)। लागू करने के लिए उचित रूप से सरल। बहुत से उपकरण मौजूद हैं।
  • छाया वॉल्यूम, कारमैक द्वारा लोकप्रिय। Pixel सही, उचित रूप से लागू करने के लिए सरल, काफी धीमी है। कुछ वस्तुओं के लिए अच्छा है। कोई मुलायम छाया नहीं।
  • छाया मानचित्र। अगर आपने कभी भी ओपनजीएल नहीं बनाया है तो इसे लागू करने के लिए थोड़ा मुश्किल है। सही पाने के लिए मुश्किल है। पिक्सलेटेड छायाएं। बहुत सारे बहुभुज के साथ सौदा करता है। बड़ी दुनिया से निपटना नहीं है।
  • शैडो मानचित्र प्रकारों के मैरीड्स। इन हाल के वर्षों में बहुत सारे शोध। वर्तमान सर्वोत्तम कैस्केड छाया मानचित्र है: मुश्किल, अभी भी अच्छा दिखने में मुश्किल है, लेकिन तेज़, बहुभुजों और विशाल दुनिया के भार से संबंधित है।
  • रेट्रेस्ड छाया: यह अगली-जेन हो सकती है। कुछ शोध पत्रों को छोड़कर कोई वास्तव में इसका उपयोग नहीं करता है। बहुत जटिल, गतिशील दुनिया (अभी तक) के साथ अच्छा नहीं करता है, विशाल स्थैतिक दृश्य ठीक है। आपके पास कितना अतिरिक्त GPU है, इस पर निर्भर करता है कि पिक्सेल सही या मुलायम छायाएं। Several variants; 2014 तक यह अभी भी किसी भी गेम for performance reasons में नहीं बनाया गया था।

तो सामान्य चाल गतिशील-लेकिन-न-अच्छे दृष्टिकोण के साथ सुंदर-लेकिन-स्थिर-केवल दृष्टिकोणों को मिश्रण करना है। उदाहरण के लिए, lightmapping और shadowmapping पर मेरे ट्यूटोरियल देखें।

+0

यदि आप एक स्थिर सूरज के साथ पहाड़ों की छाया प्राप्त करने की कोशिश कर रहे हैं, तो लाइटमैप जाने का रास्ता है। ब्लेंडर में खुले किसी भी 3 डी प्रारूप में अपना नक्शा निर्यात करें, किसी भी ट्यूटोरियल का पालन करें: आपको अपना लाइटमैप मिला है। एक शेडर के साथ बनावट के साथ मिलाएं (या यदि आप आलसी हैं तो फ़ोटोशॉप में सीधे), आप कर चुके हैं। – Calvin1602

+0

क्षमा करें, मेरे पैडेंट ने मुझे टिप्पणी की है: 1 9 77 में फ्रैंक क्रो द्वारा पहली बार छाया वॉल्यूम्स का प्रस्ताव दिया गया था। वे एक तकनीक हैं, जैसे बसपा पेड़ या तेज़ स्क्वायर रूट जो आप देखते हैं, कि कारमैक ने गेम के लिए लोकप्रिय किया है लेकिन निश्चित रूप से आविष्कार नहीं किया है। – Tommy

+0

टिप्पणी के लिए धन्यवाद, मुझे नहीं पता था। संदेश तदनुसार अद्यतन किया गया। – Calvin1602

5

सं

सबसे आसान तरीका मैं का एक pregenerated छाया बनावट कि इलाके multitexturing का उपयोग कर पर रखी गई है का इस्तेमाल किया जाता पता है। जटिल भाग इस बनावट को उत्पन्न कर रहा है, लेकिन यदि आप दिशात्मक प्रकाश का उपयोग नहीं करते हैं, तो एक साधारण "बड़ा धुंधला बिंदु" आमतौर पर कुछ भी नहीं होता है।

+0

ओह, एक इंजन का उपयोग करने के लिए पहले से ही एक आसान तरीका है, लेकिन मुझे लगता है कि आप किसी और के इंजन के लिए मॉडल बनाने में रुचि नहीं रखते हैं (पर्याप्त मेला, न तो मैं हूं)। – Zooba

+0

नहीं, मैं किसी एल्स इंजन के लिए मॉडल बनाना नहीं चाहता हूं। ऊपर दिए गए उत्तर के लिए, मुझे यह कहां मिल सकता है कि यह कैसे करें? –

+0

मल्टीटेक्स्टिंग के लिए कोई बुनियादी परिचय इसे कवर करेगा। यह चाल बनावट को पारदर्शी किनारों के साथ सेट करने और इलाके में यूवी पैरामीटर का उपयोग करके स्थिति निर्धारित करने के लिए है। वैकल्पिक रूप से आप वैकल्पिक रूप से एक इलाके पर थोड़ा और अधिक शामिल छाया है, जो एक सपाट सतह पर आसान है के लिए एक अतिरिक्त सतह बना सकते हैं, लेकिन ... – Zooba

संबंधित मुद्दे

 संबंधित मुद्दे