JOGL - Tổng quan

Chương này giới thiệu OpenGL, các chức năng của nó, các liên kết OpenGL trong java (GL4java, LWJGL, JOGL) và các ưu điểm của JOGL so với các liên kết OpenGL khác.

Jràng buộc ava cho Ocây bútGL(JOGL) là liên kết gần đây cho API đồ họa OpenGL trong Java. Nó là một thư viện trình bao bọc, có thể truy cập API OpenGL và nó được thiết kế để tạo các ứng dụng đồ họa 2D và 3D được mã hóa bằng Java. JOGL là một thư viện mã nguồn mở ban đầu được phát triển bởi các cựu sinh viên MIT Ken Russell và Chris Kline. Sau đó, nó đã được chấp nhận bởi nhóm chơi game tại Sun Microsystems, và bây giờ nó được duy trì bởi Java về Xử lý và Âm thanh Đồ họa (JOGAMP). JOGL hoạt động trên nhiều hệ điều hành khác nhau như Windows, Solaris, Mac OS X và Linux (trên x86).

OpenGL là gì?

OpenGL là viết tắt của Open Graphics Library, là tập hợp các lệnh để tạo đồ họa 2D và 3D. Với OpenGL, bạn có thể tạo các hình dạng 3D phức tạp bằng cách sử dụng các nguyên thủy rất cơ bản như điểm, đường thẳng, đa giác, bitmap và hình ảnh.

Dưới đây là một vài tính năng của OpenGL -

  • Nó có thể hoạt động trên nhiều nền tảng.

  • Nó có các ràng buộc trong một số ngôn ngữ như C ++, Python, v.v.

  • Nó có thể hiển thị đồ họa vector 2D và 3D.

  • Nó tương tác với Bộ xử lý đồ họa (GPU) để đạt được kết xuất chất lượng cao và nhanh chóng. Rendering là quá trình tạo hình ảnh từ mô hình 2D hoặc 3D.

  • Nó là một API tiêu chuẩn công nghiệp để viết các ứng dụng Đồ họa 3D. Ví dụ: trò chơi, trình bảo vệ màn hình, v.v.

  • Nó chứa khoảng 150 lệnh, mà các lập trình viên có thể sử dụng để chỉ định các đối tượng và hoạt động để phát triển ứng dụng.

  • Nó chứa Thư viện Tiện ích OpenGL (GLU) cung cấp các tính năng mô hình hóa khác nhau, chẳng hạn như bề mặt tứ giác và đường cong NURBS. GLU là một thành phần tiêu chuẩn của OpenGL.

  • Thiết kế của OpenGL tập trung vào hiệu quả, tính hiệu quả và việc triển khai nó trên nhiều nền tảng sử dụng nhiều ngôn ngữ. Để duy trì tính đơn giản của API OpenGL, các tác vụ cửa sổ không được bao gồm.

Do đó, OpenGL phụ thuộc vào các ngôn ngữ lập trình khác cho các tác vụ cửa sổ.

Java Binding cho OpenGL API

Nó là một đặc tả API của Java Specification Request (JSR), cho phép sử dụng OpenGL trên nền tảng Java.

Thông số kỹ thuật Chi tiết
JSR 231 Gói ràng buộc Java này hỗ trợ nền tảng Java SE.
JSR 239 Gói ràng buộc Java này hỗ trợ nền tảng Java ME.

Có nhiều ràng buộc OpenGL khác nhau trong Java. Chúng được thảo luận dưới đây

GL4java

Nó được gọi là OpenGL cho công nghệ Java. Nó có liên kết đến OpenGL 1.3 và gần như tất cả các phần mở rộng của nhà cung cấp. Ngoài ra, nó có thể được sử dụng với Bộ công cụ cửa sổ trừu tượng (AWT) và Swings. Đây là một liên kết OpenGL tập trung vào trò chơi, là một cửa sổ duy nhất hiển thị các ứng dụng toàn màn hình.

LWJGL

  • Thư viện trò chơi Java nhẹ (LWJGL), sử dụng OpenGL 1.5 và hoạt động với phiên bản java mới nhất.

  • Nó có thể sử dụng khả năng toàn màn hình của JSE 1.4. Nó có hỗ trợ hạn chế cho AWT / Swings.

  • Nó phù hợp với các thiết bị nhẹ như điện thoại di động, thiết bị nhúng, v.v.

JOGL

  • JOGL chỉ tập trung vào kết xuất 2D và 3D. Các giao diện xử lý âm thanh và đầu vào-đầu ra không được bao gồm trong JOGL.

  • Nó bao gồm Thư viện Tiện ích Đồ họa (GLU), bộ công cụ Tiện ích GL (GLUT) và API của riêng nó - Bộ công cụ Windowing Bản địa (NEWT).

Tại sao JOGL?

  • Nó cung cấp quyền truy cập đầy đủ vào các API OpenGL (phiên bản 1.0, 4.3, ES 1, ES 2 và ES 3) cũng như gần như tất cả các tiện ích mở rộng của nhà cung cấp. Do đó, tất cả các tính năng trong OpenGL đều được đưa vào JOGL.

  • JOGL tích hợp với AWT, Swing và Bộ công cụ tiện ích tiêu chuẩn (SWT). Nó cũng bao gồm Bộ công cụ tạo gió bản địa (NEWT) của riêng mình. Do đó, nó cung cấp hỗ trợ đầy đủ cho việc mở cửa sổ.

Lịch sử của JOGL

  • 1992 - Silicon Graphics Inc. phát hành đặc tả OpenGL đầu tiên.

  • 2003 - Trang web Java.net ra đời với các tính năng mới và JOGL được xuất bản lần đầu tiên trên cùng một trang web.

  • 2010 - Kể từ năm 2010, nó là dự án nguồn mở độc lập theo giấy phép BSD, đây là giấy phép tự do cho phần mềm máy tính.