JOGL چیست و چه کاربردی دارد؟
Java Open Graphic Library (JOGL) یک کتابخانه بسته بندی شده است که امکان استفاده از OpenGL با زبان برنامه نویسی جاوا را فراهم میکند. بنابراین، برنامه نویسان میتوانند به راحتی با کمک JOGL گرافیک رایانه ای را در کد جاوا جاسازی کنند. JOGL یک کتابخانه منبع باز است که به API های کامل OpenGL دسترسی دارد. از این رو، تمام ویژگی های OpenGL را به ارث میبرد. JOGL بدون هیچ گونه کمبودی قادر به انجام هر نوع سیستم عامل مانند Window، Linux و Mac است.
اگر میخواهید موتور بازی یا سایر نرم افزارهای جاوا را که به گرافیک سه بعدی نیاز دارند، توسعه دهید، استفاده از جاوا Binding برای OpenGL (JOGL) را در نظر بگیرید. این سطح پایین API جاوا به عنوان پلی برای بستر اصلی فناوری OpenGL عمل میکند.
رابط بومی جاوا
Java Native Interface (JNI) یک چارچوب برنامه نویسی است که به برنامه های جاوا اجازه میدهد تا از طریق برنامه های بومی و کتابخانه های نوشته شده به زبان های دیگر با آنها ارتباط برقرار کنند. بنابراین، جاوا از طریق Java Native Interface از کدهای بومی پشتیبانی میکند. در JOGL، نقش JNI ارائه بستری است که از طریق آن میتوانید به ویژگی های مختلف OpenGL دسترسی پیدا کنید. از این رو، JNI به عنوان واسطه بین جاوا و OpenGL عمل میکند.
رابط بومی جاوا
استفاده از JOGL
اگر میخواهید از JOGL زبان برنامه نویسی جاوا استفاده کنید، باید jogl.jar و کد محلی همراه آن را دریافت کنید. اولین ترفند یافتن باینری ها برای سیستم عامل و استخراج آنها است. هر سیستم عامل متفاوت است، اما دو قسمت برای نصب وجود دارد. jogl.jar باید در مسیر classpath سیستم قرار داده شود، و کتابخانه باینری باید هر کجا که کتابخانه ها در سیستم عامل شما قرار دارند قرار داده شود.
JOGL / OpenGL زبان جاوا چگونه کار میکند؟
نخست، چند کلمه در مورد نحوه کار : OpenGL رویه ای. شما موضوعی را شروع میکنید که بارها و بارها یک نمایشگر () را با نرخ فریم در ثانیه (fps) فراخوانی میکند. در این روش، صفحه را پاک میکنید و کل صحنه را از نو میسازید. این کار را با صدور دستورات بدوی انجام میدهید: شروع راس، این نقطه 1، نقطه 2، سوم، انتهای انتها است. البته، این امر برای بافت ها، نورپردازی و موارد مشابه پیچیده تر میشود، اما نکته اصلی این است که یک شی GL وجود دارد که دارای روش های () glWeverever 1000 است که شما بارها و بارها از آنها استفاده خواهید کرد.
بله ابتدایی است اما نزدیک به سخت افزار است و این به معنی سریع و انعطاف پذیر بودن است. برای ادغام با جاوا، باید امتیازاتی وجود داشته باشد: یعنی، مولفه AWT (یک مولفه توسعه دهنده ) (GLCanvas)در صف رویداد AWT ادغام شده است، و شما باید یک شنونده (GLEventListener) را برای مکالمه های چرخه حیات پیاده سازی کنید. به عنوان کمی آماده سازی برای دنیای D3، شکل های زیر سیستم مختصات و دوربین را نشان میدهد.
دوربین در حال مشاهده صحنه سه بعدی است
سیستم مختصات سه بعدی
رابط های JOGL
برای ایجاد یک برنامه JOGL زبان جاوا، لازم است که رابط های زیر را درک کنید:
رابط GLEventListenerرابط قابل تنظیم GLA
کلاس های JOGL
در زیر، با کلاسهای ارائه شده توسط JOGL آشنا خواهیم شد. از طریق این کلاس ها، میتوانیم عملکرد OpenGL را در کد جاوا اضافه کنیم.
کلاس GLCanvas
کلاس GLJPanel
کلاس GLProfile
کلاس GLCapunities
کلاس GLCanvas و GLJPanel کلاس های GUI هستند که رابط GLAutoDrawable را پیاده سازی میکنند و به عنوان سطوح رسم دستورات OpenGL استفاده میشوند. کلاس GLCanvas یک جز A AWT با وزن سنگین است که در بسته javax.media.opengl.awt وجود دارد. عملکرد کلاس Canvas را گسترش میدهد و پشتیبانی از ارائه OpenGL زبان برنامه نویسی جاوا را فراهم میکند. GLCanvas به عنوان یک جز A AWT، در مقایسه با Swing با AWT سازگار است. به دلیل شتاب سخت افزاری، عملیات OpenGL را به سرعت اجرا میکند.
قالب کدگذاری JOGL
سازندگان GLCanvas
GLCanvas () با استفاده از مکانیزم قابلیت های پیش فرض OpenGL در دستگاه صفحه پیش فرض، یک مولفه جدید GLCanvas با مجموعه پیش فرض قابلیت های OpenGL زبان جاوا ایجاد میکند.
قاب های اصلی JOGL
Frame ظرفی است که شامل یک عنوان و حاشیه است. همچنین میتواند حاوی اجزای مختلف دیگری مانند برچسب ها، دکمه ها، جعبه چک کلاس جاوا باشد.
در اینجا، ما میآموزیم که چگونه با استفاده از فناوری JOGL یک قاب ایجاد کنیم.
در زیر مراحل ایجاد یک قاب وجود دارد.
یک پروژه جاوا جدید ایجاد کنید و تمام پرونده های مورد نیاز jar را در آن اضافه کنید. کلاس جاوا ایجاد کنید و بسته های مورد نیاز را وارد کنید.
اکنون، رابط GLEventListener را پیاده سازی کرده و روش های زیر را نادیده بگیرید:
void init (GLAutodrawableobj)
نمایشگر بی اعتبار (GLAutodrawableobj)
تغییر شکل باطل (GLAutodrawableobj)
خالی کردن اعتبار (GLAutodrawableobj)
اشیاء کلاس GLProfile را بسازید و نسخه دقیق OpenGL API را مشخص کنید.
GLProfile gp = GLProfile.get(GLProfile.GL4); |
کلاس GLCapunities را بسازید و شی کلاس GLProfile را با آن منتقل کنید.
GLCapabilities cap = new GLCapabilities(gp); |
اکنون کلاس GLCanvas را بسازید و شی کلاس GLCapunities را با آن منتقل کنید.
GLCanvas gc = new GLCanvas(cap); |
اکنون، از روش addGLEventListener () برای اضافه کردن GLEventListener با یک شی از کلاس GLCanvas استفاده کنید.
gc.addGLEventListener(af); |
اندازه بوم را با استفاده از روش () setSize تنظیم کنید و ابعاد را به عنوان پارامتر منتقل کنید.
gc.setSize(350, 350); |
این ساختار اصلی است که برای ایجاد یک قاب استفاده میشود. اکنون این قسمت را با قابلیت کیت ابزار پنجره تعبیه خواهیم کرد.
جایگزین ساده GLCanvas توسط GLJPanel
قاب JOGL با استفاده از AWT
AWT (Abstract Window Toolkit) یک رابط برنامه نویسی زبان جاوا است که برای توسعه برنامه های مبتنی بر پنجره استفاده میشود. اجزای ارائه شده توسط AWT وزن سنگین و بستگی به سکو دارند. بسته java.awt شامل کلاسهای مختلف AWT برای API است.
قاب JOGL با استفاده از Swing
Swing یک مجموعه ابزار رابط کاربر گرافیکی با وزن سبک است که برای توسعه برنامه های زبان جاوا مبتنی بر پنجره استفاده میشود. بسته java.swing کلاسهای مختلفی برای swing API ارائه میدهد.
JOGL Primitives
به عنوان یک کتابخانه گرافیکی باز در زبانجاوا، میتوانیم اشکال مختلف مانند دایره، مثلث، مربع را در JOGL ترسیم کنیم. از این رو، برای ترسیم این اشکال OpenGL بدوی هایی را فراهم میکند که JOGL را در ترسیم دو بعدی و همچنین شکلهای سه بعدی تسهیل میکند.
OpenGL Primitive پارامترهای داخلی مختلفی را ایجاد میکند که براساس آنها میتوان اشکال مختلفی ترسیم کرد. هر پارامتر نقش خاصی در ترسیم شکل دارد.
اشیا JOGL 3D
به غیر از D2، JOGL همچنین گرافیک های سه بعدی را با پشتیبانی سخت افزاری به برنامه های زبان جاوا ارائه میدهد. از روش glMatrixMode() برای تعیین ماتریس فعلی استفاده میشود.
شامل یک حالت در پارامتر خود است که پشته ماتریس هدف را برای عملیات ماتریس بعدی مشخص میکند. این حالت میتواند هر یک از مقادیر زیر را بپذیرد:
GL_MODELVIEW - برای اعمال عملیات ماتریس بعدی در پشته ماتریس modelview که تحولات (مانند چرخش، مقیاس گذاری، رعد و برق) یک جسم را تعریف میکند، استفاده میشود.
GL_PROJECTION - برای اعمال عملیات ماتریس بعدی در پشته ماتریس حرفه ای که ویژگی های دوربین را از جمله نسبت ابعاد، فاکتور بزرگنمایی و غیره تعریف میکند، استفاده میشود.
GL_TEXTURE - برای اعمال عملیات ماتریس بعدی روی پشته ماتریس بافت استفاده میشود.
GL_COLOR - برای اعمال عملیات ماتریس بعدی روی پشته ماتریس رنگ استفاده میشود.
از روش gluPerspective () برای نمایش صحیح جسم سه بعدی در یک سطح دو بعدی استفاده میشود.
برای دسترسی به این روش یک شی از کلاس GLU ایجاد کنید. این کلاس دسترسی به OpenGL Utility Library را فراهم میکند. این روش را با شی کلاس GLU مرتبط کنید.
پشتیبانی از گرافیک 3D
چند واقعیت در مورد JOGL:
JOGL تقریباً به طور کامل در جاوا نوشته شده است. بیشتر کد اصلی آن در طی مراحل ساخت توسط ابزاری به نام GlueGen به صورت خودکار تولید میشود.
JOGL مولفه های AWT و Swing را برای ادغام گرافیک های سه بعدی در GUI فراهم میکند.
JOGL از زبانهای GLSL بررسی معماری OpenGL (ARB) و Cg انویدیا پشتیبانی میکند.
JOGL فقط از ارائه رنگ واقعی (15 بیت در هر پیکسل و بالاتر) پشتیبانی میکند.
JOGL از New I / O (NIO) در اجرای خود استفاده میکند.
JOGL از محبوب ترین ویژگی های معرفی شده توسط Magician، جاوا GL5 و سایر اتصالات جاوا برای OpenGL پشتیبانی میکند. به عنوان مثال، JOGL از الگوی "خط لوله قابل ترکیب" شعبده باز پشتیبانی میکند، که میتواند اشکال زدایی سریعتر را برای برنامه های JOGL فراهم کند.
در دسترس بودن OpenGL برای جاوا
بسیاری از اتصالات جاوا OpenGL فقط برای سیستم عامل های Win32 یا در بهترین حالت برای سیستم عامل های Win32 و Unix در دسترس هستند. از طرف دیگر، برای بسیاری از سیستم عامل های اصلی توسعه و استقرار که برای رایانه های شخصی و ایستگاه های کاری در نظر گرفته شده بود، در دسترس بود.
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |