Author: bolMJ

मी महेश जाधव ....MJ.. :) माझा छंद : http://bolmj.wordpress.com संपर्क पत्ता :mahesh7197@gmail.com धन्यवाद!!

‘C’ प्रोग्रामिंग भाषा शॉर्ट नोटस्‌ मराठीतून !


  • C प्रोग्रामिंग भाषा उजळणी नोटस्‌ व महिती मराठीतून.
  • ALGOL –BCPL या नंतर उदयाला आलेली प्रोग्रामिंग भाषा म्हणजे C.

    वैशिष्ट्ये व महत्त्वाचे मुद्दे :

  • फास्ट, वापरण्यास सोपी, तयार फंक्शन्स व पद्धतशीर प्रोग्रामिंग करण्याची सोय तसेच सर्वच कॉम्प्युटर वर चालणारी भाषा.
  • main फंक्शन ने प्रोग्रम ची सुरवात, प्रोग्रम मध्ये एकाच main;ते काहीच रीटर्न करणार नसल्याने Void  असे डिक्लेअर केले जाते.
  • printf आणि scanf  ही प्रोग्रामिंग मध्ये तयार फंक्शन ; प्रिंट करण्यासाठी व  कि बोर्ड वरून डाटा घेण्यासाठी वापरतात.
  • व्हेरिएबल प्रिंट करण्यासाठी printf(“ %d “, व्हेरिएबल चे नाव) वापरतात.
  • कॉनस्टंट व्हेल्यू डिफाईन करण्यासाठी  # define वापरतात.जसे # define n=0.
  • काही ठराविक काम करण्यासाठी main प्रोग्रम  मध्ये आणखी एक उप प्रोग्रम असतो त्यास फंक्शन म्हणतात.
  • c भाषेतील प्रोग्रम हा अनेक फंक्शन्सनी बनलेला असतो.
  • फंक्शन काम झाल्यावर उत्तर परत करतो ते  return() द्वारे करतो.
  • प्रोग्रमला लागणारी काही फंक्शन मिळवण्यासाठी ती डॉट एच फाईल इन्क्लुड केली जाते. त्यास #include   असे फंक्शन गणितातील तयार फंक्शन्स प्रोग्रम मध्ये वापरू देतात.
  • C मध्ये प्रोग्रम लिहिला असेल व तो रन करण्यासाठी प्रोग्रम प्रथम कंपाईल करून त्यातील चुका चेक करतात नंतर त्या प्रोग्रम संबधित फाईल लिंक केल्या जातात नंतर त्या रन करण्यास योग्य ऑब्जेक्ट कोड मध्ये रुपांतरीत केल्या जातात.
  • प्रोग्रम मध्ये नवीन ओळीत लिहिण्यासाठी \n प्रिंट केले जाते तर थोडी मोकळी जागा सोडण्यासाठी \t प्रिंट केले जाते.
  • char –अक्षरे, float –अपूर्णांक ,int – पूर्ण संख्या हे डाटा टाईप डाटा नुसार वापरले जातात (%c,%f,%d)
  • प्रथम आपला व्हेरिएबल कोणत्या प्रकारात आहे ते घोषित केले जात व त्यास व्हेल्यू ठेवली जाते.
  • scanf फंक्शन वापरताना & हे चिन्ह व व्हेरिएबल चे नाव वापरले जाते.कि बोर्ड वरून यामुळे व्हेरीअएबलला दिलेली संख्या स्टोअर केली जाते.
  • कमी जागा असणाऱ्या व्हेरिएबल मध्ये मोठा व्हेरिएबल स्टोअर केल्यास तो ओव्हरफ्लो होतो व डाटा वाया जातो.
  • ++ हे व्हेरिएबल च्या आधी लिहिल्यास आधी व्हेल्यू एक ने वाढते व नंतर ती वापरली जाते व हे चिन्ह व्हेरिएबलच्या नंतर वापरल्यास  आधी  व्हेल्यू वापरली जाते व नंतर ती एक ने वाढते.
  • जास्त प्रायोरिटी *,/,% यांना असते तर कमी प्रायोरीटी +,- यांना असते.
  • कि बोर्ड वरून दिलेले एकच अक्षर मिळवण्यासाठी  getchar() फंक्शन वापरतात व एक अक्षर स्क्रीन वर दर्शविण्यास  putchar() वापरतात.
  • % 7.4f  म्हणजे ७ आकडे  व एक पॉइंट साठवले व दर्शविले जातील ; त्यात ४ आकडे पॉइंटच्या पलीकडे असतील (98.7654).
  • if (बरोबर) काम चालू अन्यथा else मधील काम चालू.
  • अनेक पर्याय व त्यानुसार वेगवेगळी कामे असे असल्यास switch वापरतात यात उत्तर कोणत्या  case  बरोबर जुळते त्या केस चा कोड चालतो अन्यथा default  मध्ये लिहिलेला कोड रन होतो.
  • goto lable  मुळे जेथे लेबल लिहले आते तेथे डायरेक्ट प्रोग्रम कंट्रोल जातो व तिथून परत प्रोग्रम रन होतो.
  • while लूप म्हणजे जो पर्यंत कंडीशन येत नाही तो पर्यंत दिलेले काम करत रहा.
  • do आणि while जोडी मध्ये do आधी डिक्लेअर केला जातो व शेवटी while  व कंडिशन्स दिली जाते.कंडीशन पुर्ण होत नाही तोपर्यंत यामधील प्रोग्रम लूपमध्ये  फिरत राहतो.
  • for  लूप मध्ये फॉर(सुरवातीची संख्या , कंडीशन चेक करणे ,काउंट वाढवणे) असे चक्र चालू असते.
  • लूप मधून बाहेर पडण्यासाठी  break; स्टेटमेंट वापरतात.
  • समान डाटा टाईप चा एक संच म्हणजे अँरे होय.
  • अँरे लिहिताना त्याचे नाव ,त्याचा प्रकार व किती काउंट लिहिला जातो.int num [3];.
  • अँरे हा रो व कॉलम यांच्या टेबल रुपात मांडण्यासाठी द्विमितीय रुपात लिहिला जातो जसे  int product [2][5].
  • कँरेक्टरचा अँरे हा अक्षरांचा संच एकत्र ठेवण्यासाठी वापरतात.
  • दोन ओळी जोडण्यासाठी strcat() फंक्शन,दोन ओळी कम्पेअर करण्यासाठी strcmp() फंक्शन वापरतात.
  • एक ओळ दुसऱ्या ओळीमध्ये कॉपी करण्यासाठी strcpy() फंक्शन व ओळीची लांबी मोजण्यासाठी strlen()  हे फंक्शन वापरतात.
  • मोड्ल्युलर प्रोग्रामिंग म्हणजे फंक्शन्सचा वापर करून एका एक मोड्युलच्या तुकड्याने प्रोग्रम लिहिणे.
  • main  मध्ये फंक्शन डिफाईन केले जाते व फंक्शनला काही अर्ग्युमेंट पाठवून ते कॉल केले जाते.
  • फंक्शन आपले काम करते व तयार झालेले आउटपुट रिटर्न करते.रिटर्न केले आउटपुट हे फंक्शनच्या टाईपचे असते.
  • external  म्हणून डिफाईन केलेले व्हेरिएबल हे main च्या बाहेर असून सर्व प्रोग्रम मध्ये वापरले जाऊ शकते.
  • static  व्हेरिएबल हे एका फंक्शन मध्ये एकदाच कॉल होते.
  • register  या व्हेरिएबलचा वापर प्रोसेसरच्या रेजिस्टर मध्ये संख्या ठेवण्यास होते जी संख्या प्रोग्रममध्ये फास्ट मेमरीसाठी वापरली जावू शकते.
  • वेगवेगळ्या डाटा टाईप चा एकत्रित डिफाईन केलेला संच म्हणजे स्ट्रक्चर.
  • अँरेमध्ये एकाच डाटा टाईप असतो तर स्ट्रक्चर मध्ये अनेक डाटा टाईप असतात.
  • स्ट्रक्चर structure लिहिताना त्याचे नाव डिफाईन केले जाते व  त्या स्ट्रक्चर चे व्हेरिएबल सुद्धा तयार केले जातात.
  • स्ट्रक्चर मधील व्हेरिएबल मेंबर हे डॉट चा वापर करून कॉल केले जातात.person1.name.
  • स्ट्रक्चरमध्ये दोन डाटा टाईप जोडताना एक बीट एवढी मोकळी जागा ठेवली जात त्यास slack  बीट असते म्हणतात.
  • दोन स्ट्रक्चर कम्पेअर करता येत नाहीत तर त्या मधील मेंबर कम्पेअर केले जातात व जर ते सारखे सतील तर स्ट्रक्चर सेम आहे असे ठरवले जाते.
  • स्ट्रक्चरमध्ये ही दुसरे स्ट्रक्चर डिफाईन करता येते त्यातील मेंबर कॉ ल करताना ते p1.p2.memberअसे दोन डॉट च्या मदतीने वापरले जातात.
  • स्ट्रक्चरमधील मेंबर स्वतंत्र स्टोअर केले जातात तर union मध्ये सर्व मेंबर्सना  एकाच मेमरी लोकेशन असते.
  • युनियनमधील मेमरी लोकेशन हे त्यातील सर्वात जास्त मेमरी लागणाऱ्या मेंबर इतके असते व बाकी मेंबर एक एक करून ते लोकेशन वापरतात.
  • एखाद्या स्ट्रक्चरची टोटल साईझ काढून ती पुढे फंक्शन मध्ये वापरण्यासाठी sizeof() फंक्शन वापरतात.
  • पॉइंटर हा त्याच्या व्हेरिएबलचे मेमरी लोकेशन स्टोअर करतो.
  • pointer  हा C  मधील सर्वात उपयुक्त व पॉवरफुल डाटा टाईप आहे.
  • पॉइंटर हा * या चिन्हाचा वापर करून दर्शवितात *P  म्हणजे पॉइंटर व्हेरिएबल  हा p  हा मेमरी लोकेशनला पॉईंट करतो.
  • p=&quantity;  म्हणजे P हा quantity  व्हेरिएबल जेथे ठेवले आहे त्याच्या मेमरी लोकेशनला पॉईंट करून त्या लोकेशन मध्ये साठवलेली व्हेल्यू बदलू शकतो.
  • पॉइंटरमध्ये संख्या मिळवू किंवा कमी करू शकतो; तसेच दोन पॉइंटर एकमेकांतून वजा करू शकतो पण दोन पोइंटरची बेरीज किंवा गुणाकार होत नाही.
  • आपण अँरेचा किंवा स्ट्रक्चरचा पॉइंटर डिफाईन करून त्यातील संख्या पॉइंटर व्हेरिएबल च्या मदतीने मेमरी लोकेशनला जावून बदलू शकतो.
  • पॉइंटर एक ने वाढवल्यास तो त्याच्या डाटा टाईपच्या साईझ इतका वाढतो.
  • (*p)(x,y) यास फंक्शन पॉइंटर म्हणतात.
  • स्ट्रक्चर मधील मेंबर पॉइंटरचा वापर करून  ptr->name किंवा  (*ptr).name असे आले जातात.
  • फाईल ओपेन करणे या फंक्शन मध्ये फाईल नाव बरोबर ती रीड किंवा राईट मोड मध्ये उघडायची आहे ते ही लिहिले जाते.
  • फाईल बंद करतान फक्त फाईल पॉइंटर लागतो ज्याचा वापर करून त्या पॉइंटर ला जोडलेले मेमरी लोकेशन मोकळे केले जाते.
  • फाईल मधील करेक्टर घेण्यासाठी getc व   साठवण्यासाठी putc फंक्शन वापरले जाते.
  • फाईल ऑपरेशन्स साठी खास fprintf आणिfscanf ही सुधारित फंक्शन्स फाईल मधील डाटा प्रिंट करण्यासाठी किंवा वाचण्यासाठी वापरली जातात.
  •  ferror व feof या फंक्शन चा वापर करून फाईल मध्ये चुका आहेत का ते शोधले जाते.
  • फाईल पोइंटर सुरवातीला नेह्ण्यासाठी rewind फंक्शन वापरतात.फाईल पॉइंटर थोड्या अंतरावर मागे किंवा पुढे करण्यासाठी fseek  फंक्शन वापरतात.
  • append  फंक्शनचा वापर करून आधीच्या फाईल मध्ये बदल न करता आपला नवीन डाटा त्या पुढे जोडला जातो.
  • कमांड लाईन द्वारा पँरामिटर पास करता येवू शकतात त्यासाठी main फंक्शन ला पँरामिटर दिले जावू शकतात.
  • फाईल चा शेवट एन्ड ऑफ फाईल म्हणजे -१ ने करतात.
  • स्ट्रिंग चा शेवट नल म्हणजेच \० ने होतो.
  • प्रोग्रम चालू असताना मेमरी अलोकेट करण्यासाठी malloc  फंक्शन वापरतात यात मेमरी अलोकेशन साईझ दिला जातो.
  • समान साईझ चे मेमरी ब्लॉक अलोकेट करण्यासाठी calloc फंक्शन वापरतात.
  • free  फंक्शन च वापर करून पॉइंटर ची मेमरीतील जागा मोकळी केली जाते.
  • परत मेमरी वाढवण्यासाठी किंवा कमी करण्यासाठी realloc  फंक्शन वापरतात.
  • लिंक लिस्ट मध्ये एक स्ट्रक्चर दुसऱ्या स्ट्रक्चरशी लिंक ने जोडले असते ते मेमरीत सलग असतीलच असे नाही.यात पॉइंटर चा वापर करून लिंक प्रस्थापित केली जाते.*next , node.next.
  • लिन्कड लिस्ट मध्ये हवी तेवढी मेमरी हवी तेंव्हा वापरेली जाते या मुळे मेमरी ची बचत होते.
  • दोन्ही बाजूंनी लिंक्स जोडण्यासाठी डबल लिन्क लिस्ट चा वापर होतो यामुळे पॉइंटर पुढे किंवा मागे करू शकतो यसाठी प्रत्येक नोड ला दोन लिन्क लागतात.
  • तसेच पहिला नोड हा शेवटच्या नोडला जोडून सर्क्युलर लिन्क लिस्ट ही तयार करता येते.

