ग्राफिक्स एपीआई से पहले 3 डी सिद्धांत? [बन्द है]


19

मैं एक सॉफ्टवेयर इंजीनियर हूं और मैं खेल के विकास की दिशा में अपना करियर बनाने की उम्मीद कर रहा हूं। मैं अभी C ++ / DirectX का उपयोग करके 2D पर एक पुस्तक पढ़ रहा हूं। जब मैं 3 डी में आता हूं तो मुझे पता है कि मैं इसे सही तरीके से करना चाहता हूं। उदाहरण के लिए, मुझे 3D स्पेस के बारे में कुछ नहीं पता है। इसलिए अगर मैं केवल एक एपीआई सीखता हूं तो मैं इसे जान सकता हूं लेकिन मुझे नहीं पता कि क्या मैं इसके साथ एक इंटरैक्टिव मिनी 3 डी दुनिया विकसित कर सकता हूं। मैं खुद को सफल नहीं कहूँगा बस नवीनतम शेड्स आदि के साथ एक घूमने वाला टोकरा हो सकता है। मेरे गणित कौशल ट्रिग / रैखिक बीजगणित और अभी भी कॉलेज में हैं। मुझे पता है कि अधिक गणित आना है। क्या मुझे OpenGL / Direct3D, या किसी अन्य सुझाव पर लेने से पहले 3D थ्योरी किताबों पर पढ़ना चाहिए? मुझे पता है कि एक API 3D गेम डेवलपमेंट को सिखाने वाला नहीं है और बाद में गुम नहीं होना चाहता। मैं बहुत पुस्तक-उन्मुख हूं ताकि अगर वहां भी सुझाव मिले तो ठीक है। विचारों का स्वागत है। धन्यवाद!

जवाबों:


11

दूसरी साइट पर आपको डिसाइड करने के बाद मैं जवाब देने के लिए बाध्य महसूस करता हूं :)

मैं खुद कोई पेशेवर नहीं हूं, लेकिन मैंने अपने विश्वविद्यालय में 3 डी कंप्यूटर ग्राफिक्स कोर्स किया और इससे मुझे उन एपीआई को समझने में मदद मिली, जिनका मैंने उपयोग किया।

विशेष रूप से उपयोगी चीजों के बीच:

  1. ट्रांसफॉर्मेशन मैट्रिसेस और वे कैसे काम करते हैं, न केवल ऑब्जेक्ट ट्रांसफॉर्मेशन के लिए, बल्कि ट्रांसफॉर्मेशन, पर्सपेक्टिव प्रोजेक्शन आदि को देखने के लिए भी।
  2. बिजली और छाया के पीछे का पूरा सिद्धांत, विशेष रूप से तब उपयोगी होता है जब आप छाया में डबिंग शुरू करते हैं।
  3. बनावट नमूना, mipmapping।
  4. रंग सिद्धांत और सम्मिश्रण तकनीक भी उपयोगी है।

और मैं निश्चित रूप से सोचता हूं कि ये ऐसे विषय हैं जिन्हें सिर्फ एक किताब पढ़ने से या विषय पर दो पढ़ने से उठाया जा सकता है, जब तक आपके पास गणितीय पृष्ठभूमि है।


धन्यवाद। क्या आपने इस किताब के बारे में सुना है? मैंने सुना है कि यह 3 डी सिद्धांत सिखाता है, लेकिन 3 डी सॉफ्टवेयर रेखांकन पर भी ध्यान केंद्रित करता है। मुझे लगता है कि यह अभी भी समझने में मदद कर सकता है कि क्या हो रहा है। amazon.com/…
फिल

1
@Phil rasterization महत्वपूर्ण है, लेकिन मुझे नहीं पता कि अगर मैं "टिप्स" नामक एक पुस्तक के साथ शुरू होता और "उन्नत" 3 डी डेवलपर्स को संबोधित करता ... तो बाद में पढ़ने के लिए कुछ लगता है।
ओक

मैं अभी वॉल्यूम 1 पढ़ रहा हूं और यह वॉल्यूम 2 ​​है। मैं अनुमान लगा रहा हूं कि यह आपको विलीन कर रहा है, लेकिन मैंने इसे कभी नहीं देखा। मुझे पता है कि वह "उन्नत" कहते हैं, लेकिन अधिकांश कहते हैं कि यह नहीं है। मैं इसे सूची में रखूँगा :)
फिल

