मैं बहु-परत 2d तिलमप में रोशनी और छाया कैसे लागू कर सकता हूं?


11

मैं स्क्रैच से एक आइसोमेट्रिक गेम लिखने की प्रक्रिया में हूं, और मैं जानना चाहता हूं कि कैसे / अगर मैं रोशनी और छाया जोड़ सकता हूं।

मेरे पास अब तक का कोड यहां पाया जा सकता है , लेकिन यह जानने के लिए पर्याप्त होना चाहिए कि अभी , नक्शे सही / झूठे मूल्यों के सरल 3 डी सरणियां हैं । यहाँ पर्यावरण का एक शॉट है:मल्टी-लेयर टिलमैप का स्क्रीनशॉट

यदि यह एक परत तिलमाप होता तो यह सीधे आगे होता। मैं 2d में साधारण रीकास्टिंग को समझ सकता हूं जो आवश्यक है।

हालांकि, यह देखते हुए कि मेरे नक्शे में ऊंचाई के साथ-साथ गुफा जैसे क्षेत्रों के कई स्तर हैं, मैं वास्तव में नहीं जानता कि इसके लिए ठोस छायांकन करने के बारे में कैसे जाना है। शायद एक प्रति-ब्लॉक समाधान एकमात्र यथार्थवादी तरीका है?


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

1
@ एंको मैं कुछ आंशिक, जैसे 0 - 1.1 (विस्फोटों, आदि जैसे अति-उज्ज्वल क्षेत्रों के लिए) को पसंद करूंगा, लेकिन यह बस ब्लॉक-आधारित हो सकता है, जिसमें कोई वास्तविक प्रक्षेप या ऐसा कुछ भी नहीं होगा। मैं वास्तव में चाहता हूं कि यह गतिशील हो, और कई रोशनी का समर्थन करे। जबकि "गुफा-जैसा" / छत वाले क्षेत्रों को दूर से काटकर दिखाया जाएगा, जबकि प्रकाश की गणना करते समय अहंकार को नहीं दिखाया जाना चाहिए। उदाहरण के लिए, यदि आप एक घर में चलते हैं, तो छत के ब्लॉक गायब हो जाएंगे, लेकिन यह अभी भी अंदर छायादार होना चाहिए।
डैनी क्लासन

यदि आप गुफाओं और ऊंचाई के साथ एक समाधान की तलाश करते हैं, तो ऐसा लगता है कि आपके पास 2 डी का कुछ भी नहीं है। आप शायद एक पूर्ण 3 डी समाधान की तलाश कर रहे हैं, भले ही कैमरा हमेशा उत्तर -45 lookingडाउन दिशा में देख रहा हो। आपको स्टैंसिल-छाया या इसी तरह की टेकनीक को देखना चाहिए।
एड्रियन मैयर

मैं दूसरा @ AdrianMaire आपको उचित 3 डी गणना करने की आवश्यकता होगी, लेकिन "टाइल" के चेहरे पर कोई प्रक्षेप नहीं होने पर कुछ शॉर्टकट बनाएं। यदि आप प्रक्षेप नहीं कर रहे हैं तो आप शायद किरणों का उपयोग कर सकते हैं।
नेउमरअकाना

मेरे पास अभी इसे एक उत्तर में पचाने के लिए माइंडस्पेस नहीं है, लेकिन मैं इस ब्लॉग पोस्ट पर ऊंचाई वाले इलाकों के लिए लाइन-ऑफ-विज़न निर्धारण के बारे में ठोकर खाई । यह वही लग रहा है जो आप देख रहे हैं।
अंको

जवाबों:


1

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

मैंने कुछ तरीकों से 2 डी टाइल के नक्शे में छाया को लागू किया है। एक छायांकन विधि जो मुझे Microsoft पर एरिक लिपर्ट द्वारा वर्णित है , काफी अच्छी तरह से काम करती है।

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

लेकिन अगर मैं उस विचार को 3 डी में ले जाने की कोशिश करता हूं, तो यह सिर्फ 3 डी में करना आसान हो जाता है। जबकि एरिक लिपर्ट द्वारा वर्णित विधि संभवतः 3 डी में परिवर्तित हो सकती है। लेकिन मुझे लगता है कि आप पाएंगे कि यह 3 डी में करना महंगा है। शायद ब्रोग के लिए स्रोत कोड पर एक नज़र डालें । यह 2 डी दृश्यता / छाया ढलाई के लिए अधिक कुशल कार्यान्वयन हो सकता है।

सौभाग्य।

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