वरील मुद्दे वाचून आपण  सी प्रोग्रामिंग भाषेची रिव्हीजन करू शकता.आपणस ह्या नोट्स कशा वाटल्या हे नक्कीच कळवा.

धन्यवाद !
MJ :)

भाग २] डायरेक्ट एक्स टेक्नोलॉजी : अंतर्गत सविस्तर महिती.


मायक्रोसॉफ्ट च्या सुपीक डोक्यातून आलेली संकल्पना : प्रोग्रामर्सना हार्डवेअरचा डायरेक्ट वापर करण्यापासून व त्यापासून होणाऱ्या अडचणी पासून थांबवणे व त्यांना वापरण्यास उपयुक्त कॉमन टूल किट तयार करणे या संकल्पनेतून DirectX चा जन्म झाला.

डायरेक्ट एक्स मुळे एक कॉमन स्टेनडर्ड तयार झाला जो गेमिंग अप्लिकेशन व मल्टिमीडिया अप्लिकेशन तयार करणाऱ्यांसाठी मोलाचा ठरू शकतो यामुळे डेव्हलपर्स चे काम सोईचे झालेच तसेच गेम खेळणाऱ्या व व्हिडिओ पाहणाऱ्या साठी काही सर्व काही गोष्टींची काळजी आपोआप घेतली जावू लागली .

