LWJGL入门指南:序章(我的世界(Minecraft)java原版同款游戏库)

LWJGL系列文章

前言

大家应该知道《我的世界》(Minecraft)原版是java开发的,那么它是基于什么游戏引擎开发的呢?这就是博主为什么突然研究LWJGL的目的,带大家一起看看LWJGL是啥,它能做什么,闲言少说,让我们开始进入LWJGL的世界吧。

LWJGL简介

LWJGL是一个Java库,它支持跨平台访问流行的本机API,这些API在图形(OpenGL,Vulkan),音频(OpenAL)和并行计算(OpenCL)应用程序的开发中很有用。这种访问是直接的,高性能的,而且还包装在适用于Java生态系统的类型安全和用户友好的层中。
LW JGL是一种启用技术,并提供低级别访问。它不是框架,并且不提供比本机库公开的功能更高的实用程序。因此,鼓励新手程序员在直接使用库之前尝试使用LWJGL的框架或游戏引擎之一。
LW JGL是开源软件,可免费获得。

LWJGL提供类似javacv一样的多平台opengl、vulkan、OpenAL、OpenCL、GLFW、CUDA、OpenVR, LibOVR库绑定和其他本机API绑定

GLFW是什么

LWJGL使用GLFW作为input输入监听处理库和主要的opengl绑定库。
GLFW是一个用于OpenGL,Op​​enGL ES和Vulkan开发的开源,多平台库。它提供了一个简单的API,用于创建窗口,上下文和表面,接收输入和事件。
GLFW用C编写,支持Windows,macOS,X11和Wayland。

LWJGL使用GLFW的demo示例:https://github.com/LWJGL/lwjgl3-wiki/wiki/2.6.3-Input-handling-with-GLFW

LWJGL项目和文档

  • gihub维护地址:https://github.com/LWJGL/lwjgl3
  • 论坛地址:http://forum.lwjgl.org/
  • 开发指南:https://www.lwjgl.org/guide
  • api手册:https://javadoc.lwjgl.org/overview-summary.html
  • 各个绑定库使用demo代码:https://github.com/LWJGL/lwjgl3/tree/master/modules/samples/src/test/java/org/lwjgl/demo
  • demo示例:https://github.com/LWJGL/lwjgl3-demos

底层绑定相关文档

  • vulkan:https://www.khronos.org/vulkan/
  • opengl:https://www.khronos.org/opengl/
  • webgl:https://www.khronos.org/webgl/
  • glfw:http://www.glfw.org/docs/latest/

steam游戏平台对接:

  • steamworks4j:http://code-disaster.github.io/steamworks4j/
  • steamworks4j文档:http://code-disaster.github.io/steamworks4j/showcase.html

LWJGL衍生游戏框架

2d游戏框架

  • libgdx:https://libgdx.badlogicgames.com/

3d游戏框架

  • jmonkey:https://jmonkeyengine.org/

api手册

