3 पॉइंट द्वारा GN⁺ 2023-11-24 | 1 टिप्पणियां | WhatsApp पर शेयर करें

AMD के tools, libraries और effects का परिचय

  • AMD की GPUOpen वेबसाइट GPU से जुड़े tools, libraries और effects के बारे में सीखने के लिए बेहतरीन जगह है।
  • यह ऐसे materials और guides प्रदान करती है जिन्हें शुरुआती software engineers भी आसानी से समझ सकें।
  • यह users को AMD की technologies का उपयोग करके optimized graphics और performance हासिल करने में मदद करती है।

GN⁺ की राय

  • इस लेख की सबसे महत्वपूर्ण बात यह है कि AMD का GPUOpen graphics developers के लिए उपयोगी resources प्रदान करता है।
  • इसमें ऐसे बहुत से materials हैं जिन्हें शुरुआती developers भी आसानी से access और use कर सकते हैं, इसलिए यह graphics programming में रुचि रखने वालों के लिए दिलचस्प होगा।

1 टिप्पणियां

 
GN⁺ 2023-11-24
Hacker News की राय
  • जब एक जूनियर software engineer computer graphics क्षेत्र में प्रवेश करता है, तो पहले यह सोचने के बजाय कि कौन-से tools इस्तेमाल करने हैं, यह सोचना ज़्यादा महत्वपूर्ण है कि वह क्या बनाना चाहता है। अंतिम output पर ध्यान रखते हुए पहला कदम उठाना चाहिए। कई tools graphics programming के अलग-अलग चरणों को abstract कर देते हैं, इसलिए शुरुआत से ही low-level code पर बहुत ज़्यादा समय खर्च करने का जोखिम रहता है। साथ ही, कुछ industry sectors में Unity, TouchDesigner, three.js, After Effects जैसे tools इस्तेमाल होते हैं और C++ लगभग इस्तेमाल ही नहीं होता। गहरी समझ महत्वपूर्ण है, लेकिन असली industry में काम करते हुए सीखना ज़्यादा प्रभावी होता है।
  • एक graphics programmer को जिन चीज़ों की जानकारी होनी चाहिए, उनमें programming और API से आगे की समझ शामिल है। जैसे rotation, view, projection matrices, vector math, shader programming, procedural primitives, image compositing, forward और deferred rendering, sampling techniques, shadow और lighting techniques, 3D apps से data extract करने के तरीके, profiler और debugger का उपयोग, Siggraph papers पढ़ना, spatial partitioning और volume hierarchy techniques, एक सरल ray tracer बनाना, primitives की बुनियादी समझ, particles और simulation का अनुभव आदि।
  • Pikuma का 'Graphics From Scratch' course recommend किया गया है। यह SDL का उपयोग करके set_pixel function लिखने से शुरू होता है, और फिर सभी matrix operations, vertex transforms, और triangle rasterization को सीधे code में लिखवाता है। इससे हर pixel का रंग कैसे calculate होता है, यह सीखने को मिलता है।
  • DX/VK/OGL से शुरुआत करने के अलावा भी graphics programmer बनने के कई रास्ते हैं। C++ का बिल्कुल उपयोग न करना भी संभव है। उदाहरण के लिए, 3Blue1Brown Python में शानदार 3D graphics बनाता है। अगर game engine लिखना है तो DirectX या Vulkan सीखें, और अगर browser application लिखनी है तो WebGL सीखें। ये APIs भारी-भरकम हैं और graphics के बारे में उतना नहीं सिखा सकतीं। अगर graphics concepts सीखने हैं, तो किसी भी language में अपना rasterizer और ray tracer लिखें। Processing, PlotDevice.io, NodeBox, DrawBot, ShaderToy आदि जैसे कई graphics libraries और coding environments हैं जो beginners के लिए accessible और मज़ेदार हैं।
  • Shadertoy पर shader लिखकर graphics programming सीखी जा सकती है। बहुत से graphics programmers ने यहीं से शुरुआत की है। SDF, ray marching, noise functions आदि पर 10 से अधिक tutorials बनाए गए हैं।
  • graphics programming industry में वास्तव में इस्तेमाल होने वाले resources साझा किए गए हैं। graphics का क्षेत्र इतना बड़ा हो चुका है कि सभी लोगों के लिए एक ही learning path उपयुक्त नहीं हो सकता। अगर graphics सीखना है, तो mentor ढूँढ़ना अच्छा रहेगा।
  • computer graphics में सैकड़ों specialized fields हैं, और वह वेबसाइट केवल programming graphics SDKs के एक छोटे हिस्से पर ध्यान देती है।
  • लेखक game developer है, लेकिन graphics programmer नहीं। वह modern graphics APIs और GLSL shaders का उपयोग करता है, लेकिन जब कोई 13 साल का बच्चा Scratch या Python से C++ की ओर जाना चाहता है, तो उसे 1999 से पास रखी OpenGL 1.2 DLL का उपयोग करके सरल code लिखवाता है। यह modern APIs के जटिल setup की तुलना में कहीं ज़्यादा मज़ेदार है। उस बच्चे की रुचि Voronoi diagrams जैसे computational geometry में है, इसलिए graphics API केवल एक माध्यम है। C++ और पुराने OpenGL की performance, Scratch की तुलना में कहीं तेज़ है। एक simple API के साथ C++ और OpenGL को साथ में सीखना काफ़ी ambitious challenge है। यह simplicity सीखने की प्रक्रिया को manageable बनाए रखती है, और चीज़ें अच्छी तरह आगे बढ़ रही हैं। उसे एक शानदार marching squares demo बनाने में मदद मिली, और runtime पर parameters बदलने के लिए IMgui menu भी जोड़ा गया।
  • एक व्यक्ति ने अपनी personal journey साझा की। उसने दो साल पहले कई tutorials और YouTube videos का अनुसरण करके अपना पहला 3D engine बनाया। वह बहुत simple है, लेकिन उसे सरल चीज़ें पसंद हैं। वह अब इसी engine का उपयोग करके एक city-building game बनाने पर काम कर रहा है। matrices और cross product का उपयोग करके चीज़ों को manipulate करना सीखना बहुत मज़ेदार रहा।
  • BASIC programming language में लिखे गए simple graphics code का एक उदाहरण दिया गया है.