1
रे ट्रेसिंग भी एक और दिलचस्प विषय है, लेकिन वास्तविक समय के खेल के लिए बहुत धीमा है
ब्रायन डेनी

@Byran +1 इसका उल्लेख करने के लिए। यह हालांकि यह पूर्व-गणना प्रकाश व्यवस्था का उपयोग किया जाता है।
जोनाथन फिशऑफ

9

करके शुरू करो। इस तरह आपको पता चल जाएगा कि आपको क्या पता नहीं है।

फिर 3 डी गणित पर एक अच्छी किताब उठाओ।

मैं 'ग्राफिक्स और गेम डेवलपमेंट के लिए 3 डी मैथ प्राइमर' की सलाह देता हूं

फ्लेचर डन और इयान परबेरी द्वारा। (Wordware)

बहुत स्पष्ट, इस बिंदु पर, प्रासंगिक - सी ++ कोड और सभी के साथ।

अंक, वैक्टर, परिवर्तन आदि की मूल बातों के बारे में जानना बहुत महत्वपूर्ण है।

लेकिन इसका मतलब यह नहीं है कि आपको गोता लगाने से पहले इसका अध्ययन करना चाहिए। :)


3

मैंने कॉलेज में (1-2 साल पहले) कंप्यूटर ग्राफिक्स क्लास में इंट्रो लिया और कोर्स की वेबसाइट अभी भी जारी है। PowerPoint स्लाइड के बहुत सारे अभी भी हैं जो आपको उपयोगी और उपयोगी लग सकते हैं। विषय 2 डी और 3 डी ग्राफिक्स सिद्धांत दोनों को कवर करते हैं।


2

मैं आपके साथ एक ऐसी ही नाव में हूँ (हालाँकि मैं तकनीकी रूप से उन सामानों को पुनः प्राप्त कर रहा हूँ जिन्हें मैं कॉलेज में जानता था), और मेरा समाधान यहाँ पर " गुड 3 डी मैथ थ्योरी बुक्स " प्रश्न में वर्णित पुस्तकों में से कई की जाँच करना है। यदि आप एक पुस्तक सीखने वाले हैं जो आपके लिए जाने का एक अच्छा तरीका हो सकता है। खासकर यदि आपके कॉलेज में वास्तव में एक अच्छा 3 डी ग्राफिक्स कोर्स नहीं है (मेरा नहीं)।


2

हम्म, जब मुझे अपना पहला 3 डी गेम लगभग 15 साल पहले बनाना था (जैसा कि यह मेरा काम था, जो इसे बनाए रखने में मदद करता है) मुझे हाई स्कूल गणित के अलावा कोई भी 3 डी ज्ञान नहीं था। यदि आपको पहेली को सुलझाने और पढ़ने का शौक है, तो आप इसका अधिकांश कारण अपने आप से और इंटरनेट की मदद से ले सकते हैं (comp.graphics.algorithms faq)। मैंने ओपनजील बाईबिल और http://www.amazon.com/Computer-Graphics-Principles-P Practice-2nd / dp / 0201848406 पढ़ा(चेतावनी oldskool) के रूप में वे वैध पृष्ठभूमि जानकारी देते हैं। यदि आप इसे इस तरह करते हैं तो आप गलत तरीके से शुरू कर सकते हैं, लेकिन एक ऐसे बिंदु पर जिसका आप या तो सपना देखेंगे, या बेहतर समाधान करेंगे। यदि आपकी 2d समझ अच्छी है तो अधिकतर 3D समस्याओं को हल किया जा सकता है। सामान्य ट्रिगर, पाइथागोरस, मेट्रिसेस और इन्वर्स / ट्रांसपोज़ (प्रोजेक्शन के लिए), डॉट और क्रॉस प्रोडक्ट में जोड़ें और आप उन्हें किस लिए उपयोग करते हैं, क्वाटरनियन्स (उन्हें समझने की ज़रूरत नहीं है, बस उन्हें कैसे उपयोग करना है - आप इसके बिना कर सकते हैं। आजकल मूल शब्दावली का हिस्सा हैं), और आप उन सभी समस्याओं को हल कर सकते हैं जो आपको आती हैं। जैसा कि आप जाते हैं आप बेहतर तरीकों से टकराएंगे, लेकिन वे कुछ भी हल कर सकते हैं। सबसे अच्छा तरीका है अपने आप को अपनी समझ से बाहर एक लक्ष्य निर्धारित करना और अपने आप को वहाँ पहुँचने के लिए मजबूर करना। जिन समस्याओं में आप भाग लेते हैं, वे हैं जो आपको सीखने की जरूरत है, और हे, तुम '