डायरेक्ट एक्स बद्दल बेसिक महिती आपण मागील भागात पहिली आहेच. [भाग १ :Direct-X टेक्नोलॉजी म्हणजे काय ? पाहण्यासाठी येथे टिचकी मारा]

या भागात आपण डायरेक्ट एक्सचे अंतरंग व त्यातील प्रमुख विभागांची महिती पाहूया.

ऑपरेटिंग सिस्टीम व हार्डवेअर यांच्यातील दुवा म्हणून डायरेक्ट एक्स काम करतो. हा विंडोज अप्लिकेशन प्रोग्रामिंग इंटरफेस आहे.

ग्राफिक्स स्क्रीन वर दाखवणे यात प्रामुख्याने DirectX वापरतात.3D व 2D तयार करणे व ते स्क्रीन वर दाखवणे यासाठी Direct3D वापरतात.

डायरेक्ट एक्सचे प्रोब्लेम  शोधणारे टूल :

मायक्रोसोफ्टने डायरेक्ट एक्सशी निगडीत प्रोब्लेम शोधण्यासाठी DirectX Diagnostic Tool नावाचे टूल विकसित केले आहे.

रन डायलॉग बॉक्स मध्ये “dxdiag” कमांड टाईप करून ओक बटन दाबावे.

अप्लिकेशन लोड होण्यास थोडा वेळ घेते व ते डायरेक्ट एक्स बरोबर संभाषण करून प्रोब्लेम काय आहे ते दर्शविते.

