Pages

Monday, 6 August 2012

Open Graphic Library ဆိုသည္မွာ


Open Graphic Library ဆိုသည္မွာ  Cross Languageတစ္ခုကို သတ္မွတ္ေပးေသာ Interface အမ်ိဳးအစား တစ္ခု ျဖစ္တယ္။ ဘာအတြက္လဲဆိုေတာ့ 2D ႏွင့္ 3D Computer Graphic ေတြကို ထုတ္လုပ္ရာမွာ Application   ေတြ ကို ေရး သားႏုိင္ေသာ Cross Languageတစ္ခုျဖစ္တဲ့ Cross platform API ကို သတ္မွတ္ေပးေသာ Standard တစ္ခု ပင္ ျဖစ္တယ္။



 OpenGL Interface တြင္ မတူညီတဲ့ Function ေပါင္း ၂၅၀ ေက်ာ္ ပါ၀င္ပါတယ္။ ၄င္း မတူညီတဲ့ Functionေပါင္း ၂၅၀ ေက်ာ္ ပါ၀င္ရျခင္းက ယခင္ ႐ိုး႐ိုး Graphic ေတြထက္ ႐ႈပ္ေထြးေသာ Three-DemensionalScence ေတြ ကို ေရးဆြဲရာမွာ အသံုးျပဳႏုိင္ရန္ ျဖစ္ပါတယ္။ OpenGL ကို Silicon Graphic Inc (SGI) ကေန၁၉၉၂ ခုႏွစ္တြင္ ထုတ္လုပ္ခဲ့တာျဖစ္ၿပီး ၄င္းကို CAD, Virtual Reality, Scientific Visualization,Information Visualization ႏွင့္ Flight Simulation ေတြမွာ က်ယ္က်ယ္ျပန္႔ျပန္႔ အသံုးျပဳခဲ့ၾကပါတယ္။

ေနာက္ၿပီး OpenGL ကို Video Game ေတြမွာလည္း အသံုးျပဳၾကပါတယ္။ ဒီOpenGL သည္ Microsoft Windows Platform ကထုတ္လုပ္ေသာ Direct 3D ႏွင့္ အၿပိဳင္အသံုးျပဳေနၾကပါတယ္။ OpenGL ကို Non-profic Technology Consortium (Khronos Group) ကေနစီမံထုတ္လုပ္တာျဖစ္ပါတယ္။


Basic Level OpenGL ကေတာ့ Specification ျဖစ္တယ္။ ဘာကိုဆိုလုိတာလဲဆိုေတာ့ ႐ိုး႐ိုး Documentတစ္ခုပါပဲ။ သူကဘာကို ေဖာ္ျပေပးႏုိင္လဲဆိုေတာ့ Function ေတြႏွင့္ ၄င္း Function ေတြကိုဘယ္လုိေဆာင္ရြက္ရမလဲဆုိတဲ့ တိက်ေသာ လုပ္ေဆာင္ခ်က္ေတြကို ေဖာ္ျပေပးႏုိင္ေသာ Specificationတစ္ခု ျဖစ္တယ္။


ဒီ Basic Level Specification မွာ ဘာေတြကို လုပ္ေဆာင္ႏုိင္သလဲဆိုေတာ့ Hardware Vendor ေတြဟာOpenGL Specification ေဖာ္ျပထားေသာ Function ေတြႏွင့္ ကုိက္ညီတဲ့ Function ေတြကိုဖန္တီးႏုိင္ပါတယ္။ Hardware Vendor ေတြသည္ OpenGL Implementation အျဖစ္ သူတို႔ရဲ႕ လုပ္ေဆာင္ခ်က္ေတြကို အရည္အခ်င္း သတ္မွတ္ႏုိင္ဖို႔ စမ္းသပ္မႈေတြကို ျပဳလုပ္ခဲ့ၾကပါတယ္။

