रोशनी, गेम के सबसे ज़रूरी पहलुओं में से एक है. इससे गेम का माहौल सेट किया जा सकता है, खिलाड़ी को दिशा-निर्देश दिए जा सकते हैं, खतरों या लक्ष्यों की पहचान की जा सकती है वगैरह. रोशनी से, गेम के विज़ुअल बेहतर या खराब हो सकते हैं. उदाहरण के लिए, अच्छी लाइटिंग की वजह से गेम में खराब मॉडल भी बेहतर दिख सकता है. वहीं, खराब लाइटिंग की वजह से अच्छा मॉडल भी खराब दिख सकता है.
इस गाइड में, मोबाइल गेम में बेहतर लाइटिंग परफ़ॉर्मेंस के बारे में जानकारी दी गई है. लाइटिंग का इस्तेमाल करने के तरीके से, आपके मोबाइल गेम की परफ़ॉर्मेंस पर असर पड़ता है. रोशनी का सही तरीके से इस्तेमाल करना ज़रूरी है, ताकि यह पक्का किया जा सके कि आपका गेम ज़्यादा से ज़्यादा आसानी से काम करे.
इस लेख के कुछ हिस्से, Arm Limited के योगदान और कॉपीराइट पर आधारित हैं.
रेंडर पाइपलाइन के विकल्प
Unity के लेगसी रेंडर पाइपलाइन में, ये रेंडर पाथ शामिल होते हैं:
- फ़ॉरवर्ड रेंडरिंग
- डिफ़र्ड शेडिंग
फ़ॉरवर्ड रेंडरिंग
फ़ॉरवर्ड रेंडरिंग में, रीयल-टाइम लाइटें बहुत महंगी होती हैं. अगर हर पिक्सल में मौजूद लाइट की संख्या कम कर दी जाती है, तो इस लागत को कम किया जा सकता है.
डिफ़र्ड शेडिंग
डिफ़र्ड शेडिंग के लिए, जीपीयू का इस्तेमाल करना ज़रूरी है. डिफ़र्ड शेडिंग की सुविधा वाले हार्डवेयर पर, रीयल-टाइम में काम करने वाली कई लाइटें रेंडर की जा सकती हैं. साथ ही, रोशनी की फ़िडेलिटी को बेहतर बनाया जा सकता है. माफ़ करें, डिफ़र्ड शेडिंग की सुविधा मोबाइल जीपीयू पर ठीक से काम नहीं करती, क्योंकि इनकी बैंडविथ कम होती है.
मोबाइल गेम बनाते समय, यह ज़रूरी है कि आपका गेम ज़्यादा से ज़्यादा डिवाइसों पर आसानी से चले.
यूनिवर्सल रेंडर पाइपलाइन
Unity ने यूनिवर्सल रेंडर पाइपलाइन (यूआरपी) को डेवलप किया है. हमारा सुझाव है कि आप अपने मोबाइल गेम के लिए, यूआरपी का इस्तेमाल करें.
लाइट मोड
किसी सीन में रोशनी के इस्तेमाल या उसके हिलने-डुलने के आधार पर, अलग-अलग लाइट मोड का इस्तेमाल किया जाता है. लाइट मोड के टाइप की परफ़ॉर्मेंस की विशेषताएं अलग-अलग होती हैं. लाइटें लागू करते समय, इन बातों का ध्यान रखें:
- स्टैटिक लाइटिंग के लिए, बेक्ड का इस्तेमाल करें. यह उन ऑब्जेक्ट के लिए सबसे सही है जिनकी रोशनी, रनटाइम के दौरान नहीं बदलती है. बेकिंग लाइट, टेक्सचर मैप में लाइटिंग डेटा को पहले से कंप्यूट करने और सेव करने की प्रोसेस है. इसे लाइटमैप कहा जाता है.
- बेक्ड लाइटिंग में रनटाइम पर बदलाव नहीं किया जा सकता. लाइटमैप में रोशनी और परछाइयां स्टैटिक होती हैं. Unity में सभी लाइटिंग को पहले से प्रोसेस किया गया था. इसलिए, परफ़ॉर्मेंस पर असर डालने वाली कोई भी रनटाइम लाइटिंग कैलकुलेशन नहीं है.
- बेक्ड लाइट का इस्तेमाल करके, डाइनैमिक शैडो नहीं बनाई जा सकतीं. यह डाइनैमिक या मूव करने वाले ऑब्जेक्ट के साथ अजीब लग सकता है.
- अगर आपको चलती हुई चीज़ों के साथ इंटरैक्ट करने के लिए, स्थिर लाइट का इस्तेमाल करना है, तो मिक्स का इस्तेमाल करें.
उदाहरण के लिए, एक ऐसी टॉर्च जो किसी प्लेयर पर रोशनी डालती है और प्लेयर के हिलने पर उसकी परछाई बनाती है.
- मिक्स लाइटिंग से, डायरेक्ट लाइट और शैडो में बदलाव होता है.
- स्टैटिक ऑब्जेक्ट के लिए, लाइटमैप कैलकुलेशन में मिक्स लाइटिंग शामिल की जा सकती है.
- रनटाइम के दौरान, इंटेंसिटी में बदलाव किया जा सकता है. सिर्फ़ डायरेक्ट लाइट अपडेट की जाती है.
- महंगा है.
- डाइनैमिक या हिलने वाली लाइट के लिए, रीयल टाइम का इस्तेमाल करें. जैसे, ज़मीन से उठने वाली और फटने वाली फ़ायरबॉल से निकलने वाली रोशनी.
- डाइनैमिक लाइट और शैडो की प्रॉपर्टी में रनटाइम के दौरान बदलाव किया जा सकता है.
- रीयल-टाइम लाइट, लाइटमैप में बेक नहीं की जाती हैं.
- बहुत महंगा है.
ज़्यादा जानकारी के लिए, Unity का लाइटिंग पाइपलाइन पढ़ें.
जब हो सके, तो स्टैटिक लाइट का इस्तेमाल करें और डाइनैमिक लाइट से बचें
डाइनैमिक या रीयल-टाइम लाइटिंग का हिसाब लगाया जाता है और इसे हर फ़्रेम में अपडेट किया जाता है. यह हिलने-डुलने वाले ऑब्जेक्ट, इंटरैक्टिविटी, और भावनाएं दिखाने के लिए बहुत अच्छा है.
इसके उलट, स्टैटिक लाइट की जानकारी लाइटमैप में शामिल होती है. लाइटमैप टेक्सचर का इस्तेमाल करने से, किसी ऑब्जेक्ट के लिए हर वर्टेक्स या हर पिक्सल की लाइटिंग की जटिल गणनाओं से बचा जा सकता है. लाइटमैप टेक्सचर को रेंडर करने की लागत, डाइनैमिक लाइटिंग की तुलना में हमेशा कम होती है. हमारा सुझाव है कि मोबाइल गेम में बेक्ड लाइटिंग का इस्तेमाल करना आपकी पहली पसंद होनी चाहिए.
लाइटमैप बेकिंग
लाइट के इफ़ेक्ट की पहले से की गई कैलकुलेशन को लाइटमैप बेकिंग कहा जाता है. लाइट के इफ़ेक्ट को एक अलग टेक्सचर में सेव किया जाता है. इसे लाइटमैप कहते हैं. लाइटमैप का इस्तेमाल, ऑब्जेक्ट की विज़ुअल क्वालिटी को बेहतर बनाने के लिए किया जा सकता है. लाइटमैप बेकिंग को आपके सीन के हर वर्शन के लिए सिर्फ़ एक बार करना होता है. अगर आपने अपने सीन की ज्यामिति बदली है या बेक की गई लाइट के पैरामीटर बदले हैं, तो आपको लाइटमैप को फिर से बेक करना होगा. लाइटमैप टेक्सचर के ओवरहेड को छोड़कर, रनटाइम में परफ़ॉर्मेंस से जुड़ी कोई अतिरिक्त लागत नहीं लगती. मोबाइल प्लैटफ़ॉर्म पर लाइटिंग के लिए, यह सबसे अच्छा शुरुआती तरीका है.
बेक्ड लाइट पर, आपके सीन के किसी भी डाइनैमिक या मूविंग पहलू का असर नहीं पड़ता. बेक्ड लाइटिंग में, सभी स्टैटिक एलिमेंट के लिए बेक्ड ग्लोबल इल्यूमिनेशन शामिल होता है. इसका मतलब है कि लाइटमैप कैलकुलेशन में, ऐसी इनडायरेक्ट लाइट शामिल होती है जो अन्य स्टैटिक ऑब्जेक्ट से टकराकर आई है. साथ ही, इसमें बेक्ड लाइट भी शामिल होती है जो ऑब्जेक्ट पर सीधे पड़ती है.
पहली इमेज. आर्मीज़ के टेक डेमो में इस्तेमाल किया गया ऑल-बेक्ड लाइटिंग सेटअप.
लाइट बेक करने के लिए, यह तीन चरणों वाला तरीका अपनाएं.
पहला चरण: लाइट को मिक्स्ड या बेक्ड पर सेट करें
लाइट के मोड को मिक्स या बेक्ड पर सेट करें. मोबाइल टाइटल के लिए, मिक्स की तुलना में बेक्ड लाइट का इस्तेमाल करना बेहतर होता है. बेक्ड, लाइट को रेंडर करने का सबसे सस्ता तरीका है.
दूसरी इमेज. Unity में लाइट की मोड सेटिंग.
दूसरा चरण. ऑब्जेक्ट को स्टैटिक बनाना
बेक्ड लाइट से प्रभावित होने वाले सभी ऑब्जेक्ट को Static पर सेट करें. स्थिर के तौर पर मार्क किए गए ऑब्जेक्ट के लिए, कई ऑप्टिमाइज़ेशन उपलब्ध हैं. हालांकि, आम तौर पर स्थिर ड्रॉप-डाउन सूची में सब कुछ को चुनना सबसे अच्छा होता है. ऑब्जेक्ट को Static के तौर पर मार्क करने पर, Unity को पता चल जाता है कि उसे लाइट बेकिंग में शामिल करना है.
तीसरी इमेज. स्टैटिक मेन्यू का उदाहरण.
चरण 3. लाइटें बेक करना
Window > Rendering > Lighting Settings में जाकर, Lighting मेन्यू में मौजूद विकल्पों का इस्तेमाल करके, लाइटें बेक की जा सकती हैं.
लाइट बेक करने पर, सेव किया गया डेटा उस सीन पर आधारित होता है जो बेकिंग शुरू करते समय चालू था. बेक्ड सीन के नाम से एक फ़ोल्डर जनरेट होता है. इस फ़ोल्डर में, लाइटिंग डेटा के सभी कॉम्पोनेंट सेव होते हैं. अगर आपके प्रोजेक्ट में एक साथ कई सीन लोड होते हैं, तो आपको हर सीन के लिए लाइट बेक करनी होगी. सीन में बदलाव करने पर, आपको लाइटें फिर से बेक करनी होंगी.
चौथी इमेज. बेक्ड लाइटमैप का उदाहरण.
लाइटमैप ऑप्टिमाइज़ करना
लाइट को बेक करने के लिए सेट अप करने के बाद, पक्का करें कि बेक्ड मैप ऑप्टिमाइज़ किए गए हों. लाइटमैप के साइज़ में अंतर होता है. यह अंतर, बेक किए जाने के दौरान उनकी सेटिंग के आधार पर होता है. आपको मोबाइल पर मेमोरी के इस्तेमाल को कम रखना होगा. इसलिए, लाइटमैप के साइज़ पर नज़र रखना ज़रूरी है.
Armies डेमो के इस उदाहरण में, 1024x1024 पिक्सल वाली सात लाइटमैप इमेज हैं. मैप की झलक में, लाइटमैप पर बिछाई गई मेश दिखती हैं. चुनी गई मेश हाइलाइट की जाती हैं.
पांचवीं इमेज. यह लाइटमैप का उदाहरण है. नीले रंग वाले सेक्शन, चुनी गई मेश हैं.
लाइटमैपिंग सेटिंग में कई सेटिंग होती हैं. साथ ही, मैप के साइज़ से यह तय होता है कि हर मैप कितनी मेमोरी और स्टोरेज स्पेस का इस्तेमाल करता है. यहां दिए गए सेक्शन में, कुछ ज़रूरी सेटिंग के बारे में बताया गया है.
Lightmappers
Unity, आपके सीन में लाइट बेक करने के लिए ये तीन तरीके उपलब्ध कराता है:
- Enlighten: यह सिर्फ़ 2020 के लंबे समय तक सहायता (एलटीएस) देने वाले वर्शन के साथ काम करता है. नए प्रोजेक्ट के लिए इसका इस्तेमाल न करें.
- प्रोग्रेसिव सीपीयू: इससे काफ़ी समय बचता है, क्योंकि यह लाइट मैप को धीरे-धीरे बनाता है. अगर व्यू को प्राथमिकता दें विकल्प चुना जाता है, तो सीन व्यू में मौजूद एरिया को प्राथमिकता दी जाती है. इससे सीन की लाइट सेट अप करने में लगने वाला समय कम हो सकता है.
- प्रोग्रेसिव जीपीयू: यह प्रोग्रेसिव सीपीयू की तरह ही काम करता है. हालांकि, यह सीपीयू के बजाय जीपीयू पर लाइटमैप जनरेट करता है. सपोर्ट किए गए हार्डवेयर पर, इस तरीके से सीपीयू का इस्तेमाल करने की तुलना में, बेकिंग का समय काफ़ी कम हो सकता है. प्रोग्रेसिव जीपीयू को सेट अप करने के लिए, कुछ और ज़रूरी शर्तें हैं. The Progressive GPU Lightmapper पेज पर जाकर, ज़रूरी शर्तों के बारे में ज़्यादा जानें.
छठी इमेज. Lightmapper Settings की मदद से, अपने सीन के लिए बेकिंग का तरीका बदला जा सकता है.
टेक्सेल
टेक्सल या टेक्सचर पिक्सल, टेक्सचर मैप में मौजूद एक पिक्सल होता है. टेक्सल, किसी ऑब्जेक्ट पर पड़ने वाली रोशनी के हर पॉइंट के लिए, लाइटमैप में रोशनी की जानकारी सेव करते हैं. स्पेस की हर यूनिट के लिए इस्तेमाल किए गए टेक्सल की संख्या से, आपकी लाइटिंग की क्वालिटी पर असर पड़ता है. साथ ही, इससे बेकिंग में लगने वाला समय, डिस्क स्टोरेज की लागत, और आपके लाइटमैप की वीआरएएम लागत पर भी असर पड़ता है.
लाइटमैप के लिए ज़रूरी डेटा को कम करने के लिए, लाइटमैपिंग सेटिंग में बेक किए गए हर यूनिट के लिए टेक्सल की संख्या को अडजस्ट करें.
सातवीं इमेज. लाइटमैप के लिए उपलब्ध सेटिंग.
लाइटमैपिंग की सेटिंग में, लाइटमैप रिज़ॉल्यूशन पैरामीटर यह कंट्रोल करता है कि लाइटमैप में हर यूनिट के लिए कितने टेक्सल इस्तेमाल किए जाते हैं. यहां अलग-अलग लाइटमैप रिज़ॉल्यूशन सेटिंग वाले क्यूब का उदाहरण दिया गया है. यहां देखा जा सकता है कि ज़्यादा रिज़ॉल्यूशन से, काम की ज़रूरत कितनी तेज़ी से बढ़ती है.
आठवीं इमेज. पहले क्यूब का लाइटमैप रिज़ॉल्यूशन 1
है. दूसरे क्यूब का लाइटमैप रिज़ॉल्यूशन 2
है. तीसरे क्यूब का लाइटमैप रिज़ॉल्यूशन 5
है.
अपने सीन में टेक्सल का लेआउट देखने के लिए, सीन व्यू पर मौजूद ड्रॉ मोड ड्रॉपडाउन सूची चुनें. इसके बाद, बेक्ड लाइटमैप चुनें.
बेक किए गए ऑब्जेक्ट, चेकरबोर्ड ओवरले से ढके होते हैं. चेकरबोर्ड पैटर्न से पता चलता है कि लाइट बेक करते समय, आपके टेक्सल कैसे डिस्ट्रिब्यूट किए जाते हैं.
यहां दिए गए उदाहरण में, Armies डेमो में लाइटमैप रिज़ॉल्यूशन को 15
से घटाकर 12
करने पर, ज़रूरी लाइटमैप की संख्या सात से घटकर चार हो जाती है.
नौवीं इमेज. 12
के लाइटमैप रिज़ॉल्यूशन के साथ Armies का डेमो.
टेक्सल का इस्तेमाल
हालांकि, पूरे सीन में हर यूनिट के लिए टेक्सल की संख्या सेट की जा सकती है, लेकिन अक्सर कुछ ऐसे ऑब्जेक्ट होते हैं जिनके लिए इतने टेक्सल की ज़रूरत नहीं होती.
Unity की मदद से, यह कंट्रोल किया जा सकता है कि हर ऑब्जेक्ट कितने टेक्सल का इस्तेमाल करे. किसी ऑब्जेक्ट के लिए, Inspector > Mesh Renderer में मौजूद Scale In Lightmap पैरामीटर की वैल्यू से यह तय होता है कि ऑब्जेक्ट, लाइटमैप में कितने टेक्सल का इस्तेमाल करता है.
यहां दिए गए उदाहरण में, बाईं ओर मौजूद क्यूब में हर बेकिंग यूनिट के लिए, रोशनी की जानकारी देने वाले पांच टेक्सल हैं. दाईं ओर मौजूद बॉक्स में, Scale In Lightmap को 0.5 पर सेट किया गया है. इस सेटिंग से, लाइट के टेक्सल को 2.5 पर स्केल किया जाता है. इसके लिए, बाईं ओर मौजूद बॉक्स की तुलना में लाइटमैप में कम जगह की ज़रूरत होती है.
दसवीं इमेज. अलग-अलग लाइटमैप रिज़ॉल्यूशन वाले दो क्यूब.
ग्यारहवीं इमेज. Scale In Lightmap सेटिंग को बदला जा सकता है, ताकि किसी ऑब्जेक्ट में कम टेक्सल हों.
इन पर टेक्सल खर्च करने से बचें:
- ऐसी जगहें और ऑब्जेक्ट जो प्लेयर को नहीं दिखेंगे. इससे, स्क्रीन पर मौजूद नहीं होने वाली जानकारी के लिए, लाइटमैप पर मेमोरी का इस्तेमाल होने से रोका जा सकता है.
- ऐसी सतहें जिन पर रोशनी में ज़्यादा बदलाव नहीं होता. उदाहरण के लिए, किसी छाया में मौजूद ऑब्जेक्ट या किसी एक लाइट सोर्स से रोशन किए गए ऑब्जेक्ट.
- छोटे या पतले ऑब्जेक्ट. इनसे मिलने वाली रोशनी, सीन के फ़ाइनल रेंडर में ज़्यादा नहीं जुड़ती.
ज़्यादा से ज़्यादा नकली रोशनी का इस्तेमाल करना
प्रोसेसिंग की ज़रूरी शर्तों को कम करने के लिए, कुछ एलिमेंट को नकली बनाया जा सकता है. इससे आपका कॉन्टेंट, कम रोशनी का इस्तेमाल करता हुआ दिख सकता है. हालांकि, असल में यह ज़्यादा बेहतर तरीकों का इस्तेमाल करता है.
नकली शैडो
रीयल-टाइम शैडो का इस्तेमाल करने पर, परफ़ॉर्मेंस पर बुरा असर पड़ता है. इन्हें शैडो मैपिंग नाम की तकनीक से जनरेट किया जाता है. किसी सीन की ज्यामिति को शैडो मैप में रेंडर करने की लागत, शैडो की सुविधा चालू करके बनाए गए वर्टेक्स की संख्या के हिसाब से तय होती है. हमारा सुझाव है कि आप ऐसी ज्योमेट्री की संख्या कम रखें जो शैडो बनाती हैं. साथ ही, रीयल-टाइम में शैडो बनाने वाली लाइट की संख्या भी कम रखें.
डाइनैमिक लाइट के बिना, डाइनैमिक ऑब्जेक्ट पर शैडो के लिए फ़ेक शैडो लागू की जा सकती हैं. इससे रेंडरिंग की लागत कम रहती है और यह डाइनैमिक शैडो जैसा ही इफ़ेक्ट दे सकता है. फ़ेक शैडो को लागू करने के कुछ तरीके यहां दिए गए हैं:
- किरदार के नीचे, प्लेन या क्वाड जैसे 3D मेश का इस्तेमाल करें. साथ ही, उस पर धुंधली बनावट लागू करें.
- ज़्यादा बेहतर ब्लब शैडो के लिए, आपके पास अपना कस्टम शेडर लिखने का विकल्प होता है.
यहां दिए गए उदाहरण में, शैडो के लिए 3D मेश का इस्तेमाल करने पर मिलने वाला नतीजा दिखाया गया है:
बारहवीं इमेज. Armies के टेक डेमो में शैडो को लागू करने का तरीका.
टेक्सचर पर सीधे तौर पर हल्की जानकारी पेंट करना
अगर कुछ शेड को टेक्सचर में पेंट किया जाता है, तो अतिरिक्त लाइट के लिए ज़रूरी कंप्यूटेशन कम हो जाता है. इससे सीन की लाइट बेक करते समय मेमोरी सेव होती है, क्योंकि इसमें कम लाइटमैप डेटा की ज़रूरत होती है.
लाइट प्रोब
बेक्ड लाइटिंग के साथ डाइनैमिक ऑब्जेक्ट का इस्तेमाल करने पर, उन पर लाइटमैप का असर नहीं पड़ेगा. इससे उन्हें लग सकता है कि वे सीन का हिस्सा नहीं हैं.
लाइट प्रॉब की मदद से, इस समस्या को हल किया जा सकता है. लाइट प्रोब के फ़ायदे, लाइटमैप के फ़ायदों से मिलते-जुलते होते हैं. ये ऐसे डेटा को सेव करते हैं जिसका आकलन पहले से किया जा सकता है. साथ ही, इसे रनटाइम में इस्तेमाल करने के लिए सेव किया जा सकता है. इससे, कंप्यूटेशन की ज़्यादातर लागत, बदलाव करने के समय पर चली जाती है.
लाइटमैप, किसी टेक्सल में सतहों के लिए मिली रोशनी को कोड करता है. वहीं, लाइट प्रॉब, खाली जगह से गुज़रने वाली रोशनी को सेव करता है. इस डेटा का इस्तेमाल, हिलने-डुलने वाली चीज़ों को रोशनी देने के लिए किया जा सकता है. लाइट प्रॉब की मदद से, डाइनैमिक ऑब्जेक्ट को पूरे सीन में लाइटमैप किए गए ऑब्जेक्ट के साथ विज़ुअली इंटिग्रेट किया जा सकता है.
लाइट प्रोब का इस्तेमाल, सीन में घूमने वाले ऑब्जेक्ट को रोशनी देने के लिए सबसे सही होता है. ये जांचें, बेक्ड की गई लाइटों का फ़ायदा उठाती हैं. इससे, आपकी चलती-फिरती चीज़ों पर सीन की तरह ही रोशनी पड़ती है. लाइट प्रॉब की मदद से डाइनैमिक ऑब्जेक्ट को रोशन करना, रीयल-टाइम लाइट की तुलना में कम खर्चीला होता है.
लाइट प्रोब के साथ स्टैटिक लाइटिंग और लाइट प्रोब पेजों के बारे में ज़्यादा जानें.
तेरहवीं इमेज. Armies tech demo में, डाइनैमिक क्राउड को दिखाने के लिए लाइट प्रॉब लगाए गए हैं.
मेश रेंडरर की सेटिंग
आपकी सीन में किस तरह की लाइट का इस्तेमाल किया जा रहा है, इससे कोई फ़र्क़ नहीं पड़ता. यह ज़रूरी है कि आपकी मेश रेंडरर सेटिंग सही हों.
उन सभी सुविधाओं को बंद करें जिनका इस्तेमाल नहीं किया जा रहा है. Cast Shadows जैसी सेटिंग, सीन को रेंडर करने पर लागत बढ़ाती हैं. भले ही, ऑब्जेक्ट में रोशनी न हो. नीचे दिए गए उदाहरण में, Mesh Renderer की सेटिंग दिखाई गई हैं. यह सेटिंग, इमेज 13 में दिखाए गए कैरेक्टर के लिए है. इस कैरेक्टर में लाइट प्रॉब डेटा का इस्तेमाल किया गया है, लेकिन रिफ़्लेक्शन प्रॉब का नहीं.
लाइट प्रॉब की ब्लेंड प्रॉब सेटिंग, कैरेक्टर के सबसे नज़दीक मौजूद लाइट प्रॉब से रोशनी की जानकारी को ब्लेंड करती है. सीन में किरदार के घूमने पर, उस पर असर डालने वाली लाइट प्रोब बदल जाएंगी. कास्ट शैडो बंद है, क्योंकि रेंडर, BLOB तरीके का इस्तेमाल करता है. Receive Shadows भी बंद है, क्योंकि सीन बेक्ड है और इसमें रीयल-टाइम शैडो नहीं हैं.
चौदहवीं इमेज. फ़िगर 13 के रेंडर के लिए, Mesh Renderer सेटिंग.
रीयल-टाइम लाइट और लाइट के टाइप
हमारा सुझाव है कि आप बेक्ड लाइटिंग, लाइट प्रॉब, और पेंट की गई लाइटिंग टेक्सचर या शेडर मटीरियल इफ़ेक्ट जैसी फ़ेक-लाइटिंग तकनीकों का इस्तेमाल करें. हालांकि, अगर आपको रीयल-टाइम लाइट की ज़रूरत है, तो आपको इस्तेमाल की जाने वाली लाइट के टाइप पर विचार करना होगा.
हर तरह की लाइट की रोशनी का हिसाब लगाने के लिए, अलग-अलग कीमत चुकानी पड़ती है. यहां दी गई सूची में, हर लाइट टाइप के बारे में जानकारी दी गई है:
- डायरेक्शनल: इस लाइट की दिशा एक जैसी होती है और इसकी रोशनी कम नहीं होती. डायरेक्शनल लाइट, रीयल-टाइम में सबसे कम कीमत वाली लाइट होती है. आम तौर पर, हर सीन के लिए सिर्फ़ एक डायरेक्टनल लाइट की ज़रूरत होती है. फ़ॉरवर्ड रेंडरिंग की सुविधा चालू होने पर, Unity मोबाइल के लिए सुझाए गए रेंडरिंग पाथ में डिफ़ॉल्ट डायरेक्टनल लाइट शामिल करेगा. ऐसा तब होगा, जब सीन में कोई डायरेक्टनल लाइट मौजूद न हो.
- स्पॉट: स्पॉट लाइट, अपने कोन के बाहर मौजूद ऑब्जेक्ट को हटा देती हैं और उन्हें रोशनी नहीं देती हैं. इस वजह से, स्फ़ेरिकल पॉइंट लाइट की तुलना में स्पॉट लाइट में कंप्यूटेशनल पावर कम लगती है. बेहतर परफ़ॉर्मेंस के लिए, कोन की चौड़ाई कम रखें और सिर्फ़ टारगेट किए गए ऑब्जेक्ट को हिट करें.
- पॉइंट: ये सभी दिशाओं में रोशनी डालते हैं. हर दिशा में रोशनी देने वाली लाइटें काम की होती हैं, लेकिन इनकी कीमत बहुत ज़्यादा होती है. पॉइंट लाइट, ज़्यादातर इलाकों में महंगी होती हैं. इसके अलावा, शैडो कैलकुलेशन, लाइटिंग का सबसे महंगा हिस्सा हो सकता है. अगर रोशनी को सभी दिशाओं में डाला जाता है, तो ज़्यादा परछाइयां दिखती हैं और ज़्यादा कैलकुलेशन करनी पड़ती हैं.