دوستان مقاله ای که در پیش رو دارید به معرفی کتابخانه "JOGL" میپردازد که امکان به کارگیری اوپن جی ال را در جاوا میسر میسازد. این مقاله قصد ندارد شما را به طور کامل با این کتابخانه بزرگ آشنا سازد بلکه هدفش تنها یک بررسی اجمالی و شناساندن آن به دوستان میباشد. شما را به خواندن مطلب امروز دعوت میکنم. امیدوارم که لذت ببرید.
(( چگونگی استفاده از OpenGL در زبان برنامه نویسی جاوا ))
OpenGL for Java
"JOGL" مخفف عبارت Java OpenGL میباشد و یکی از کتابخانه های پوشاننده "Wrapper" بسیاری است که اجازه میدهند تا بتوان از OpenGL در زبان جاوا استفاده کرد. این کتابخانه هم اکنون در حال توسعه توسط تیم تکنولوژی بازی در شرکت "Sun Microsystems" میباشد.
"JOGL" برنامه نویسان را قادر میسازد که بتوانند به بیشتر قابلیتهای اوپن جی ال که در اختیار برنامه نویسان زبان سی قرار دارد دسترسی پیدا کنند. تنها استثنا در این مورد سیستم پنجره سازی و مدیریت پنجره توسط GLUT میباشد. (چون جاوا بطور ذاتی و درونی دو سیستم بنامهای AWT و Swing برای امور مرتبط با پنجره دارد.)
بطور کلی اساس OpenGL API که به کمک زبان سی ایجاد شده است از طریق فراخوانی های رابط بومی جاوا "JNI" در "JOGL" قابل دستیابی است. بدین لحاظ سیستمی که برای این منظور استفاده میشود میباید OpenGL را ساپورت نماید تا "JOGL" قادر به کار کردن باشد.
"JOGL" از یک لحاظ با دیگر کتابخانه های پوشاننده OpenGL که برای جاوا تهیه شده اند تفاوت دارد. "JOGL" صرفا API رویه ای OpenGL را از طریق یکسری متد ها که بر اساس کلاسهای کمی بنا شده اند در اختیار میگذارد تا اینکه تلاش کند چگونگی کارکرد OpenGL را در قالب مدل برنامه نویسی شئ گرا ترسیم کند. در حقیقت بیشتر کد "JOGL" بطور خودکار از روی فایل های هدر (سرآیند) OpenGL ایجاد شده است و اینکار توسط یک ابزار تبدیل به نام "Gluegen" انجام شده است.
"Gluegen" در اصل بدین منظور برنامه نویسی شد که بتواند ایجاد و ساخت "JOGL" را تسهیل نماید. این نوع طراحی هم فواید و هم مشکلات خاص خود را به همراه دارد. رویه گرایی و ماشین حالت که جزیی از OpenGL هستند با متد های نمونه برنامه نویسی تحت جاوا تناقض دارد و برای بسیاری از برنامه نویسان پرزحمت است. البته این نگاشت ( API از سی ساخته شدهء OpenGL ) بر روی متد های جاوا کار تبدیل کد های باقی مانده از برنامه هایی که به زبان سی نوشته شده اند را بسیار آسان میکند.
لایه نازک انتزاعی که توسط "JOGL" مهیا شده است فرآیند اجرا شدن برنامه را بشکل موثری تضمین میکند. اما در سوی دیگر در مقایسه با کتابخانه های انتزاعی سطح بالاتر مانند Java3d از لحاظ کد نویسی بسیار سخت تر میباشد.
از آنجایی که بیشتر کد "JOGL" بطور خودکار و از روی فایل های سرآیند OpenGL تولید میشود هر تغییری در OpenGL را میتوان به سرعت به "JOGL" انتقال داد و این مزیت بزرگی است. ار ابتدای سال 2006 میلادی "JOGL" دسترسی کامل به قابلیتها و توانایی های OpenGL 2.0 را ممکن ساخت.
از زمان Build 51 از ورژن 6 ام زبان برنامه نویسی Java SE که در راه میباشد (در حالت بتا قرار دارد)
Java 2D (یک API که اجازه ترسیم اشکال و تصاویر دو بعدی در جاوا را میدهد) و "JOGL" قادر شدند تا در کنار یکدیگر کار کنند که این عمل امتیازات خاصی در پی داشت:
- قرار دادن کامپننت های Swing مانند منوهای سبک وزن و راهنمای ابزارها و بقیه کنترل ها بر روی صحنه در حال رندر OpenGL
- ترسیم گرافیک های سه بعدی OpenGL بر روی صحنه در حال رندر Java 2D
- استفاده از گرافیک های سه بعدی هر جایی که یک کنترل Swing استفاده شده است مانند یک JTree یا یک JTable و ... .
- ترسیم گرافیک های دوبعدی در روی صحنه های در حال رندر OpenGL
برنامه زیر رندر یک هرم ساده را با استفاده از "JOGL" نشان میدهد.
JavaRenderer class – این کلاس از GLAutoDrawable استفاده میکند تا یک صحنه سه بعدی را رندر کند.


class – این کلاس اصلی است که کلاس JavaRenderer را لینک میکند. این کد یک صحنه سه بعدی را بر روی GLCanvas ترسیم میکند.


دوستان من را از خواندن پیشنهادات مفیدتان محروم نکنید. نظرات شما راهی است به سوی ارتقا کیفیت این وبلاگ. موفق و موید باشید.
منبع : دانشنامه رایگان ویکی پدیا www.wikipedia.org


