Thursday, June 5, 2008

GLUT (OpenGL Utility Toolkit)

OpenGL ကို သံုးၿပီးေတာ့ graphic rendering program ေတြကို ဖန္တီး မယ္ဆိုရင္ OpenGL အေၾကာင္းကို သိထားဖို႔ လိုပါတယ္။ OpenGL ဆိုတာ Windows လိုမ်ိဳး operating system ေတြရဲ႕ လုပ္ေဆာင္ ခ်က္ေတြနဲ႔ OpenGL ကိုယ္တိုင္ရဲ႕ graphic rendering လုပ္ ေဆာင္ခ်က္ေတြကို လံုး၀ သီးျခားစီ ခြဲထုတ္ထားပါတယ္။ ဆိုလုိတာက OpenGL ဟာ ဘယ္ operating system နဲ႔ မဆို အလုပ္လုပ္ႏိုင္ပါတယ္။ အဲဒီလို လုပ္ႏိုင္ဖို႔အတြက္ Windows, Linux လိုမ်ိဳး OS ေတြရဲ႕ အေျခခံ system လုပ္ေဆာင္ ခ်က္ေတြနဲ႔ OpenGL ရဲ႕ graphic rendering လုပ္ေဆာင္ခ်က္ေတြနဲ႔ graphic controlling ပိုင္းေတြကို လံုး၀ ခြဲျခားထားပါတယ္။
တစ္ကယ္တမ္း ကၽြန္ေတာ္တို႔က OpenGL နဲ႔ graphic rendering program ေတြကို ဖန္တီးမယ္ဆိုရင္ OpenGL ကိုသံုးၿပီး graphic rendering လုပ္ေဆာင္ခ်က္ေတြကို မစခင္မွာ ကၽြန္ေတာ္တို႔က operating system ရဲ႕ ေနာက္ကြယ္ကေန အေျခခံ ထိန္းခ်ဳပ္လုပ္ေဆာင္ ခ်က္ေတြကို အရင္ဖန္တီးေပးရပါမယ္။ အဲဒီ လုပ္ေဆာင္ခ်က္ ေတြဟာ ကၽြန္ေတာ္တို႔ ေလာေလာဆယ္ သံုးေနတဲ့ operating system နဲ႔႔ပဲ ဆိုင္ပါတယ္။ OpenGL နဲ႔ ဘာမွ မဆိုင္ပါဘူး။ အေျခခံ operating system ရဲ႕ လုပ္ေဆာင္ခ်က္ေတြကို ရၿပီဆိုေတာ့မွ အဲဒီ window နဲ႔ OpenGL API ကို ကၽြန္ေတာ္တို႔က ခ်ိတ္ၿပီး အလုပ္လုပ္ရပါတယ္။
ဒါေၾကာင့္ programmer ေတြ အေနနဲ႔က OpenGL သက္သက္နဲ႔ အလုပ္လုပ္မယ္ ဆိုရင္ အရင္ဆံုး ကိုယ္သံုးေနတဲ့ operating system အတြက္ working window တစ္ခုကို တည္ေဆာက္ရပါတယ္။ Working window တစ္ခုကို ရၿပီဆိုေတာ့မွ OpenGL ရဲ႕ လုပ္ေဆာင္ခ်က္ function ေတြနဲ႔ အဲဒီ Window ကို ခ်ိတ္လိုက္ရပါတယ္။ OpenGL က graphic နဲ႔ ပါတ္သက္တဲ့ ပံုေဖၚမႈ လုပ္ေဆာင္ခ်က္ေတြကို လုပ္ပါလိမ့္မယ္။ က်န္တဲ့ အားလံုး ေသာ resource ေတြနဲ႔ system ပိုင္းဆိုင္ရာ ထိန္းခ်ဳပ္မႈေတြကို OS (window) က လုပ္ပါ လိမ့္မယ္။ ဒီေနရာမွာ ကၽြန္ေတာ္ ေျပာေနတဲ့ window ဆိုတာ Microsoft Windows OS ေတြကို ေျပာေနတာ မဟုတ္ဘူးဆိုတာ နားလည္ေစခ်င္ပါတယ္။ ကၽြန္ေတာ္ ေျပာေနတဲ့ window တစ္ခုဆိုတာ ဘယ္ OS မွာ မဆို ျဖစ္ႏိုင္ပါတယ္။ ဥပမာ- Microsoft Windows လည္း ျဖစ္ႏိုင္တယ္။ Linux, Unix ရဲ႕ X-Windows ေတြလည္း ျဖစ္ႏိုင္တာပဲေလ။
OpenGL မွာ အဲဒီလိုမ်ိဳး graphic လုပ္ေဆာင္မႈ ေတြနဲ႔ system တည္ေဆာက္မႈကို ခြဲျခား ထားတဲ့အတြက္ programmer ေတြက OpenGL ကို မသံုးႏိုင္ခင္မွာ working window တစ္ခုကို အရင္ရေအာင္ ေဆာက္ရပါတယ္။ ၿပီးေတာ့ window နဲ႔ OpenGL ကို တစ္ကယ္ ခ်ိတ္ဆက္ၿပီ ဆိုျပန္ေတာ့လည္း အရမ္း လက္၀င္ပါတယ္။ System calls ေတြကို သံုးသင့္ရင္ သံုးရပါတယ္။ ဘာလို႔လည္းဆိုေတာ့ OpenGL သတ္မွတ္ခ်က္ ထဲမွာ window (system) ပိုင္း ဆိုင္ရာ လုပ္ေဆာင္ခ်က္ေတြ လံုး၀ မပါပါဘူး။ OpenGL ကို သံုးမယ့္ Programmer ေတြရဲ႕ တာ၀န္ပါ။