2

वोल्फेयर गेम्स ब्लॉग में हाल ही में गेम डेवलपर्स के लिए रेखीय बीजगणित पर ट्यूटोरियल की एक उत्कृष्ट श्रृंखला है।

एपीआई को सीखना शुरू करने से पहले आपको गणित को समझना महत्वपूर्ण है। अन्यथा, API कॉल का क्रम और उद्देश्य आपके लिए बहुत मायने नहीं रखेगा। आपको यह समझने की आवश्यकता है कि पहले गणित स्तर पर वे आपके लिए क्या कर रहे हैं।


1

मेरा सुझाव है कि आप गेम इंस्टीट्यूट में दाखिला लें , विशेष रूप से ग्राफिक्स प्रोग्रामिंग के साथ डायरेक्टएक्स 9 पाठ्यक्रम।

यदि आप सिर्फ आत्म-सीखना चाहते हैं, तो आपको सहभागी कक्षाओं में भाग लेने की आवश्यकता नहीं है।

वैसे, बहुत कम अतिरिक्त राशि के लिए मुद्रित पुस्तकें प्राप्त करने का विकल्प भी है। वे इसके लायक हैं।

मैंने कुछ साल पहले और पाठ्यक्रमों में बहुत कुछ किया था, हालांकि थोड़ी पुरानी-खोपड़ी वास्तव में काफी अच्छी हैं और मैं उन्हें अत्यधिक पर्याप्त सलाह नहीं दे सकता - प्लस गैरी सिमंस वास्तव में एक अच्छा लड़का है।


1

सबसे ऊपर सिर्फ सामान बनाने की कोशिश करें। सबसे पहले और सबसे आगे कूदो। अन्यथा आप सिद्धांत के विशेषज्ञ बन जाएंगे, लेकिन अभ्यास के नहीं।

यदि आपको लगता है कि आप वास्तव में ग्राफिक्स के बारे में भावुक हैं, तो कल्पना करें कि आप अपने जीवन के अधिकांश समय नई सामग्री सीखना जारी रखेंगे। इसकी तरह आप शुरू करने से पहले अपनी जरूरत की हर चीज नहीं सीख सकते। यह सिर्फ उस तरह से काम नहीं करता है।

जैसा कि आप 3 डी ग्राफिक्स के गणित के बारे में अधिक से अधिक सीखते हैं, आप महसूस करेंगे कि कंप्यूटर ग्राफिक्स का कोई गणित नहीं है, केवल गणित है। अपने आप को अपने आप को गणित सिखाने का तरीका जानें । फिर आप नई तकनीकों को पचाने में सक्षम होंगे क्योंकि वे साहित्य में प्रस्तुत किए जाते हैं।

जैसा कि ग्राफिक्स प्रौद्योगिकियां विकसित होती हैं, हम विभिन्न गणितीय तकनीकों को उधार लेंगे। आज जो लोकप्रिय है वह कल लोकप्रिय नहीं हो सकता।

यहाँ कुछ चीजें हैं जो समान रहने वाली हैं।

अभी मुझे कंप्यूटर विज्ञान के लिए ज्यामितीय बीजगणित में सामग्री बहुत दिलचस्प लग रही है, और यह सोचें कि कंप्यूटर ग्राफिक्स के लिए वे जिस दृष्टिकोण से लेआउट करते हैं, उसके साथ शुरू करना बेहतर हो सकता है। http://www.amazon.com/Geometric-Algebra-Computer-Science-Object-Oriented/dp/0123694655

