3D स्केच में मौजूद वर्तमान कैमरे के लिए पर्सपेक्टिव प्रोजेक्शन सेट करता है।
पर्सपेक्टिव प्रोजेक्शन में, कैमरे से दूर की आकृतियां कैमरे के करीब की आकृतियों की तुलना में छोटी दिखाई देती हैं। इस तकनीक को फोर्शॉर्टनिंग कहा जाता है और यह वास्तविक 3D दृश्यों को बनाता है। यह WebGL मोड में डिफ़ॉल्ट रूप से लागू होता है।
perspective()
कैमरे के व्यूइंग फ्रस्टम को बदलकर कैमरे की पर्सपेक्टिव को बदलता है। फ्रस्टम वह वॉल्यूम है जिसे कैमरा देख सकता है। इसका आकार एक पिरामिड होता है जिसका शीर्ष काटा गया हो। कैमरा पिरामिड के शीर्ष पर रखा जाता है और फ्रस्टम के शीर्ष (नज़दीकी) और तल (दूर) प्लेन के बीच की चीज़ों को देखता है।
पहला पैरामीटर fovy
कैमरे का अनुभवजन्य क्षेत्रीय दृश्य है। यह एक कोण है जो कैमरे की दृश्य ऊंचाई या संकीर्णता को बताता है। उदाहरण के लिए, perspective(0.5)
कॉल कैमरे का अनुभवजन्य क्षेत्रीय दृश्य को 0.5 रेडियन पर सेट करता है। डिफ़ॉल्ट रूप से, fovy
स्केच की ऊंचाई और कैमरे के डिफ़ॉल्ट z-अक्ष के आधार पर गणना किया जाता है, जो 800 है। डिफ़ॉल्ट fovy
का फार्मूला 2 * atan(height / 2 / 800)
है।
दूसरा पैरामीटर aspect
कैमरे का आस्पेक्ट रेश्यो है। यह एक संख्या है जो शीर्ष प्लेन की चौड़ाई और ऊंचाई का अनुपात बताती है। उदाहरण के लिए, perspective(0.5, 1.5)
कॉल कैमरे के दृश्य क्षेत्र को 0.5 रेडियन और आस्पेक्ट रेश्यो को 1.5 पर सेट करता है, जिससे आकृतियां वर्गाकार कैनवास पर पतली दिखेंगी। डिफ़ॉल्ट रूप से, आस्पेक्ट width / height
पर सेट होता है।
तीसरा पैरामीटर near
कैमरे से नज़दीकी प्लेन की दूरी है। उदाहरण के लिए, perspective(0.5, 1.5, 100)
कॉल कैमरे के दृश्य क्षेत्र को 0.5 रेडियन, उसके आस्पेक्ट रेश्यो को 1.5, और नज़दीकी प्लेन को कैमरे से 100 पिक्सल दूर रखता है। कैमरे से 100 पिक्सल से कम दूर बनाई गई कोई भी आकृति दृश्य में नहीं होगी। डिफ़ॉल्ट रूप से, नज़दीकी को 0.1 * 800
पर सेट किया जाता है, जो कैमरे और मूल के बीच की डिफ़ॉल्ट दूरी का 1/10 वां हिस्सा है।
चौथा पैरामीटर far
कैमरे से दूर प्लेन की दूरी है। उदाहरण के लिए, perspective(0.5, 1.5, 100, 10000)
कॉल कैमरे के दृश्य क्षेत्र को 0.5 रेडियन, उसके आस्पेक्ट रेश्यो को 1.5, नज़दीकी प्लेन को कैमरे से 100 पिक्सल दूर, और दूर प्लेन को कैमरे से 10,000 पिक्सल दूर रखता है। कैमरे से 10,000 पिक्सल से अधिक दूर बनाई गई कोई भी आकृति दृश्य में नहीं होगी। डिफ़ॉल्ट रूप से, दूर को 10 * 800
पर सेट किया जाता है, जो कैमरे और मूल के बीच की डिफ़ॉल्ट दूरी का 10 गुना है।
ध्यान दें: perspective()
का उपयोग केवल WebGL मोड में किया जा सकता है।
उदाहरण
सिंटैक्स
perspective([fovy], [aspect], [near], [far])
पैरामीटर्स
कैमरा फ्रुम ऊर्ध्वाधर दृश्य क्षेत्र। डिफ़ॉल्ट 2 * atan(height / 2 / 800)
.
कैमरा फ्रस्टम पहलू अनुपात। डिफ़ॉल्ट width / height
.
कैमरे से निकटतम क्लिपिंग तल तक की दूरी। डिफ़ॉल्ट 0.1 * 800
.
कैमरे से सुदूर क्लिपिंग तल तक की दूरी। डिफ़ॉल्ट 10 * 800
.
संबंधित संदर्भ
camera
कैमरे की स्थिति और अभिविन्यास को सेट करता है। myCamera.camera() वस्तुओं को विभिन्न कोणों से देखने की अनुमति देता है। इसके नौ पैरामीटर हैं जो सभी वैकल्पिक हैं। पहले तीन पैरामीटर, x, y, और z, कैमरे की स्थिति के निर्देशांक "विश्व" स्थान में हैं। उदाहरण के लिए, myCamera.camera(0, 0, 0) को बुलाना कैमरे को उत्पत्ति (0, 0, 0) पर रखता है। डिफ़ॉल्ट रूप से, कैमरा (0, 0, 800) पर रखा जाता है। अगले तीन पैरामीटर, centerX, centerY, और centerZ "विश्व" स्थान में उस बिंदु के निर्देशांक हैं जहां कैमरा सामना करता है। उदाहरण के लिए, myCamera.camera(0, 0, 0, 10, 20, 30) को बुलाना कैमरे को उत्पत्ति (0, 0, 0) पर रखता है और इसे (10, 20, 30) की ओर इशारा करता है। डिफ़ॉल्ट रूप से, कैमरा उत्पत्ति (0, 0, 0) की ओर इशारा करता है। अंतिम तीन पैरामीटर, upX, upY, और upZ "स्थानीय" स्थान में "ऊपर" वेक्टर के घटक हैं। "ऊपर" वेक्टर कैमरे के y-अक्ष को अभिविन्यासित करता है। उदाहरण के लिए, myCamera.camera(0, 0, 0, 10, 20, 30, 0, -1, 0) को बुलाना कैमरे को उत्पत्ति (0, 0, 0) पर रखता है, इसे (10, 20, 30) की ओर इशारा करता है, और "ऊपर" वेक्टर को (0, -1, 0) सेट करता है जैसे कि इसे उल्टा पकड़ा गया हो। डिफ़ॉल्ट रूप से, "ऊपर" वेक्टर (0, 1, 0) है। .
centerX
उस स्थान का x-निर्देशांक जहां कैमरा दिखता है। डिफ़ॉल्ट रूप से, कैमरा "विश्व" स्थान में मूल (0, 0, 0) को देखता है, इसलिए myCamera.centerX 0 है। .
centerY
उस स्थान का y-निर्देशांक जहां कैमरा दिखता है। डिफ़ॉल्ट रूप से, कैमरा "विश्व" स्थान में मूल (0, 0, 0) को देखता है, इसलिए myCamera.centerY 0 है। .
centerZ
उस स्थान का y-निर्देशांक जहां कैमरा दिखता है। डिफ़ॉल्ट रूप से, कैमरा "विश्व" स्थान में मूल (0, 0, 0) को देखता है, इसलिए myCamera.centerZ 0 है। .