Operating system ရဲ႕ working window တစ္ခုနဲ႔ OpenGL libraries ေတြကို လြယ္လြယ္ ကူကူနဲ႔ ခ်ိတ္ဆက္ အသံုးျပဳဖို႔အတြက္ programmer ေတြအတြက္ အသင့္ ရိွေနတဲ့ tool တစ္ခု ကေတာ့ GLUT API ပါ။ GLUT ဆိုတာ OpenGL Utility Toolkit ကို ေခၚတာပါ။ သူ႔ကို Internet ကေန အခမဲ့ အလြယ္တကူ download လုပ္လို႔ရပါတယ္။ GLUT ကို download လုပ္ၿပီးၿပီဆိုရင္ programming language ကေန သူ႔ကို ေခၚသံုးၿပီး OpenGL application ေတြကို လြယ္လြယ္ ကူကူ ဖန္တီးလို႔ ရၿပီေပါ့။ ဒါေၾကာင့္ OpenGL ကို သံုးမယ္ ဆိုရင္ GLUT ကို သံုးကို သံုးရမွာပါ။ မဟုတ္ရင္ programmer ေတြအတြက္ OpenGL ကို သံုးရတာ အရမ္းခက္ခဲေနပါလိမ့္မယ္။
ေနာက္ဆံုးထြက္ GLUT API ရဲ႕ version က 3.7.x ေရာက္ေနပါၿပီ။ OpenGL programming guide လိုမ်ိဳး စာအုပ္ေတြ ထဲမွာေတာင္မွ GLUT ကို သံုးျပသြားတာ ေတြ႕ႏိုင္ပါတယ္။ GLUT က operating system independent ျဖစ္တဲ့အတြက္ ဘယ္ OS မွာ မဆို အသံုးျပဳႏိုင္ပါတယ္။ ဒါေၾကာင့္ GLUT ကို သံုးၿပီး ဖန္တီးထားတဲ့ OpenGL application ေတြဟာ ဘယ္ OS မွာမဆို အလုပ္လုပ္ပါ လိ့မ္မယ္။ Platform independent ျဖစ္တာေပါ့။
GLUT libraries ေတြကို Visual C++ programming language နဲ႔ ခ်ိတ္ၿပီးၿပီ ဆုိရင္ OpenGL application ကို ဖန္တီးဖို႔အတြက္ GLUT API ရဲ႕ function ေတြကို လွမ္းေခၚၿပီး သံုးႏိုင္ပါတယ္။ သံုးရတာ လြယ္ပါတယ္။ GLUT programmer’s manual လိုမ်ိဳး guide ေတြ ကလည္း အလြယ္တကူနဲ႔ အခမဲ့ download လုပ္ယူလို႔ ရႏိုင္ပါတယ္။ GLUT API ထဲမွာ programmer ေတြအတြက္ OpenGL program ေတြ ဖန္တီးဖို႔အတြက္ လြယ္ကူေအာင္ လုပ္ေပးထားတဲ့ တစ္ျခား function ေတြလည္း အမ်ားႀကီး ပါပါတယ္။
OpenGL ကိုယ္တိုင္က graphic လုပ္ေဆာင္ခ်က္ သက္သက္အတြက္ပဲ ျဖစ္ပါတယ္။ GLUT ထဲမွာက OpenGL ကိုသံုးၿပီး graphic လုပ္ေဆာင္ခ်က္ေတြ အျပင္ တစ္ျခား input/output လုပ္ေဆာင္ခ်က္ေတြ၊ working window တစ္ခုကို အလြယ္ တကူ ဖန္တီးဖို႔ လုပ္ေဆာင္ခ်က္ေတြ အမ်ားႀကီး ပါပါတယ္။
ဘယ္လိုပဲ ျဖစ္ျဖစ္ OpenGL ကိုသံုးၿပီး graphic rendering ေတြကို ဖန္တီးေတာ့ မယ္ဆိုရင္ ကၽြန္ေတာ္တို႔ GLUT ကို ပစ္ထားလို႔ မရပါဘူး။ GLUT နဲ႔ C++ programming language ကို ဘယ္လို ခ်ိတ္မယ္ဆုိတာ ကၽြန္ေတာ္ ေနာက္ထပ္ article တစ္ခု ေရးပါဦးမယ္။
GLUT ကို download လုပ္ခ်င္တယ္ ဆိုရင္ ေအာက္မွာ link ကို ေပးထားပါတယ္....

0 comments:

Post a Comment