एक 2 डी ग्रह बनावट का 3 डी भ्रम


10

कई साल पहले मैंने एक ऐसी तकनीक की शुरुआत की थी जो उपयोगकर्ता को एक 2 डी बनावट का उपयोग करके घूमने वाले ग्रह का भ्रम देता है। यह देखते हुए कि उपयोगकर्ता अपनी स्थिति या व्यूपोर्ट बदलने में सक्षम नहीं है।

इस तकनीक का नाम क्या है?

जवाबों:


25

ठीक है मुझे लगता है कि मेरे पास अब प्रतिनिधि है। एम्बेडेड छवियों वाली पिछली पोस्ट की सामग्री। क्या यह घूमता हुआ ग्रह प्रभाव है जिसे आप ढूंढ रहे हैं? इसकी बस एक स्क्रॉल 2 डी छवि स्टार क्षेत्र में एक अर्ध-पारदर्शी "छेद" के माध्यम से देखी गई।

मैं एक साथ एक त्वरित थोड़ा एनिमेटेड gif डाल दिया कि क्या प्रभाव की तरह दिखेगा। स्पष्ट रूप से यह एक बहुत चिकनी एनिमेटेड हो सकता है - मैंने प्रत्येक फ्रेम में ग्रह की सतह को 4 पिक्सेल से स्थानांतरित कर दिया। यह छवि को लपेटने के लिए भी सेट नहीं है, इसलिए लूप के अंत में एक गड़बड़ है।

ग्रह http://www.perludus.com/orbit.gif

मैंने यह सब फ़ोटोशॉप में किया था, लेकिन अवधारणा को 2D रेंडरिंग वातावरण में काम करना चाहिए, जो आपको अल्फा ट्रांसपेरेंसीज़ इत्यादि करने की अनुमति देता है, यहाँ प्रक्रिया दिखाने वाले स्क्रीनशॉट की एक श्रृंखला है ...

  1. एक खाली स्टार पृष्ठभूमि बनाएं, और उसमें एक गोल छेद काट दें।
    वैकल्पिक शब्द
  2. इस तरह से अपने ग्रह के लिए एक ग्रेस्केल शेड वाला गोला खोजें
    वैकल्पिक शब्द
  3. यहाँ छेद के साथ हमारे तारे हैं और ऊपर, अर्ध पारदर्शी पर छायांकित गोला है
    वैकल्पिक शब्द
  4. छेद के आकार का एक नीला चक्र बनाएं, और इसे एक बाहरी नीली चमक दें। इसे भी अर्ध-पारदर्शी होने के लिए सेट करें। यहाँ यह छायांकित क्षेत्र के साथ कैसा दिखता है
    वैकल्पिक शब्द
  5. अब एक ग्रह की सतह बनावट खोजें। मुझे यह सिर्फ "ग्रह की सतह की बनावट" के रूप में मिला
    वैकल्पिक शब्द
  6. इस लुक को पाने के लिए ग्रह की बनावट को स्टार की छवि में अर्ध-पारदर्शी छेद के साथ रखें
    वैकल्पिक शब्द

अपने ग्रह की सतह को चेतन करने के लिए, बस अंतर्निहित ग्रह सतह बनावट को स्थानांतरित करें। जब आप एक सहज और अंतहीन घुमाव प्राप्त करने के लिए किनारे पर पहुंचते हैं तो बनावट को शिफ्ट करने के बारे में आपको चतुर होना पड़ेगा।

आशा है कि यह मदद करता है और आप के लिए देख रहे थे प्रभाव है!

PS ने इस लेख को ग्रह बनावट बनाने के उपन्यास के तरीके के बारे में देखा - मुझे इस उत्तर के बारे में सोचा :) http://www.behance.net/gallery/Pan-Planets/9557465


एनपी हेनरिक। जैसे ही मैंने आपकी पोस्ट देखी, हालांकि, "मुझे यकीन है कि मुझे पता है कि इस आदमी का क्या मतलब है।" मुझे 100% यकीन नहीं है, लेकिन मुझे लगता है कि मूल स्टार ट्रेक टीवी शो में घूमते हुए ग्रह का प्रभाव कैसा था।
टिम होल्ट