DirectX Files नावाचा टेब प्रत्येक इन्स्टॉल केलेल्या फाईल व्हर्जन ची महिती देतो . खालील नोट सेक्शन हरवलेल्या व खराब झालेल्या फाईल बद्दल महिती देतो.

टूल चे छायाचित्र पाहण्यासाठी   येथे टिचकी मारा.

Direct3D हे DirectX चा API म्हणून कसे काम करते ते आपण पाहू:

Direct3D हा मार्केट मधील प्रसिद्ध  3D API आहे .

Direct3D अप्लिकेशन ग्राफिक्स हार्डवेअर अक्स्लेरेशेन डिव्हाईस (ग्राफिक्स कार्ड)मायक्रोसॉफ्ट विन ३२ एन्व्हायर्नमेंट सोबत काम करते.

ते HAL  प्रोटोकोल चा वापर करून हार्डवेअर कडून महिती घेतात.

डायरेक्ट एक्स अंतरंग

डायरेक्ट एक्स अंतरंग

DirecX मध्ये अनेक .lib आणि .h फाईल यांनी मिळून तयार झालेली लायब्ररी असते.

COM इंटरफेस DirectX ला अनेक प्रोग्रामिंग भाषेबरोबर काम करण्यास मदत करतो.

प्रोग्रेमर्स डायरेक्ट एक्स फीचर्स काही COM इंटरफेस चा वापर करून करतात.

