इस प्रोजेक्ट के बारे में
Graphics Foundations एक स्व-निहित, विषय-दर-विषय सीखने का संसाधन है जो कंप्यूटर ग्राफिक्स की नींव को कवर करता है, जिसमें गणित, रेंडरिंग पाइपलाइन, और रीयल-टाइम और रे-ट्रेस्ड छवियों के पीछे के एल्गोरिदम शामिल हैं। यह UCLA CS 174A (Introduction to Computer Graphics, 2019–2021) के लिए छह तिमाहियों के चर्चा अनुभागों से विकसित हुआ है और इसे एक स्वतंत्र संसाधन के रूप में फिर से लिखा गया है; लेखक कहता है कि यह आधिकारिक पाठ्यक्रम सामग्री नहीं है।
सामग्री को 13 अध्यायों (0–12 क्रमांकित) के सीखने के पथ के रूप में व्यवस्थित किया गया है, जिसे क्रम से पढ़ने का इरादा है। प्रत्येक अध्याय बताता है कि आप क्या सीखेंगे, आंकड़ों के साथ समझाता है, डेमो से लिंक करता है, और आत्म-जांच प्रश्नों और छिपे उत्तरों के साथ समाप्त होता है।
- अध्याय 0: ग्राफिक्स के लिए सेटअप और जावास्क्रिप्ट (उपकरण, मॉड्यूल, क्लासेस, क्लोजर, टाइप्ड एरे, फ्रेम लूप)
- अध्याय 1: रेंडरिंग पाइपलाइन और GLSL (वर्टेक्स/फ्रैगमेंट शेडर्स, रैस्टराइज़ेशन, क्लिप स्पेस)
- अध्याय 2: बिंदु, वेक्टर और समन्वय प्रणालियाँ (एफाइन स्पेस, होमोजीनियस और बैरीसेंट्रिक निर्देशांक, डॉट और क्रॉस उत्पाद)
- अध्याय 3: त्रिभुजों के साथ आकृतियों का मॉडलिंग (डिस्क्रीटाइज़ेशन, इंडेक्स्ड मेश, स्ट्रिप्स, विंडिंग, फ्लैट बनाम स्मूथ नॉर्मल्स)
- अध्याय 4: रूपांतरण (ट्रांसलेट, रोटेट, स्केल, शियर, रिफ्लेक्ट; क्रम; पदानुक्रम; एनीमेशन)
- अध्याय 5: आधार का परिवर्तन (फ्रेम, निर्देशांक परिवर्तित करना, कैमरा एक फ्रेम के रूप में)
- अध्याय 6: व्यूइंग और प्रोजेक्शन (लुक-एट, ऑर्थोग्राफिक और पर्सपेक्टिव व्युत्पत्तियाँ, क्लिपिंग, जेड-बफर)
- अध्याय 7: प्रकाश और शेडिंग (फोंग और ब्लिन-फोंग, प्रकाश प्रकार, फ्लैट/गोराउड/फोंग शेडिंग, नॉर्मल मैट्रिक्स)
- अध्याय 8: टेक्सचर मैपिंग (यूवी मैपिंग, फ़िल्टरिंग, मिपमैप्स, पर्सपेक्टिव-सही इंटरपोलेशन, बंप/नॉर्मल/डिस्प्लेसमेंट)
- अध्याय 9: टकराव का पता लगाना (बाउंडिंग वॉल्यूम, सेपरेटिंग एक्सिस थ्योरेम, ब्रॉड फेज़, टाइम स्टेपिंग)
- अध्याय 10: छायाएँ, दर्पण और पारदर्शिता (शैडो मैपिंग, प्लेनर मिरर्स, अल्फा ब्लेंडिंग, प्रीमल्टीप्लाइड अल्फा)
- अध्याय 11: रे ट्रेसिंग (रे जनरेशन, इंटरसेक्शन, रिकर्सिव रेज़, रे ट्री, एक्सेलेरेशन)
- अध्याय 12: एक इंटरैक्टिव ग्राफिक्स प्रोजेक्ट बनाना (योजना, टाइमिंग और स्टेट मशीनें, पार्टिकल्स, स्काईबॉक्स, पिकिंग, कंपोज़िशन, रंग)
नोट्स के साथ दो अभ्यास सेट हैं: प्रॉब्लम्स I (फाउंडेशन, रूपांतरण, व्यूइंग) और प्रॉब्लम्स II (प्रकाश, बनावट, टकराव, रे ट्रेसिंग), प्रत्येक पूर्ण हल किए गए समाधान के साथ। पूर्वापेक्षाएँ किसी भी भाषा में प्रोग्रामिंग और सदिश, मैट्रिक्स, डॉट और क्रॉस उत्पादों के स्तर पर रैखिक बीजगणित हैं; अध्याय 0 आवश्यक जावास्क्रिप्ट को कवर करता है।
सात इंटरैक्टिव ब्राउज़र डेमो अध्यायों के साथ हैं, जो एक लाइव GitHub Pages साइट से लिंक किए गए हैं: हैलो त्रिभुज (सादा WebGL), रूपांतरण, कैमरा और प्रोजेक्शन, प्रकाश और शेडिंग, टेक्सचर मैपिंग, रे ट्रेसिंग, और बाउंडिंग वॉल्यूम। डेमो 02–07 TinyGraphics.js पर बनाए गए हैं, जो Garett Ridge द्वारा एक छोटी शिक्षण लाइब्रेरी है, जिसे वेंडर करने के बजाय इसकी प्रकाशित प्रति से लोड किया गया है। डेमो WebGL 2 के साथ डेस्कटॉप ब्राउज़र के लिए हैं। एक स्थानीय सर्वर स्क्रिप्ट (node tools/serve.mjs) प्रदान की गई है, जिसमें TinyGraphics.js की स्थानीय क्लोन के साथ विकास करने का विकल्प है।
रिपॉजिटरी को notes/, exercises/, figures/ (tools/figures.py द्वारा उत्पन्न SVG आंकड़े), demos/ (प्रति डेमो एक HTML फ़ाइल और साझा सहायक) और tools/ में व्यवस्थित किया गया है। विशेष रूप से, नोट्स को कोड की तरह परीक्षण किया जाता है: स्क्रिप्ट नोट्स और अभ्यासों में हर काम किए गए नंबर की पुनर्गणना करती हैं, लिंक, एंकर, आंकड़े की मौलिकता और पाठ्यक्रम लॉजिस्टिक्स की अनुपस्थिति की जाँच करती हैं, हेडलेस क्रोमियम में प्रत्येक डेमो को लोड करते हुए हर नियंत्रण दबाती हैं और स्क्रीनशॉट लेती हैं, और github.com पर गणित कैसे रेंडर होता है इसका ऑडिट करती हैं। एक fix_math.py स्क्रिप्ट LaTeX निर्माणों (जैसे \mathbf, \boxed, \tag, \operatorname) को फिर से लिखती है जो GitHub पर मूल MathML के रूप में गलत रेंडर होते हैं। डेमो जांच के लिए WebGL 2 के साथ स्थानीय क्रोमियम की आवश्यकता होती है और मानव समीक्षा के लिए स्क्रीनशॉट लिखती है।
नोट्स UCLA CS 174A के लिए चर्चा-अनुभाग सामग्री के रूप में शुरू हुए, जो प्रो. आसिश लॉ और प्रो. डेमेट्री टेरज़ोपोलोस द्वारा पढ़ाए गए पाठ्यक्रमों का समर्थन करते हैं; विषय की पसंद और क्रम उन पाठ्यक्रमों का पालन करते हैं। व्याख्यान स्लाइड, पाठ्यपुस्तक के आंकड़े और असाइनमेंट शामिल नहीं हैं। मूल साप्ताहिक चर्चा सामग्री एक संग्रह टैग और प्रति-तिमाही रिपॉजिटरी में उपलब्ध है। नोट्स, अभ्यास, आंकड़े और डेमो © युन्की गुओ हैं और CC BY-NC-ND 4.0 के तहत लाइसेंस प्राप्त हैं: क्रेडिट के साथ गैर-व्यावसायिक उद्देश्यों के लिए अपरिवर्तित प्रतियों को पढ़ना, अध्ययन करना और साझा करना अनुमत है, जबकि संशोधित संस्करण वितरित करना या व्यावसायिक उपयोग नहीं। TinyGraphics.js अपनी स्वयं की शर्तों के साथ एक अलग परियोजना है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.