၂၀၀၆ ခုႏွစ္ စက္တင္ဘာလ ၂၁ ရက္ေန႔မွာ OpenGL သည္ Khronos Group ရဲ႕ ထိန္းခ်ဳပ္မႈကို Passလုပ္ခဲ့ပါ တယ္။ ဒီလုိမ်ိဳး လုပ္ေဆာင္မႈဟာဆိုရင္ OpenGL ႏွင့္ OpenGL ES တို႔ရဲ႕ တိုးတက္မႈေတြၾကားမွာျဖစ္တတ္ေသာ အတားအဆီးေတြကုိ ဖယ္ရွားႏုိင္ဖုိ႔အတြက္ OpenGL ရဲ႕ ေစ်းကြက္ကို တိုးတက္ေစဖို႔ရန္ အလို႔ငွာ ျဖစ္လာေစခဲ့ ပါတယ္။ OpenGL ကုိ စီမံထုတ္လုပ္ေသာ Khronos ရဲ႕ အဖြဲ႔ခဲြနာမည္က OpenGL ARB Working Group ျဖစ္ ပါတယ္။ OpenGL ကို API အတြက္ ရည္ရြယ္ၿပီးေတာ့ ထုတ္လုပ္ခဲ့တာျဖစ္တယ္။ OpenGL ကလုပ္ေဆာင္ေပးေသာ အဓိက လုပ္ေဆာင္ခ်က္ ႏွစ္မ်ိဳးရွိပါတယ္။

(၁)    တျခား မတူညီေသာ 3D Accelerator ေတြႏွင့္ ဆက္စပ္ၿပီးေတာ့ လုပ္ေဆာင္တဲ့အခါမွာ ရႈပ္ေထြးမႈေတြ မျဖစ္ေအာင္ တစ္ခုတည္းေသာ API Uniform ကို အသံုးျပဳၿပီးေတာ့ လုပ္ေဆာင္ေပးပါတယ္။

(၂)    ေနာက္တစ္ခုက Hardware Platform ေတြရဲ႕ မတူညီေသာ ေဆာင္ရြက္ခ်က္ေတြကိုဖုံုးကြယ္ထားရန္ အတြက္ လည္း ေဆာင္ရြက္ေပးပါတယ္။ လုိအပ္လ်င္ Software ကို အသံုးျပဳၿပီးေတာ့လုပ္ေဆာင္ေပးပါတယ္။

Open GL ကုိ ထုတ္လုပ္လုိက္ေသာ ရည္ရြက္ခ်က္က Graphic ေတြကို Display လုပ္ရန္အတြက္သာ ရည္ရြယ္ ၿပီးေတာ့ ထုတ္လုပ္ခဲ့တာ ျဖစ္ပါတယ္။ Graphic ဆိုင္ရာ Function ေတြကိုပဲ လုပ္ေဆာင္ေပးတာျဖစ္ပါတယ္။ API မွာဆုိရင္ Windows System, Audio, Print Screen, Keyboard/ Mouse တို႔ႏွင့္ တစ္ျခားInput Device ေတြရဲ႕ Concept ေတြ မရွိပါဘူး။ ဒီလုိမ်ိဳး API မွာ ကန္႔သတ္ခ်က္ေတြရွိေသာ္လည္း OpenGLကုိ အသံုးျပဳမယ္ဆုိရင္ေတာ့ ဘယ္ Windows Operating System ကိုမဆို လြတ္လပ္စြာအသံုးျပဳႏိုင္ပါတယ္။

၁၉၉၅ ခုႏွစ္ေလာက္မွာ Microsoft ကေနၿပီးေတာ့ Direct3D ကို ထုတ္လုပ္ခဲ့ပါတယ္။ ၄င္း Direct3D မွာOpenGL ရဲ႕ အဓိက ၿပိဳင္ဘက္တစ္ခု ျဖစ္လာပါတယ္။ ၁၉၉၇ ခုႏွစ္ ဒီဇင္ဘာလ ၁၇ ရက္ေန႔တြင္ Microsoftႏွင့္ SGI တို႔သည္ Fahrenheit ဆိုတဲ့ Project ကို စတင္ အေကာင္အထည္ ေဖာ္ခဲ့ၾကပါတယ္။၄င္း Project မွာ OpenGL ႏွင့္ Direct3D Interface တို႔ကို စည္းလံုးေပါင္းစပ္ေပးရန္ ရည္ရြယ္ခ်က္ႏွင့္ဖြဲ႔စည္းခဲ့တာ ျဖစ္ပါတယ္။ ၁၉၉၈ ခုႏွစ္ မွာေတာ့ Hewlett-Packard သည္ ၄င္း Project ထဲကို ၀င္ေရာက္လာခဲ့ပါတယ္။ Microsoft ကေတာ့ SGI နဲ႔ ပတ္သက္ၿပီးေတာ့ ဘဏႅာေရး