DirectX फंक्शन  फेल्युअर कोड रिटर्न करतो त्याची कारणे पुढील असू शकतात:

  • फंक्शनला चुकीचे इनपुट मिळणे.
  • फंक्शन कॉल झालेले असताना ओब्जेक्ट फुल्ल इनिशियलाइझ नसतील.

अशा वेळी आपणास प्रोग्रम थाबवला जाऊन एरर्सची फाईल ,लाईन व एरर्स कोड दर्शविला जातो ; जेणेकरून आपण ती चूक दुरुस्त करू शकतो.

रिटर्न कोड हा HRESULT या टाईप मधील ३२ बीट व्हेरिएबल द्वारे दाखवला जातो.

Direct3D आर्किटेक्चर :

Direct3D ग्राफिक्स पाईप लाईन : Direct3D रेंडरींग सिस्टीम च्या आर्किटेक्चर ची अंतर्गत प्रोसेसिंग पद्धत:

ग्राफिक्स  पाईप लाईन ही प्रोसेसिंग स्पीड वाढवते व हार्डवेअर चा वापर करून स्क्रीन वर ग्राफिक्स डिस्प्ले करण्यास मदत करते .

d3d pipeline

 

  • व्हरटेक्स्ट डाटा : व्हरटेक्स्ट मेमरी बफर मध्ये डाटा पोईंट वेगवेगळे केले जातात.
  • प्रिमिटिव्ह डाटा: लाईन ,त्रिकोण, चौकोन या रचनांबद्दल महिती.
  • तेसेलेशन :यात महिती  व्हरटेक्स्ट  लोकेशन रुपात साठवणे.
  • व्हरटेक्स्ट प्रोसेसिंग : व्हरटेक्स्ट मेमरी तील डाटा वर  Direct3D ट्रान्स्फॉर्मेशन प्रोसेस केले जाते.
  • जिओमेट्री प्रोसेसिंग :शेप नुसार कटिंग व आकार देणे याची प्रोसेस केली जाते.
  • टेक्स्रचर युनिट :आकाराच्या  टेक्स्रचर बाबत संपूर्ण महिती Direct3D सर्फेस चा वापर करून पुरवली जाते.
  • पिक्सल प्रोसेसिंग: सर्व माहितीचा वापर करून पिक्सल च्या रंगाबाबत महिती तयार केली जाते.
  • पिक्सल रेंडरींग : पिक्सल व्हेलू वर प्रोसेस करून पिक्सल स्क्रीन वर डिस्प्ले करणे.

Direct3D ची  सिस्टीममधील रचना:

Direct3D अप्लिकेशन व ग्राफिक्स हार्डवेअर यांच्या मध्ये कसे काम करते ते आपण पाहूया.

विंडोज ३२ अप्लिकेशन प्रथम Direct3D  ए. पी. आय. वापरून डिव्हाईस ड्रायव्हर ला महिती विचारते व त्याद्वारे ग्राफिक्स कार्ड बरोबर संभाषण साधते.

d3dx

Direct3D हा अप्लिकेशनला ग्राफिक्स डिव्हाईस वापरण्यासाठी मदत करतो.

यात ग्राफिक्स कार्ड साठी वापरणाऱ्या डिव्हाईस ड्रायव्हर मार्फत महिती ग्राफिक्स कार्ड कडून घेतली जाते.

यात Direct3D  हे HAL चा ही उपयोग करून घेवू शकते. [हार्डवेअर अबस्टरेक्शन लेयर ]याद्वारे ग्राफिक्स पाईपलाईन ला जलद होण्यास मदत होते.

तसेच Direct3D मेथड डिस्प्ले बद्दल ची  महिती मिळवून त्याचा वापर करू शकतो.

DirectX11 ग्राफिक्स पाईप लाईन :

डायरेक्ट एक्स ११ हे सर्वात आधुनिक डायरेक्ट एक्स व्हर्जन आहे .या मध्ये फार आधुनिक ग्राफिक्स रेंडरींग च्या सुविधा देण्यात आलेल्या आहेत .

तेसेलेशन  हे DirectX11 मधील  प्रमुख फीचर !!

[नोंद: लेख लिहीत असताना DX11 हे लेटेस्ट व्हर्जिन होते Dx 12  मार्केट मध्ये अजून रिलीज झालेले नाही.]

आपण पुढे डायरेक्ट एक्स ११ ची ग्राफिक्स पाईपलाईन व त्याचे अंतरंग व उपयोग पाहूया.

dx11 pipeline

 

इनपुट असेम्बलर स्टेज: या स्टेज मध्ये मेमरीतील डाटाचा वापर करून व्हरटेक्स्ट शेडर व जिओमेट्री शेडरसाठी लागणारा डाटा तयार करते.

