विषयसूची:

३डी व्यूअर: ४ कदम
३डी व्यूअर: ४ कदम

वीडियो: ३डी व्यूअर: ४ कदम

वीडियो: ३डी व्यूअर: ४ कदम
वीडियो: 3D Viewer Tutorial in 10 minutes 2024, जुलाई
Anonim
३डी व्यूअर
३डी व्यूअर

नमस्कार! प्रोग्रामिंग में मेरी रुचि को संतुष्ट करने के लिए और उम्मीद है कि आपकी संतुष्टि में मदद करने के लिए, मैं आपको एक 3D व्यूअर दिखाना चाहता हूं जिसे मैंने जावास्क्रिप्ट में कोडित किया है। यदि आप ३डी गेम के बारे में अपनी समझ को आगे बढ़ाना चाहते हैं या अपना खुद का ३डी गेम बनाना चाहते हैं, तो यह प्रोटोटाइप ३डी व्यूअर आपके लिए एकदम सही है।

चरण 1: सिद्धांत

सिद्धांत
सिद्धांत

इस 3D व्यूअर के सिद्धांत को समझने के लिए, आप बस अपने परिवेश को देखने के तरीके की जांच कर सकते हैं (यह प्रकाश का केवल एक महत्वपूर्ण स्रोत होने में मदद करता है)। नोटिस जो:

  1. जो वस्तुएँ आपसे दूर हैं, वे आपके दृष्टि क्षेत्र के एक छोटे से हिस्से पर कब्जा कर लेती हैं।
  2. जो वस्तुएँ प्रकाश स्रोत से अधिक दूर होती हैं वे गहरे रंग की दिखाई देती हैं।
  3. जैसे-जैसे सतहें प्रकाश स्रोत के समानांतर (कम लंबवत) हो जाती हैं, वे गहरे रंग की दिखाई देती हैं।

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

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

चरण 2: कार्यान्वयन सिद्धांत

कार्यान्वयन सिद्धांत
कार्यान्वयन सिद्धांत

कार्यक्रम को सरल बनाने के लिए, प्रकाश स्रोत केंद्र बिंदु के समान है (नेत्रगोलक: वह बिंदु जहां से नक्शा देखा जाता है और जहां से रेखाएं निकलती हैं)। आपके चेहरे के ठीक बगल में एक प्रकाश रखने के अनुरूप, यह छाया को समाप्त करता है और प्रत्येक पिक्सेल की चमक को और अधिक आसानी से गणना करने की अनुमति देता है।

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

गणित को सरल बनाने के लिए, 3D नक्शा एक सामान्य चर (सामान्य x, y, या z) वाले विमानों से बना होता है, जबकि अन्य दो गैर-सामान्य चर एक सीमा के भीतर सीमित होते हैं, प्रत्येक विमान की परिभाषा को पूरा करते हैं।

माउस के साथ चारों ओर देखने के लिए, गोलाकार और xyz समन्वय प्रणालियों के बीच रूपांतरण के दौरान एक लंबवत और क्षैतिज रोटेशन में प्रोग्राम के समीकरण कारक। यह दृष्टि रेखाओं के "स्पाइक बॉल" सेट पर एक रोटेशन को पूर्ववत करने का प्रभाव है।

चरण 3: मठ

निम्नलिखित समीकरण प्रोग्राम को यह निर्धारित करने में सक्षम करते हैं कि कौन सी रेखाएं प्रत्येक वस्तु और प्रत्येक चौराहे के बारे में जानकारी को काटती हैं। मैंने इन समीकरणों को मूल गोलाकार समन्वय समीकरणों और 2D रोटेशन समीकरणों से प्राप्त किया है:

आर = दूरी, टी = थीटा (क्षैतिज कोण), पी = फाई (ऊर्ध्वाधर कोण), ए = वाई अक्ष के बारे में रोटेशन (ऊर्ध्वाधर रोटेशन), बी = जेड अक्ष के बारे में रोटेशन (क्षैतिज रोटेशन)

Kx=(sin(p)*cos(t)*cos(A)+cos(p)*sin(A))*cos(B)-sin(p)*sin(t)*sin(B)

Ky=(sin(p)*cos(t)*cos(A)+cos(p)*sin(A))*sin(B)+sin(p)*sin(t)*cos(B)

Kz=-sin(p)*cos(t)*sin(A)+cos(p)*cos(A)

एक्स = आर * केएक्स

वाई = आर * क्यू

z=r*Kz

r^2=x^2+y^2+z^2

प्रकाश = Klight/r*(Kx या Ky या Kz)

p=arccos((x*sin(A)*cos(B)+y*sin(A)*sin(B)+z*cos(A))/r)

t=arccos((x*cos(B)+y*sin(B)-p*sin(A)*cos(p))/(r*cos(A)*sin(p)))

चरण 4: कार्यक्रम

कार्यक्रम
कार्यक्रम

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

सिफारिश की: