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 در دسترس هستند. از طرف دیگر، برای بسیاری از سیستم عاملهای اصلی توسعه و استقرار که برای رایانههای شخصی و ایستگاههای کاری در نظر گرفته شده بود، در دسترس بود.
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
سایت جاواپرو با هدف تولید محتوای آموزشی با کیفیت رایگان در زمینه برنامه نویسی جاوا و اندروید فعالیت خود را در سال 1395 شروع کرد.امیدواریم بتوانیم دامنه گسترده تری از موضوعات پر نیاز در زمینه برنامه نویسی جاوا و اندروید را البته با حمایت شما پوشش دهیم.
تلفن تماس: 09301904690