पुस्तक बहुत सरल तरीके से चतुर्भुज जैसी चीजों की व्याख्या करती है, और आपकी गणितीय पृष्ठभूमि और रुचियों के आधार पर आपके लिए सहायक हो सकती है।


1

"कंप्यूटर ग्राफिक्स" पुस्तकों के लिए मत जाओ। रैखिक बीजगणित से शुरू करें - यह आपकी ज़रूरत की हर चीज़ की नींव रखता है। MIT का एक अच्छा वीडियो कोर्स है: http://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2005/

वहां से, यह कंप्यूटर ग्राफिक्स पर किसी भी परिचयात्मक पाठ को लेने के लिए सीधे आगे होना चाहिए। UoWashington में ऑनलाइन एक कोर्स है (कोई वीडियो नहीं है, हालांकि): http://www.cs.washington.edu/education/courses/457/06au/lectures/

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


1

यदि आप यह समझना चाहते हैं कि एक पारंपरिक सॉफ्टवेयर रेंडरिंग पाइपलाइन कैसे काम करती है (और प्रोग्राम प्रोग्राम हार्डवेयर पाइपलाइनों की शुरुआत के साथ भी बहुत कुछ नहीं बदला है), तो एक पुस्तक जो मैं निश्चित रूप से सुझाऊंगा वह जिम ब्लिन की है: ए ट्रिप डाउन द ग्राफिक्स पाइपलाइन।

अन्य सुझावों में से कुछ के विपरीत, यह विशेष रूप से व्यापक नहीं है, लेकिन यह बहुत पठनीय है और मुझे लगता है कि यदि आप अभी 3 डी के साथ शुरू कर रहे हैं, तो यह एक अच्छा परिचय है। और यह जिम ब्लिन द्वारा लिखा गया है, जो कंप्यूटर ग्राफिक्स के संस्थापक पिता में से एक है, और इस प्रकार किसी के दृष्टिकोण से लिखा गया है जिसने वास्तव में इन तकनीकों का आविष्कार / खोज की थी।


1

मैं कई वर्षों से अपने विश्वविद्यालय में ग्राफिक्स पाठ्यक्रम के लिए टीए था। मैंने सिलेबस सेट किया है, और सॉफ्टवेयर rasterifications और छायांकन, Java3D, OpenGL, आदि जैसी चीजों को कवर किया है। इसके कुछ समय बाद, अपने समय में मैंने अपने स्वयं के संपादन के लिए एक रे-ट्रेसर लिखने का फैसला किया। यह एक अविश्वसनीय अनुभव था - एक फ्रेम बफ़र और एक पुटिक्सल (x, y, रंग) दिनचर्या के साथ, 500 लाइनों में मेरे पास गोले, त्रिकोण, प्रति पिक्सेल छायांकन, छाया, आदि के साथ एक छवि उत्पन्न करने के लिए कोड था, अगर मेरे पास था। पाठ्यक्रमों के लिए प्रशंसा फिर से करें, मैं जोर देकर कहूंगा कि छात्र एक किरण-अनुरेखक करें। रास्टराइज़र बनाते समय, स्कैनलाइन एल्गोरिथ्म के विवरण में फंसना आसान होता है, या ऐसा लगता है कि आप 3D API का उपयोग करके ब्लैक बॉक्स के माध्यम से काम कर रहे हैं।

ग्राफिक्स सैंडबॉक्स तक त्वरित, ठोस पहुंच के लिए, मैं आपको अपना स्वयं का रे-ट्रेसर लिखने की सलाह देता हूं। जाहिर है, यह वास्तव में 3 डी ग्राफिक्स के उत्पादन में आमतौर पर इस्तेमाल होने वाली चीज़ों से बहुत दूर है, लेकिन यह सिद्धांत को देखने और सीखने का एक बहुत ही सहज और कॉम्पैक्ट तरीका है।


1

मैं वर्तमान में आपके जैसा ही कर रहा हूं, और कंप्यूटर ग्राफिक्स और गणित पर कुछ किताबें पढ़ने के बाद आईट्यूएसयू पर कंप्यूटर ग्राफिक्स का सीएससीआई 234 परिचय वास्तव में मददगार साबित हुआ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.