यह एक महान जवाब था, मुझे एक गेम प्रोजेक्ट के लिए एक विचार देता है जो मेरे पास है। अगली बार मुझे स्टारक्राफ्ट 2 बीमार का भार देखना होगा कि यह कैसे किया जाता है =)
ब्रायन हैरिंगटन

शानदार जवाब, शानदार स्क्रीनशॉट!
त्रुटि 454

आपकी छवि मर गई। क्या आपको लगता है कि आप इसे ठीक कर सकते हैं?
10

3

im का मतलब है कि आप क्या कर रहे हैं, अनुमान लगाने जा रहे हैं, और बस एक विचार वहाँ फेंक देते हैं, लेकिन यह निश्चित रूप से ऐसा करने के लिए 'प्रसिद्ध' तरीका नहीं है।

सभी 2 डी में

2 बनावट लें। एक आपकी भूमि का द्रव्यमान, दूसरा आपके बादलों का। बादलों में एक अल्फ़ा परत होनी चाहिए जो मेल खाती है ताकि आप उन्हें 'देख सकें'।

बनावट को तुलनीय बनाने के लिए, कि वे सहज लपेटें। ऐसे प्रोग्राम हैं जो आपको फ़ोटोशॉप में इन या ट्यूटोरियल्स को बनाने में आपकी मदद करते हैं।

फिर अंत में आप एक स्टैंसिल मास्क बनाते हैं जो सिर्फ एक चक्र होता है, इसलिए आप अपने वर्ग बनावट में एक गोल छेद के रूप में देख रहे हैं, इस प्रकार कोनों को बंद कर देते हैं।

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


2

मुझे लगता है कि यह लेख तकनीक का वर्णन करता है। (यह रूसी में है, इसलिए मैं अनुवादित लिंक पोस्ट करता हूं।)

https://translate.googleusercontent.com/translate_c?depth=1&hl=en&rurl=translate.google.com&sl=auto&sp=nmt4&tl=en&u=https://habrahabr.ru/post/248381/&usg=ALkJrhgViuYdAi-Vav3cyhxvydkaBKh6EQ

मैंने इसे यहां लागू किया है। http://github.com/meric/renderplanet