व त्यातील  व्हरटेक्स्ट शेडरसाठी लागणारा डाटा प्रथम पाठवला जातो.

हल् शेडर: हा तेसेलेशन स्टेजचा  पहिला भाग .

यात व्हरटेक्स्ट शेडर कडून कंट्रोल पोईंटचा डाटा घेवून हल् शेडर कॉस्टंट फंक्शन वापरून किती तेसेलेशन करायचे याचा फेक्टर काढला जातो.

तेसेलेशन: यात कंट्रोल पोईंट व तेसेलेशन  फेक्टर चा वापर करून आकृतीचे लहान भागात रुपांतर केले जाते.

डोमेन शेडर : यात तेसेलेशन डाटा वर फायनल प्रोसेसींग केले जाते.

तेसेलेशन च्या प्रकारानुसार आपणस वेगवेगळा डाटा मिळतो व त्यावर आपण पुढील प्रोसेसिंग करू शकतो.

जिओमेट्री शेडर:यामध्ये आकृती तयार केली जाते.

यात त्रिकोण किंवा चोकानाच्या पोईंट वरून त्याचा आकार तयार केला जातो.

स्टीम आउटपुट : ही पर्यायी स्टेज आहे.

यात तयार पोईंट नवीन बफर मध्ये साठवण्याची सुविधा देण्यात आली आहे.

रास्टरायझर: यात डाटाचे  पिक्सल शेडर साठी लागणाऱ्या डाटात रुपांतर केले जाते.

त्यासाठी आकार कट करणे त्यास खोली देणे असे काम केले जाते.

पिक्सल शेडर :यात पिक्सल हे डिस्प्ले वर दाखवण्या योग्य बनवले जातात.

तसेच हा डाटा बफर मध्ये ही साठवला जावू शकतो.

डायरेक्ट एक्स पाईपलाईन अशातर्‍हेने मेमरीतील डाटा पिक्सल रुपात ग्राफिक्सचा वापर करून डिस्प्ले करते.

अशातर्‍हेने आपण डायरेक्ट एक्स टेक्नोलॉजीचे  अंतर्गत व डायरेक्ट एक्स ११ ची ग्राफिक्स पाईपलाईन यांची महिती पाहिली आहे.

आपणस DirectX  बद्दल बेसिक महिती व त्यातील वेगवेगळ्या भागांच्या कामाबद्दल मिळालेली महिती नक्कीच उपयोगी पडेल.

आपणस ही महिती व लेख कसा वाटला ते नक्की कळवा.

DirectX वर आधारित भागास भेट देण्यासाठी येथे टिचकी मारा.

धन्यवाद :- MJ

भाग १ ]Direct-X टेक्नोलॉजी म्हणजे काय ?


DirectX-Logo-wordmark

आपण गेमर्स असा किंवा ग्राफिक्स डिझायनर किंवा ऑटो केड इंजिनीअर किंवा सामान्य कॉम्प्युटर युजर ; आपण डायरेक्ट एक्स चे नाव किंवा डायरेक्ट एक्स आपल्या कॉम्प्युटर मध्ये इन्स्टॉल झालेले पहिले असेलच.

तर असा हा ग्राफिक्स, गेम्स ,डिस्प्ले,डिझाईन साठी महत्त्वाचा सोफ्टवेअर प्रकार नक्की काय आहे त्याचा उपयोग काय व त्यात नक्की असते तरी काय हे आपण या भागात पाहूया.

Microsoft DirectX  हे मायक्रोसॉफ्ट ने तयार केलेला (API) ए. पी. आय. चा लेयर आहे. हा लेयर कॉम्प्युटर ग्राफिक्स काम,गेम्स,व्हिडीओ यासाठी लागणाऱ्या प्रोग्रामिंग इंटरफेस चे कलेक्शन आहे.

डायरेक्ट एक्स हे डायनामिक लिंक लायब्ररी (DLL) यांचा समूह असतो. हे फंक्शन्स प्रोग्रामर्स मार्फेत मोठ्या प्रमाणात वापरले जातात. हे हार्डवेअर वर अवलंबून नसतात हे त्याचे खास वैशिठ्य !

यातील प्रोग्रम चा वापर करून फास्टर ग्राफिक्स ,आवाज ,इनपुट फंक्शन्स वापरण्यासाठी ग्राफिक्स कार्ड,नेटवर्क कार्ड  यासारख्या हार्डवेअर डिव्हाईस चा वापर फार उत्तम रीतीने केला जातो.

डायरेक्ट-एक्समुळे डेव्हलपर्सना कोणत्याही हार्डवेअरवर रन होणारा प्रोग्रम कोड बनवणे सोपे झाले यामुळे डिव्हाईस ड्रायव्हर स्टेडर्ड होण्यास मदत झाली.

