ScratchPixel - कंप्यूटर ग्राफ़िक्स को बुनियाद से मुफ्त में सीखें
(scratchapixel.com)- कंप्यूटर ग्राफ़िक्स की बुनियाद से लेकर उन्नत विषयों तक मुफ्त में सीखने के लिए एक ऑनलाइन शिक्षा प्लेटफ़ॉर्म
- 3D रेंडरिंग, गणितीय बुनियाद, डिजिटल इमेजिंग, प्रोसीजरल जेनरेशन, टूलिंग जैसे विभिन्न विषयों को व्यवस्थित रूप से कवर करता है
- प्रैक्टिकल-केंद्रित लेक्चर संरचना, जिसे इस तरह डिज़ाइन किया गया है कि सिद्धांत से पहले सीधे परिणाम का अनुभव किया जा सके
- Vulkan API लर्निंग कोर्स (नया), 3D प्रोग्रामिंग ब्लॉग (जल्द), किताब (शीघ्र प्रकाशन) आदि के साथ लगातार विकसित हो रहा है
- डेवलपर्स और डिज़ाइनर्स के लिए कंप्यूटर ग्राफ़िक्स के सिद्धांतों और इम्प्लीमेंटेशन तकनीकों को गहराई से समझने का एक मुफ्त लर्निंग रिसोर्स
- Scratchapixel "Learn computer graphics from scratch and for free" स्लोगन के तहत, कंप्यूटर ग्राफ़िक्स को समग्र रूप से मुफ्त में सीखने के लिए एक वेबसाइट है
वर्तमान में उपलब्ध कोर्स
-
3D रेंडरिंग की बुनियाद (The Foundations of 3D Rendering)
- शुरुआती लोगों के लिए अनुकूल क्रम में तैयार किया गया रेंडरिंग का परिचयात्मक कोर्स
- यह सिद्धांत से पहले सीधे परिणाम बनाने के तरीके को अपनाता है
- मुख्य लेक्चर विषय इस प्रकार हैं
- Ray-Tracing का परिचय, 3D सीन रेंडरिंग, Rasterization, प्रोजेक्शन मैट्रिक्स, शेडिंग और लाइटिंग, टेक्स्चरिंग, एक्सेलरेशन स्ट्रक्चर, वॉल्यूम रेंडरिंग आदि
- प्रत्येक लेक्चर वास्तविक इम्प्लीमेंटेशन उदाहरणों के साथ पिक्सेल कोऑर्डिनेट कैलकुलेशन, pinhole camera model, BRDF और shader concepts आदि को कवर करता है
- शुरुआती लोगों के लिए अनुकूल क्रम में तैयार किया गया रेंडरिंग का परिचयात्मक कोर्स
-
कंप्यूटर ग्राफ़िक्स के लिए गणित (Mathematics for Computer Graphics)
- ग्राफ़िक्स इम्प्लीमेंटेशन के लिए आवश्यक गणितीय सिद्धांत और टूल्स की व्याख्या करता है
- यह सेक्शन शुरुआती लोगों के लिए नहीं, बल्कि अन्य लेक्चर्स में संदर्भित अवधारणाओं के लिए रेफरेंस सामग्री के रूप में बनाया गया है
- मुख्य विषयों में ज्यामिति, मैट्रिक्स इनवर्ज़न (Gauss-Jordan method), इंटरपोलेशन, LookAt function, शेडिंग का गणित, Monte Carlo methods, Fourier transform आदि शामिल हैं
- ग्राफ़िक्स इम्प्लीमेंटेशन के लिए आवश्यक गणितीय सिद्धांत और टूल्स की व्याख्या करता है
-
Computer Graphics Gems
- किसी विशेष श्रेणी में न आने वाले लेकिन रोचक अलग-अलग ग्राफ़िक्स विषयों का संग्रह
- फिलहाल इसमें केवल Blackbody radiation लेक्चर शामिल है
- किसी विशेष श्रेणी में न आने वाले लेकिन रोचक अलग-अलग ग्राफ़िक्स विषयों का संग्रह
-
Geometry
- कंप्यूटर ग्राफ़िक्स में आकार को परिभाषित करने के तरीकों पर केंद्रित
- Bézier curves और surfaces का उपयोग करके आकार व्यक्त करने के तरीके समझाए गए हैं
- कंप्यूटर ग्राफ़िक्स में आकार को परिभाषित करने के तरीकों पर केंद्रित
-
Digital Imaging
- इमेज फ़ाइल प्रोसेसिंग और color management को कवर करता है
- मुख्य विषय हैं प्रकाश और color spaces, डिजिटल इमेज की file-to-screen conversion, बेसिक इमेज मैनिपुलेशन आदि
-
Procedural Generation of Virtual Worlds
- प्राकृतिक घटनाओं की procedural simulation को कवर करता है
- इसमें Value Noise, Perlin Noise, sky color simulation जैसे विषय शामिल हैं
-
Tooling
- 3D टूल डेवलपमेंट और इंटरैक्शन तकनीकों को कवर करता है
- इसमें window management, OBJ file format, camera navigation control जैसी सामग्री शामिल है
हाल की ख़बरें
- जल्द शुरू होने वाला ब्लॉग 3D प्रोग्रामिंग के साथ-साथ AI और शिक्षा जैसे संबंधित विषयों को भी कवर करेगा
- Vulkan API पर एक नया लेक्चर जोड़ा जाएगा
- "Learn Computer Graphics Programming from Scratch" शीर्षक वाली एक पुस्तक भी जल्द प्रकाशित होगी
1 टिप्पणियां
Hacker News की राय
यह वेबसाइट वाकई बहुत विकसित हुई है। इतनी शानदार है कि Santa को दान छोड़ना चाहिए
मुझे लगता है कि computer graphics क्षेत्र में और अधिक open educational resources की ज़रूरत है। पुरानी तकनीकें पुराने किताबों में दबी पड़ी हैं, और नई तकनीकें कंपनियों की दीवारों के पीछे छिपी हैं। Sergei Savchenko की 3D Graphics Programming Games and Beyond जैसी किताब इसका अच्छा उदाहरण है।
आजकल graphics APIs बेवजह बहुत जटिल हैं, इसलिए GPU को फिलहाल भूलकर software rasterizer या ray tracer खुद implement करना बेहतर शुरुआत हो सकती है।
बस अफसोस यह है कि इस साइट पर Discord के अलावा संपर्क का कोई और तरीका नहीं है। यह भी अच्छा होता अगर donation page तक main page से सीधे जाया जा सकता
यह सचमुच खज़ाने जैसा संसाधन है
मेरा nickname उस Reactor 3D engine से आया है जो मैंने पहले बनाया था। Quake 3 ने हाई स्कूल के दिनों में मेरी ज़िंदगी बदल दी थी। अगर Doom ने मुझे कंप्यूटर की दुनिया में लाया, तो Quake 3 ने मुझे 3D का दीवाना बना दिया।
मुझे गणित ज़्यादा नहीं आती थी, लेकिन मैंने code नकल करके-करके सीखा, और अब मैं web और graphics के मेल वाला career कर रहा हूँ। WebGL और WebGPU आम हो जाने की वजह से, मैंने काम पर PhD लोगों को vertex packing और GPU structs भेजने के तरीके तक सिखाए हैं।
मैंने XNA Silverlight developers के साथ भी काम किया है, इसलिए किसी दूर के रिश्ते में MonoGame से जुड़ा हुआ हूँ। अब Vulkan/DX12/Metal जैसे नए तरीके मुख्यधारा में हैं
यह साइट सच में शानदार है। ज़रूर देखनी चाहिए
graduate school के दौरान मैंने खुद ray tracer implement किया था, और उस समय जिस किताब का सहारा लिया था, वह Andrew S. Glassner की An Introduction to Ray Tracing थी। अब यह मुफ्त डाउनलोड के लिए उपलब्ध है — लिंक
मैंने पहले graphics programming के free resources का एक संग्रह बनाया था। अब इसे बहुत अपडेट नहीं करता, लेकिन यह मददगार हो सकता है — gist लिंक
अपने career के ज़्यादातर हिस्से में graphics मेरा blind spot रहा है। मैं data और distributed systems की तरफ चला गया, लेकिन सच तो यह है कि मैंने programming शुरू ही games बनाने के लिए की थी
पहले मैंने OpenGL से planetary orbit simulation बनाया था, और Flash में अजीब-सा shooting game भी बनाया था। लेकिन जब भी Vulkan सीखने की कोशिश करता हूँ, code की मात्रा देखकर हिम्मत टूट जाती है। शायद इसलिए कि बुनियादी concepts ठीक से नहीं समझे। कभी समय मिला तो इसे गंभीरता से फिर सीखना चाहूँगा
उदाहरण के लिए Tiny Renderer और Ray Tracing in One Weekend की सिफारिश करता हूँ।
इस प्रक्रिया से आप गहराई से समझ सकते हैं कि GPU को वैसा design क्यों किया गया है। उसके बाद OpenGL 4.6 या D3D11, और ShaderToy, ShaderAcademy जैसी साइटों तक बढ़ने की सलाह दूँगा
CPU-आधारित rendering आज भी महत्वपूर्ण है, क्योंकि movie renderers precision के लिए CPU का उपयोग करते हैं। संदर्भ के लिए, WARP और LLVMpipe ऐसे software rasterizers हैं जो असली production में भी इस्तेमाल होते हैं
मैं इस वेबसाइट की content का सच में आनंद ले रहा हूँ। पिछले साल AI thumbnails पर दिया गया feedback शामिल करने के लिए भी धन्यवाद — HN feedback लिंक
इस साल मेरे लक्ष्यों में से एक है software 3D renderer को बिल्कुल basics से खुद बनाना। बिना game engine, बिना GPU, पूरी तरह अपने दम पर implement करूँगा
आजकल LLM में website link या PDF डालकर उन्हें interactive learning material में बदला जा सकता है। मैंने भी आज 1000-page PDF को ऐसे बदलकर game engine की पढ़ाई में इस्तेमाल किया। अच्छा लगा कि वह सिर्फ bookmark बनकर नहीं रह गया
उम्मीद है कि कभी NVIDIA का graphics API monopoly, Google का web पर दबदबा, और AMD के कमजोर alternatives का दौर खत्म होगा