LWJGL包说明

  • 包 描述
  • org.lwjgl 基本的LWJGL软件包。
  • org.lwjgl.assimp 包含对Assimp库的绑定,该库用于导入和导出各种3D模型格式,包括场景后处理以生成丢失的渲染数据。
  • org.lwjgl.bgfx 包含对bgfx库的绑定。
  • org.lwjgl.cuda 包含与CUDA的绑定。
  • org.lwjgl.egl 包含对EGL API的绑定,EGL API是Khronos渲染API(例如OpenGL ES或OpenVG)与基础本机平台窗口系统之间的接口。
  • org.lwjgl.glfw 包含与GLFW库的绑定。
  • org.lwjgl.llvm 包含与LLVM的绑定,LLVM是模块化和可重用的编译器和工具链技术的集合。
  • org.lwjgl.nanovg 包含与NanoVG的绑定,NanoVG是用于OpenGL的小型抗锯齿矢量图形渲染库。
  • org.lwjgl.nuklear 与Nuklear库的绑定。
  • org.lwjgl.odbc 包含与ODBC的绑定。
  • org.lwjgl.openal 包含与OpenAL跨平台3D音频API的绑定。
  • org.lwjgl.opencl 包含与OpenCL跨平台并行编程API的绑定。
  • org.lwjgl.opengl 包含与OpenGL跨平台2D和3D渲染API的绑定。
  • org.lwjgl.opengles 包含对OpenGL ES的绑定,OpenGL ES是一种免版税的跨平台API,用于嵌入式系统(包括控制台,电话,设备和车辆)上的全功能2D和3D图形。
  • org.lwjgl.openvr 包含与OpenVR的绑定。
  • org.lwjgl.ovr 包含与LibOVR(Oculus SDK库)的绑定。
  • org.lwjgl.stb 包含对stb(一组单文件公共域库)的绑定。
  • org.lwjgl.system 包含使LWJGL工作所需的实现细节和特定于平台的功能。
  • org.lwjgl.system.dyncall 包含与dyncall库的绑定。
  • org.lwjgl.system.jawt 包含与AWT本机接口(jawt.h)的绑定。
  • org.lwjgl.system.jemalloc 包含与jemalloc库的绑定。
  • org.lwjgl.system.jni 包含对Java本机接口(JNI)的绑定。
  • org.lwjgl.system.libc 包含对标准C库API的绑定。
  • org.lwjgl.system.linux 包含对特定于Linux操作系统的本机API的绑定。
  • org.lwjgl.system.macosx 包含对特定于macOS操作系统的本机API的绑定。
  • org.lwjgl.system.rpmalloc 包含对rpmalloc库的绑定。
  • org.lwjgl.system.windows 包含对特定于Windows操作系统的本机API的绑定。
  • org.lwjgl.util.libdivide 包含与libdivide的绑定。
  • org.lwjgl.util.lmdb 绑定到LMDB,即Symas Lightning内存映射数据库。
  • org.lwjgl.util.lz4 包含与LZ4的绑定,LZ4是一种无损压缩算法,可提供每核心大于500 MB / s的压缩速度,并且可通过多核CPU进行扩展。
  • org.lwjgl.util.meow 包含与Meow哈希的绑定,Meow哈希是一种非常快速的非加密哈希。
  • org.lwjgl.util.nfd 包含对本机文件对话框的绑定,本机文件对话框是一个很小的整洁的C库,可移植地调用本机文件打开和保存对话框。
  • org.lwjgl.util.opus 包含对opus-codec库的绑定。
  • org.lwjgl.util.par 包含与标准库的绑定。
  • org.lwjgl.util.remotery 包含与Remotery的绑定,Remotryry是一个实时Cpu / GPU分析器,驻留在单个C文件中,并带有在Web浏览器中运行的查看器。
  • org.lwjgl.util.shaderc 包含与Shaderc的绑定,Shaderc是用于着色器编译的库的集合。
  • org.lwjgl.util.simd 包含对SSE宏的绑定。
  • org.lwjgl.util.tinyexr 包含对Tiny OpenEXR图像库的绑定。
  • org.lwjgl.util.tinyfd 包含对小文件对话框的绑定。
  • org.lwjgl.util.tootle 包含与AMD Tootle的绑定。
  • org.lwjgl.util.vma 包含与Vulkan的绑定,Vulkan是易于集成的Vulkan内存分配库。
  • org.lwjgl.util.xxhash 包含对xxHash的绑定,xxHash是一种非常流行的非加密哈希算法。
  • org.lwjgl.util.yoga 包含绑定到瑜伽。
  • org.lwjgl.util.zstd 包含与Zstandard(zstd)(一种快速的无损压缩算法)的绑定,以zlib级别和更好的压缩率针对实时压缩方案。
  • org.lwjgl.vulkan 包含与Vulkan的绑定,Vulkan是新一代的图形和计算API,可高效,跨平台访问用于从PC和控制台到移动电话和嵌入式平台的各种设备中使用的现代GPU。

支持eguid原创文章,欢迎“关注、点赞、收藏”一键三连。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__0809 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值