अप्लिकेशन डायरेक्ट एक्सचा वापर करून हार्डवेअरशी संभाषण करून विंडोज चा वापर करून आपणास हवा तो डाटा मिळवतात.

खालील चित्रात वर्किंगची महिती दाखवलेली आहे.

डायरेक्ट एक्स कसे काम करते.

डायरेक्ट एक्स कसे काम करते.

नवनवीन गेम्स डायरेक्ट एक्सचा वापर करून आपणस गेम्स मध्ये निरनिराळे इफेक्ट दाखवून गेमचे ग्राफिक्स अधिकच मस्त बनवतात.

नवीन डायरेक्ट एक्स ग्राफिक्स गेम्स असले तरी आपण त्यात जुने डायरेक्ट एक्स कॉम्पोनंट ही वापरून गेम्स खेळू शकतो.

डायरेक्ट एक्स चा उगम:

मायक्रोसॉफ्टने डायरेक्ट एक्सचे पहिले व्हर्जिन सप्टेंबर १९९५ ला विंडोज गेम एस डी के नावाने विंडोज ९५ बरोबर रिलीज केले.त्यानंतर Direct3D व  DirectPlayच्या सोई पुरवल्यामुळे याची लोकप्रियता वाढत गेली.

डायरेक्ट एक्स आधी मायक्रोसॉफ्ट OpenGL नावाचा API  वापरत होते ; विंडोज एन टी मध्ये याचा वापर होत असे.

डायरेक्ट एक्स चे नवनवीन व्हर्जन मायक्रोसॉफ्ट नवनवीन ऑपरेटिंग सिस्टीम बरोबर पुरवत असते.जसे व्हर्जन वाढत जाते तसे नवीन सुधारित सुविधा व फिचर्स दिले जातात.

Direct-X चे  व्हर्जन्स :

याचे DirectX 9, DirectX10,DirectX11,DirectX12 अशी व्हर्जन्स सध्या आपण वापरात असतो.

  • DirectX 9 हे विंडोज एक्स पी सोबत रिलीज झाले होते.
  • DirectX10 मध्ये WDDM ड्रायव्हर आर्किटेक्चर ला सपोर्ट देण्यात आला व हे व्हिस्टा बरोबर रेलीज झाले होते.
  • DirectX11मध्ये तेसेलेशन रेंडरींग फिचर व मल्टी थ्रेड या सारख्या सुविधा देण्यात आल्या तसेच GPGPU  तंत्रज्ञानाचा वापर  करून ग्राफिक्स फिचर्स गेम डेव्हलपर्स ना देण्यात आले होते.
  • DirectX 12 मध्ये फार सुधारित ग्राफिक्स सपोर्ट देण्यात येणार आहे तसेच WDDM चे नवीन व्हर्जन पण सपोर्टेड होईल.

DircetX मध्ये खालील प्रमुख बाबींचा समावेश होतो :

डायरेक्ट एक्स चे ए पी आय फार प्रकारे वापरले जातात. Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound या सारख्या ए पी आय ला एकत्रितपणे दर्शविण्यासाठी डायरेक्ट + [इतर] म्हणजेच DirectX असे संबोधले जाते.

  • Direct3D हा थ्री डी विषयक असणारा ए पी आय चे कलेक्शन गेम डेव्हलपर ,व्हिडीओ अप्लिकेशन डेव्हलपर मस्त ग्राफिक्स इफेक्ट व फास्ट व उच्च प्रतीचे रेंडरींग करण्यासाठी वापरले जाते.
  • Direct3D (D3D)हे ३D ग्राफिक्स साठी वापरतात.
  • DirectCompute हे ग्राफिक्स कार्ड मधून कॉम्प्युटिंग साठी वापरतात.
  • DirectSound यात आवाजाच्या निगडीत ए पी आय असतात.
  • DXGI याचा वापर डिस्प्ले डिव्हाईस साठी वापरता.
  • DirectX Media याचा वापर व्हिडीओ व अनिमेशन साठी केला जातो.

DirectX लोगो:

डायरेक्ट एक्स चा लोगो हा X असा दर्शविला जातो.तो हिरव्या रंगात दाखवला जातो व त्याबरोबर त्याचे व्हर्जन सुद्धा लिहिले जाते.

लोगो:

लोगो

लोगो

नोंद : मायक्रोसोफ्ट चा गेमिंग प्लेटफॉर्म Xbox  हा डायरेक्ट एक्स वरच बेस्ड आहे. तसेच त्याचा लोगो ही X असाच आहे.

डायरेक्ट-एक्स सोफ्टवेअर डेव्हलपमेंट किट : software development kit (SDK) :

