लेखक: bolMJ

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

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


मायक्रोसॉफ्ट च्या सुपीक डोक्यातून आलेली संकल्पना : प्रोग्रामर्सना हार्डवेअरचा डायरेक्ट वापर करण्यापासून व त्यापासून होणाऱ्या अडचणी पासून थांबवणे व त्यांना वापरण्यास उपयुक्त कॉमन टूल किट तयार करणे या संकल्पनेतून 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 :)

E-Book Publication :Easy Linux Device Driver.


Greetings Friends/Followers/Supporters/Fans,

Thanks a lot for providing a huge response for my previous book on Complete Linux Device Driver book in Marathi Language .

Your inspiration encourages me to write a English version of Marathi book…Yeah first time Marathi Technical Book is going to be translated in to English Book ..Setting up new trend:)

Easy Linux Device Driver book contains all information starting from introduction of Linux ,Installation up to device driver programming.

Interesting thing is that book contains all step-wise approach to explain each part of program and provide screenshot of output after executing program.

Colorful images,easy to read font, highlight on important words , experimental thoughts and  tips by Author will make reading experience unique.

Book explains about USB ,Character, PCI,Display device driver in simple and easy to understand language.

I am glad to publish this book with Google Books and BOLMJ Publications so that all the world will take benefit of this book to become Linux Device Driver programmer.

Author will like to here response from readers to improve book ; Help me to spread book in all Linux community.

Click here to download Easy Linux Device Driver Book.

Easy Linux Device Driver E-Book.

गुगल बुक मार्फत प्रकाशित झालेल्या पुस्तकाची मराठी आवृत्ती पाहण्यासाठी येथे टिचकी मारा. (Linux Device Driver in Marathi on Google Books )

ELDD

Easy -Linux Device Driver

[Click to Download E-Book]

—Thanks – BolMJ