मैं वर्तमान में कंप्यूटर विज्ञान के लिए कॉलेज जा रहा हूँ। हालांकि मैं एक छोटे गेम को बनाने के लिए किसी बिंदु पर मौजूदा इंजन का उपयोग करने की योजना बना रहा हूं, मेरा उद्देश्य अभी मूल सिद्धांतों को सीखने की ओर है: अर्थात्, 3 डी प्रोग्रामिंग। मैंने DirectX और OpenGL के बीच चुनाव के बारे में पहले से ही कुछ शोध किया है, और सामान्य भावना जो उस से बाहर आई थी, चाहे आप OpenGL या DirectX को अपने प्रशिक्षण-पहियों के मंच के रूप में चुनते हों, बहुत सारा ज्ञान दूसरे प्लेटफ़ॉर्म पर स्थानांतरित करने योग्य है । इसलिए, चूंकि ओपनजीएल अधिक प्रणालियों (शायद सीखने के लिए चुनने का एक मूर्खतापूर्ण कारण) द्वारा समर्थित है, मैंने फैसला किया कि मैं पहले ओपनिंग सीखने जा रहा हूं।
OpenGL सीखने के लिए यह निर्णय लेने के बाद, मैंने कुछ और शोध किया और एक डायकोटॉमी के बारे में पाया कि मैं इस समय किसी भी तरह से अनजान था: फिक्स्ड-फंक्शन OpenGL बनाम आधुनिक प्रोग्रामेबल shader- आधारित ओपनजीएल। सबसे पहले, मैंने सोचा कि यह एक स्पष्ट विकल्प था कि मुझे shader- आधारित ओपनजीएल सीखने का चयन करना चाहिए क्योंकि यह आज उद्योग में सबसे अधिक उपयोग किया जाता है। हालांकि, मैं तब जेसन एल। मैककसन द्वारा बहुत लोकप्रिय लर्निंग मॉडर्न 3 डी ग्राफिक्स प्रोग्रामिंग पर ठोकर खाई , यहाँ स्थित है: http://www.arcsynthesis.org/gltut/
मैं परिचयात्मक बिट्स के माध्यम से पढ़ता हूं, और "इस पुस्तक के बारे में" अनुभाग में, लेखक बताता है:
"सबसे पहले, इस दृष्टिकोण के साथ जो सीखा गया है, उसे अनिवार्य रूप से छोड़ दिया जाना चाहिए जब उपयोगकर्ता एक ग्राफिक्स समस्या का सामना करता है जिसे प्रोग्रामबिलिटी के साथ हल किया जाना चाहिए। प्रोग्रामबिलिटी लगभग सभी निश्चित फ़ंक्शन पाइपलाइन को मिटा देती है, इसलिए ज्ञान आसानी से स्थानांतरित नहीं होता है।"
अभी तक एक ही समय में यह भी तय करता है कि नियत-कार्यक्षमता, शुरुआती लोगों के लिए एक आसान और अधिक सीखने की अवस्था प्रदान करती है:
"निश्चित फ़ंक्शन पाइपलाइन का उपयोग करके आमतौर पर नियोफ़ाइट ग्राफिक्स प्रोग्रामर को पढ़ाना सबसे आसान माना जाता है।"
स्वाभाविक रूप से, आप देख सकते हैं कि मुझे किस विरोधाभास के बारे में जानने के लिए संघर्ष किया जा सकता है: क्या मैं निश्चित-कार्यक्षमता के तरीकों को सीखने में बहुत समय बिताता हूं (और बाद में अनलिस्टिंग), या क्या मैं shaders के साथ शुरुआत करना चुनता हूं? मेरी प्राथमिक चिंता यह है कि आधुनिक प्रोग्रामेबल शेडर्स को किसी तरह प्रोग्रामर को पहले से तय फंक्शन पाइपलाइन को समझने की आवश्यकता होती है, लेकिन मुझे संदेह है कि ऐसा ही हो।
टीएल; डीआर = एक महत्वाकांक्षी गेम ग्राफिक्स प्रोग्रामर के रूप में, फिक्स्ड-कार्यक्षमता या आधुनिक शेडर-आधारित प्रोग्रामिंग के माध्यम से 3 डी प्रोग्रामिंग सीखना मेरा सबसे अच्छा हित है?