या मध्ये डेव्हलपर्सना प्रोग्रामिंगसाठी लागणारी रनटाईम लायब्ररी,कोड पार्ट ,हेडर व माहितीपत्रक यांचा समावेश असतो.

SDK मध्ये प्रोग्रामर्स साठी उपयुक्त पडणारे प्रोग्रामिंग उदाहरणार्थ दिलेले  रेफरन्स कोड असतात. SDK  हा मोफत डाऊनलोड साठी उपलब्द असतो.

पुढील लिंक वरून आपण SDK डाउनलोड करू शकतो.

लिंक: http://www.microsoft.com/en-in/download/details.aspx?id=6812

डायरेक्ट-एक्स व्हर्जन चेक :

आपल्या कॉम्प्युटर मध्ये कोणते डायरेक्ट एक्स व्हर्जन इन्स्टॉल आहे ते कसे पहावे?

  • प्रथम Start बटन वर क्लिक करावे.
  • नंतर Run वर क्लिक करावे.
  • Run बॉक्स मध्ये dxdiag कमांड टाईप करून Enter बटन दाबावे.
  • या नंतर आपणस डायरेक्ट एक्स व्हर्जन व इतर महिती दाखवणारी विन्डो ओपन होईल.

पुढीलप्रमाणे आपणस आपली सिस्टीम व त्याबद्दल महिती व आपल्या सिस्टीम वर असणारे डायरेक्ट एक्स व्हर्जन आपणस पाहता येते.

छायाचित्र:

डायरेक्ट एक्स व्हर्जन चेक

डायरेक्ट एक्स व्हर्जन चेक

वरील चित्रावरून हे समजले कि माझा कॉम्प्युटर हा विंडोज ७ ऑपरेटिंग सिस्टीम असणारा आहे व त्यात डायरेक्ट एक्सचे 11  हे व्हर्जन आहे हे आपणस समजले असेलच.

आता आपणही आपल्या कॉम्प्युटर मध्ये कोणते व्हर्जन आहे हे नक्की पहा.

ऑपरेटिंग सिस्टम या आपल्या अनुसार डायरेक्ट एक्स व्हर्जिन सपोर्ट करतात.

कोणती ऑपरेटिंग सिस्टम कोणते व्हर्जन इंस्तोल करू शकते ते पाहण्यासाठी पुढील तक्ता पहा.

ऑपरेटिंग सिस्टीम लेटेस्ट सपोर्टिंग DirectX व्हर्जन
Windows 8.1, Windows RT 8.1, and Windows Server 2012 R2 DirectX 11.2
Windows 8, Windows RT, and Windows Server 2012 DirectX 11.1
Windows 7 and Windows Server 2008 R2 DirectX 11.0
Windows Vista SP1, and Windows Server 2008 DirectX 10.1
Windows Vista DirectX 10.0
Windows XP SP2,Windows XP x64 Edition SP1,Windows Server 2003 SP1 DirectX 9.0C

इन्स्टॉलेशन :

डायरेक्ट एक्स इन्स्टॉल करण्यासाठी पुढील लिंकला टिचकी मारा व आपल्या सिस्टीम वर डायरेक्ट एक्स इन्स्टॉल करा.

लिंक:http://www.microsoft.com/en-us/download/details.aspx?id=35

डायरेक्ट एक्स बरोबरच मार्केट मध्ये ओपन असा ओपन जी एल (OpenGL) व ओपन सी एल(OpenCL) असे ए. पी. आय. ही उपलब्ध आहेत.

सारांश:

DirectX हा ग्राफिक्स,व्हिडिओ ,आवाज,नेटवर्क यावर लक्ष ठेवणाऱ्या फंक्शन्सचा साठा आहे. सोफ्टवेअरचा वापर करून ग्राफिक्स हार्डवेअर मधून काम करून घेण्यात यांचा महत्त्वाचा सहभाग असतो.डायरेक्ट एक्स मुळे नवीन जुने हार्डवेअर व गेम्स व त्यांच्या टेक्नोलॉजी यांच्यात सांगड घालता येते.डेव्हलपर्सना हार्डवेअर कडे लक्ष न देता मस्त गेम्स व अप्लिकेशन्स तयार करताना या इंटरफेस लेयरचा फार उपयोग होतो व इतक्या सर्व गोष्टी व फंक्शन्स हे कॉम्प्युटर वापरणाऱ्या युजर्सच्या नकळत होतात.

आपल्या कॉम्प्युटर मधील डायरेक्ट एक्स हा किती महत्त्वाचा आहे हे समजले असेलच..अशीच नवनवीन टेक्नोलोजी ची महिती आपण पुढील अंकात पाहूया.

DirectX वर आधारित भागास भेट देण्यासाठी येथे टिचकी मारा.

–MJ :)