मूल रूप से आप एक ऐसी छवि लेते हैं जो ऑर्थोग्राफ़िक प्रोजेक्शन को एन्कोड करती है ( http://mathworld.wolfram.com/OrthographicProjection.html ) को और अपने ग्रह और क्लाउड बनावट को एक शेडर का उपयोग करके चारों ओर लपेटती है। इसे घुमाने के लिए dt के अनुसार ग्रह की बनावट को बंद करें। वायुमंडल की अंगूठी और छाया के लिए तैयार पारभासी छवि का उपयोग करें, या पारभासी चाप और छाया के लिए कुछ प्रयोग करके इसे उत्पन्न करें।

यहाँ छवि है:

लिखने का

सर्कल के भीतर प्रत्येक पिक्सेल के लिए, Red + Green/255 देखने के लिए ग्रह / क्लाउड बनावट का X समन्वित Blue + Alpha/255सामान्यीकृत किया जाता है और Y समन्वय को सामान्य किया जाता है।

यहाँ परिणाम है:

नमूना

ग्रह और मेघ बनावट समभुज प्रक्षेपण में होना चाहिए।


1

आपका प्रश्न स्पष्ट नहीं है कि आप जिस संदर्भ में काम कर रहे हैं, उस पर प्रतिबंध स्पष्ट नहीं है। 3 डी प्रतिपादन में विशाल बहुमत के पाठ 2 डी हैं। तो अगर तुम सिर्फ एक 3 डी क्षेत्र के साथ एक 3 डी सतह बनावट के साथ दिखाया जा रहा है चारों ओर मैप, यह वास्तव में एक समस्या नहीं है। यदि आप 3D रेंडरिंग का उपयोग नहीं कर सकते हैं, तो आपको कहना होगा कि आप क्या उपयोग कर सकते हैं।

मूल मुद्दा यह है कि आपको एक गोले की सतह पर एक सपाट बनावट को प्रस्तुत करना होगा, जो आपको 3 डी रेंडरिंग के साथ मुफ्त में मिलेगा। जैसा कि ग्रह घूमता है, ग्रह की सतह के दृश्य भाग एक गैर रेखीय तरीके से चेतन करते हैं (बनावट के भूमध्यरेखीय भाग ध्रुवों की तुलना में तेजी से चलते हैं)। इसलिए मुझे लगता है कि या तो आपको छवि को खुद को विकृत करना होगा जैसे ही आप इसे डिस्क पर मैप करते हैं, या आप जैसा कि VirtualVoid सुझाते हैं, और बस कई छवियां होती हैं जिन्हें आप समय के बीच बदलते हैं।

यह लागू करने के लिए भयानक होगा, लेकिन यदि आप पिक्सेल द्वारा बनावट, पिक्सेल को प्रस्तुत करने में सक्षम हैं, तो आप मूल रूप से अलग-अलग क्षेत्र की प्रत्येक पंक्ति के लिए रेखांकन गणना कर सकते हैं। मान लेते हैं कि आपके सतह मानचित्र की बनावट समतल है, ताकि भूमध्य रेखा पर 512px छवि हो। चलो यह भी मान लें कि आपका दृश्यमान डिस्क 256 px चौड़ा है। अब प्रदान की गई डिस्क की प्रत्येक पंक्ति को सतह की बनावट पर स्लाइडिंग विंडो के रूप में सोचें। भूमध्य रेखा पर, विंडो बनावट की चौड़ाई का 50% है, और आप डिस्क पर बराबर पिक्सेल पर प्रत्येक 256px की प्रतिलिपि बनाते हैं। डिस्क पर नीचे की अगली पंक्ति 256 px से थोड़ी कम होगी, लेकिन विकृत सतह मानचित्र के कारण, अभी भी 256px इनपुट सतह मानचित्र डेटा हैं। तो आप इनपुट सतह मानचित्र डेटा को उप-नमूना करते हैं, और परिणामी पिक्सेल को प्रस्तुत करते हैं। आसान गणित के लिए, ' मान लें कि भूमध्य रेखा और ध्रुव के बीच का 1/3 आउटपुट डिस्क में 128px चौड़ा है। तो उन 128px में से प्रत्येक 2 पड़ोसी पिक्सेल का औसत होने वाला है। जब आप पोल पर उतरते हैं, तो आप केवल कुछ आउटपुट पिक्सल्स में सभी 256px औसत होंगे।

आप इसे दूसरे तरीके से भी कर सकते हैं, और स्रोत बनावट में लाइनें अलग-अलग लंबाई की हो सकती हैं। इसलिए जबकि स्रोत डेटा वाली लाइन में 512px है, नीचे की तरफ 1/3 की लाइन में केवल 256px है, और नीचे की लाइन में केवल कुछ पिक्सेल हैं। लेकिन प्रत्येक रेखा बराबर y निर्देशांक पर डिस्क की चौड़ाई से दोगुनी है। एक बनावट की तरह हालांकि बनाने के लिए बिल्कुल भयानक होगा। और शायद भयानक अलियासिंग मुद्दों से पीड़ित होगा।

उन दोनों मामलों में आपका एनीमेशन बस फिर इनपुट बनावट में स्टार्ट पिक्सेल x को बढ़ाता है, और इनपुट टेक्सचर लाइन के शुरू होने के चारों ओर लपेटता है।

जितना मैं इस बारे में लिखता हूं, उतना ही मुझे यकीन है कि यह एक भयानक विचार है, कि आप केवल तभी लागू करेंगे जब आपके पास वास्तव में कोई अन्य विकल्प नहीं था। और आपको किसी अन्य विकल्प के लिए बहुत ही असामान्य स्थिति में होना पड़ेगा।

मुझे विश्वास नहीं होता कि मैंने एक विशिष्ट नामित तकनीक के रूप में इस (बल्कि अस्पष्ट) समस्या के किसी भी समाधान के बारे में सुना है।


0

स्प्राइट। ऐसा लगता है कि आप जो वर्णन कर रहे हैं वह सस्ते में रेंडर करने के लिए 3 डी गेम इंजन में 2 डी स्प्राइट है (निंटेंडो 64 ने यह पूरी जगह पर किया, जैसा कि कई शुरुआती 3 डी इंजनों ने किया था)।

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

http://en.wikipedia.org/wiki/Sprite_(computer_graphics )


0

यह कई फ्रेम के साथ एक बनावट का उपयोग करते हुए, बस एक साधारण एनीमेशन हो सकता है।

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