LWJGL (https://www.lwjgl.org) 是一個Java 函式庫,支援跨平台存取流行的本機API,可用於圖形(OpenGL/Vulkan)、音訊(OpenAL) 和並行運算(OpenCL) 應用程式的開發。這種存取是直接且高效能的,同時也封裝在類型安全且使用者友好的層中,適合 Java 生態系統。
LWJGL 是一項支援技術,提供低階存取。它不是一個框架,並且不提供比本機庫公開的更高級別的實用程式。因此,鼓勵新手程式設計師在直接使用該程式庫之前嘗試使用 LWJGL 的框架或遊戲引擎之一。
LWJGL 是開源軟體,可免費免費使用。
有用的連結:
接觸:
如果您想做出貢獻,請參閱文件/自述文件以快速概述專案結構、安裝說明和設定選項。
從版本3.1.0
開始,LWJGL 作為一組模組進行分發。僅核心模組是必需的,所有綁定都是可選的(但某些綁定依賴其他綁定)。下載 LWJGL 最簡單的方法是使用網站上的建置配置器。
建置配置器產生可新增至現有專案的Maven 和 Gradle聲明。這是開發時使用 LWJGL 最簡單的方法。
LWJGL 也可以作為一組簡單的 JAR 檔案下載。每個模組由以下文件組成:
要編譯和運行 LWJGL 應用程序,核心模組的基本 JAR 檔案和本機 JAR 檔案以及使用的每個綁定都應添加到類別路徑中。 LWJGL 將本機提取到臨時資料夾並自動載入它們,因此無需進一步配置。如果需要更多客製化(例如,在建立特定於平台的安裝程式時),可以手動提取本機並透過java.library.path
載入。如需更多選項,請參閱配置類別。
LWJGL 3 需要 Java 8 或更高版本來建置和運行,目前支援以下平台/架構:
範例程式碼:
若要將 LWJGL 2 程式碼移轉到 LWJGL 3,請參閱遷移指南。
LWJGL 用戶面臨的最常見問題可以透過以下方式輕鬆解決:
LWJGLX/debug 是一個 Java 代理,可以自動偵測許多這類問題。它還可以產生追蹤日誌,該日誌在向 LWJGL 報告問題時非常有用。
當尋求協助或懷疑 LWJGL 中存在錯誤時,準備重現問題的 MVCE(最小、完整和可驗證範例)將提高獲得快速且有用回應的機會。
圖書館 | 描述 |
---|---|
乙二醇 | Khronos 渲染 API(例如 OpenGL ES 或 OpenVG)與底層本機平台視窗系統之間的介面。 |
KTX(Khronos 紋理) | OpenGL®、Vulkan® 和其他 GPU API 紋理的輕量級容器。 |
OpenCL | 一種開放、免版稅的標準,適用於個人電腦、伺服器、行動裝置和嵌入式平台中的各種處理器的跨平台並行程式設計。 |
OpenGL | 業界採用最廣泛的 2D 和 3D 圖形 API,為各種電腦平台帶來了數以千計的應用程式。 |
OpenGL ES | 免版稅、跨平台 API,用於嵌入式系統(包括控制台、電話、電器和車輛)上的全功能 2D 和 3D 圖形。 |
開放XR | 一種免版稅的開放標準,提供對擴增實境 (AR) 和虛擬實境 (VR)(統稱為 XR)平台和設備的高效能存取。 |
伏爾甘 | 新一代圖形和運算 API,可提供對 PC 和控制台、行動電話和嵌入式平台等各種裝置中使用的現代 GPU 的高效、跨平台存取。 |
圖書館 | 描述 |
---|---|
GLFW | 建立多個窗口,處理使用者輸入(鍵盤、滑鼠、遊戲週邊設備)並管理上下文。還具有多顯示器支援、剪貼簿存取、檔案拖放等功能。 |
賈瓦特 | AWT 本機介面。 |
擴充本機檔案對話框 | 一個小型 C 函式庫,可移植地呼叫本機檔案開啟、資料夾選擇和檔案儲存對話方塊。 |
蒂尼夫德 | 本機對話框庫。 |
圖書館 | 描述 |
---|---|
調頻調製 | 用於向任何遊戲添加聲音和音樂的端到端解決方案。 |
開放AL | 跨平台 3D 音訊 API,適合與遊戲應用程式和許多其他類型的音訊應用程式一起使用。 |
OpenAL軟體 | OpenAL 3D 音訊 API 的 LGPL 授權的跨平台軟體實作。 |
作品 | 完全開放、免版稅、高度通用的音訊編解碼器。 |
圖書館 | 描述 |
---|---|
阿辛普 | 一個可移植的開源程式庫,用於以統一的方式匯入各種知名的 3D 模型格式。 |
BGFX | 跨平台、與圖形 API 無關的「自帶引擎/框架」風格渲染庫,根據寬鬆的 BSD-2 條款開源授權授權。 |
自由類型 | 用於渲染字體的免費軟體庫。 |
哈夫巴茲 | 一個文字整形庫,允許程式將 Unicode 輸入序列轉換為正確格式化和定位的字形輸出 - 適用於任何書寫系統和語言。 |
網格優化器 | 一個網格優化庫,可以使網格更小、渲染速度更快。 |
產生器 | 多通道有符號距離場發生器。 |
奈米SVG | 一個簡單愚蠢的 SVG 解析器。 |
奈米VG | 一個小型的 OpenGL 抗鋸齒向量圖形渲染庫。 |
核 | 用 ANSI C 編寫並在公共領域獲得許可的最小狀態立即模式圖形使用者介面工具包。 |
par_octasphere | 為球體、圓角盒和膠囊產生三角形網格。 |
par_shapes | 產生參數化曲面和其他簡單形狀。 |
par_streamlines | 對寬直線和曲線進行三角測量。 |
著色器 | 用於著色器編譯的函式庫的集合。 |
SPIRV-Cross | 用於對 SPIR-V 執行反射並將 SPIR-V 反組譯回高階語言的函式庫。 |
微小的 OpenEXR | 一個小型的、僅包含標頭的庫,用於載入和保存 OpenEXR(.exr) 映像。 |
圖特爾 (AMD) | 一個 3D 三角形網格最佳化庫,改進了現有的網格預處理技術。 |
Vulkan 記憶體分配器 | 一個易於整合的 Vulkan 記憶體分配庫。 |
瑜珈 | 一個實作 Flexbox 的開源、跨平台佈局庫。 |
圖書館 | 描述 |
---|---|
LibOVR | Oculus SDK 的 API。 |
開放VR | 允許存取來自多個供應商的 VR 硬體的 API 和運行時,而不要求應用程式了解其目標硬體的具體知識。 |
圖書館 | 描述 |
---|---|
stb_easy_font | 快速且易於部署的點陣字體,用於列印幀速率等。 |
機上盒圖像 | 從檔案/記憶體載入/解碼影像:JPG、PNG、TGA、BMP、PSD、GIF、HDR、PIC |
stb_圖片_調整大小 | 以良好的品質調整影像的大小。 |
stb_image_write | 映像寫入磁碟:PNG、TGA、BMP |
機上盒柏林 | 修訂了 Perlin 雜訊(3D 輸入,1D 輸出)。 |
stb_rect_pack | 簡單的二維矩形包裝機,品質不錯。 |
stb_truetype | 解析、解碼和光柵化 truetype 字型中的字元。 |
stb_vorbis | 將 ogg vorbis 檔案從檔案/記憶體解碼為浮點/16 位元帶符號輸出。 |
圖書館 | 描述 |
---|---|
CUDA | NVIDIA 開發的用於 GPU 上通用運算的平行運算平台和程式設計模型。 |
哈沃洛克 | 現代架構分層拓撲的可移植抽象,包括 NUMA 記憶體節點、套接字、共享快取、核心和同時多執行緒。 |
傑馬洛克 | 通用的 malloc 實現,強調避免碎片和可擴展的並發支援。 |
庫菲 | 適用於各種呼叫約定的可移植的高階程式介面。 |
自由分裂 | 一個用相對便宜的乘法和位移位代替昂貴的整數除法的函式庫。 |
LLVM | 模組化且可重複使用的編譯器和工具鏈技術的集合。 |
LM資料庫 | 速度極快、記憶體效率極高的資料庫。透過記憶體映射文件,它具有純記憶體資料庫的讀取性能,同時保留標準基於磁碟的資料庫的持久性。 |
LZ4 | 一種無損資料壓縮演算法,注重壓縮和解壓縮速度。 |
喵哈希 | 極快的非加密雜湊。 |
ODBC | AC 程式語言接口,使應用程式能夠存取各種資料庫管理系統 (DBMS) 中的資料。 |
遠端控制 | 即時 CPU/GPU 分析器託管在單一 C 檔案中,並具有在 Web 瀏覽器中執行的檢視器。 |
rpmalloc | 以 C 實現的公共域跨平台無鎖線程快取 16 位元組對齊記憶體分配器。 |
xx哈希值 | 一種極快的雜湊演算法,以 RAM 速度限制運行。 |
Z 標準 (zstd) | 一種快速無損壓縮演算法,針對zlib等級的即時壓縮場景,具有更好的壓縮比。 |
綁定的使用須遵守相應許可的條款。
LWJGL 的存在感謝所有為我們集體做出貢獻和捐贈的人。