ကန္႔သတ္ခ်က္ေတြေၾကာင့္ ၁၉၉၉ ခုႏွစ္မွာ ၄င္း Project အဖြဲ႔ထဲကေန ထြက္သြားခဲ့ပါတယ္။ OpenGL မွာ Version ေတြ အမ်ားႀကီး ရွိပါတယ္။ Open GL သည္ Address နဲ႔ ပတ္သက္ၿပီးေတာ့ တုိးတက္မႈ၊ ေႏွာင့္ေႏွး ၾကန္႔ၾကာေန မႈ၊ ပ်က္ကြက္မႈတို႔ေၾကာင့္ 3DLabs က OpenGL 2.0 version ကို စတင္ထုတ္လုပ္ရန္ အႀကံျပဳ လာခဲ့ပါတယ္။

ေနာက္ဆံုးမွာ OpenGL 2.0 version ကို ထုတ္လုပ္လုိက္တဲ့အခါမွာ GLSL Support ပါရွိပါတယ္။ GLSLဆိုတာ Level ျမင့္ေသာ Shading Language တစ္ခု ျဖစ္တယ္။ C-Programming Language ကိုအေျခခံၿပီးေတာ့  ထုတ္လုပ္ထားတာ ျဖစ္တယ္။ GLSL ၏ အရွည္မွာ OpenGL Shading Languageျဖစ္ပါတယ္။ တခါတရံ GLslang ဟုလည္း ေခၚၾကပါတယ္။ ၄င္း GLSL ကို OpenGL ARB ကေနဖန္တီးထားျခင္း ျဖစ္ပါတယ္။

၄င္းကို ထုတ္လုပ္ထားရေသာ ရည္ရြယ္ခ်က္က  Assembly Language သို႔မဟုတ္ Hardware-Specific Language  ေတြကို အသံုးျပဳရန္မလုိပဲ Graphic Pipeline ေတြကို တိုက္ရိုက္ Control လုပ္ႏုိင္ဖုိ႔ရန္အတြက္ ရည္ရြယ္ ထားတာ ျဖစ္တယ္။ အခုလက္ရွိ အသံုးျပဳေနေသာ GLSL Version ကေတာ့ Version 1.40 ပဲျဖစ္ပါတယ္။

OpenGL 2.1 version ကို ၂၀၀၆ ခုႏွစ္ ၾသဂုတ္လမွာ ထုတ္လုပ္ခဲ့ပါတယ္။ OpenGL 2.1 Version မွာ ယခင္ ထုတ္လုပ္ခဲ့ေသာ OpenGL Version အားလံုးႏွင့္ Compatible ျဖစ္ပါတယ္။ ေနာက္ version တစ္ခုျဖစ္ေသာ OpenGL API version 3.0 ကို ၂၀၀၈ ခုႏွစ္ ၾသဂုတ္လ ၁၁ ရက္ေန႔မွာထုတ္လုပ္ခဲ့ပါတယ္။ ဒီ Version 3.0 ကလည္း ယခင္ OpenGL Version ေတြႏွင့္ Compatible ျဖစ္ပါတယ္။

၂၀၀၉ ခုႏွစ္ မတ္လ ၂၄ ရက္ေန႔မွာ OpenGL version 3.1 ကို ထုတ္လုပ္ခဲ့ျပန္ပါတယ္။ ပိုၿပီးေတာ့ထူးျခားေသာ API performance ျဖစ္ေအာင္ ရည္ရြယ္ၿပီးေတာ့ ထုတ္လုပ္ခဲ့တာ ျဖစ္ပါတယ္။

from Sayar Zaw Lin(youth)

No comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...

အေထြးေထြးနည္းပညာမ်ား