3D FPS game engine with full dynamic lighting and shadows
| Files | Last commit | Last update |
|---|---|---|
| 2 months ago | ||
| 1 year ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 2 months ago | ||
| 5 months ago | ||
| 1 month ago | ||
| 8 years ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 6 years ago | ||
| 7 years ago | ||
| 4 months ago | ||
| 4 years ago | ||
| 1 month ago | ||
| 7 years ago | ||
| 7 years ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 7 years ago | ||
| 8 years ago | ||
| 2 months ago |
Translated by AI, submit an issue feedback
LimonEngine
Limon 是一款跨平台 3D 游戏引擎,主要专注于第一人称游戏开发。其开发重点在于易用性和易学习性。
功能概述
- 可配置的基于节点的渲染管线编辑器
- 自动扫描着色器,通过反射创建节点
- 用于阶段设置/帧渲染/清理的 CPU 端扩展端点
- 基于标签的过滤,可针对特定对象定位特定阶段
- 多线程 4 阶段过滤,包括每个摄像机的视锥体和遮挡剔除
- 所有渲染均由同一系统完成
- 已发布的渲染功能
- 级联阴影贴图,支持可选交错
- 点阴影映射
- SSAO(包括 CPU 端的示例渲染方法)
- 自定义摄像机扩展,支持透视和正交投影
- 包含对象附加摄像机、正交玩家摄像机的示例
- 软件遮挡剔除,同时支持透视和正交摄像机
- 刚体物理
- 3D 空间音效、音乐和音频通道
- 内置编辑器,带有动画序列器
- 完全可定制的输入系统,支持游戏手柄
- 材质编辑器
- 自动导航网格生成和多线程寻路
- Tracy 分析器集成,包括 GPU 阶段、扩展以及供用户使用的 API
- 编辑器内置 Tracy 分析器服务器,方便快速查看
- C++ 和 Python API 用于扩展,支持动态加载扩展
有关详细信息,请查看 项目网站
Windows、Linux 和 MacOS 的预构建二进制文件可在 此处获取
文档托管在 readthedocs
如果您想交流,我们有一个 Discord 频道
如需演示,请查看以下视频:
有关功能,请查看功能视频:
在 Ubuntu 26.04 上从源代码构建:
步骤 1)打开终端,然后复制并粘贴以下命令
$ sudo apt install cmake git libassimp-dev libbullet-dev libsdl3-dev libsdl3-image-dev libfreetype6-dev libtinyxml2-dev libglew-dev build-essential libglm-dev
步骤 2)由于 GitHub 限制了 LFS 带宽,因此已将其移除。克隆 LimonEngine 仓库时应同时包含所有所需数据:
$ git clone https://github.com/enginmanap/limonEngine.git && cd limonEngine && git submodule update --init
步骤 3) 接下来,我们需要导航到该目录并运行 cmake:
$ mkdir build && cd build && cmake ../ && cd ..
步骤 4) 最后,我们需要导航到 build 目录,编译源代码并将 Data 目录复制到 build 目录:
$ cd build && make && cp -a ../Data .
在 Windows 上从源代码构建
Windows 平台使用 MSYS2 进行编译。像安装任何 Windows 应用程序一样安装 MSYS2 后,打开 msys2-terminal,并安装依赖项:
$ pacman -S cmake mingw-w64-x86_64-make mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb cmake mingw-w64-x86_64-assimp cmake mingw-w64-x86_64-bullet mingw-w64-x86_64-SDL3 mingw-w64-x86_64-SDL3_image mingw-w64-x86_64-tinyxml2 mingw-w64-x86_64-glew mingw-w64-x86_64-glm mingw-w64-x86_64-freetype
之后,你可以在同一个终端中使用 Ubuntu 说明的步骤 2 - 4。
运行
启动:
- 引擎需要一个参数作为要加载的世界路径
- 如果未传递参数,则回退到
./Data/Maps/World001.xml
$ ./LimonEngine ./Data/Maps/World001.xml
在应用程序中:
- 按下
0键可切换至调试模式,此时会渲染物理碰撞网格,并使玩家与物理系统分离(可飞行并穿过物体) - 按下
F2键可切换至编辑器模式,该模式允许创建地图 - 按下
+和-键可调整鼠标灵敏度 - 按常规操作,使用
wasd键移动,使用鼠标环顾四周
在编辑器模式中:
- 所有资源会自动扫描并列出,可通过筛选小部件进一步筛选
- 3D 对象资源利用世界光照信息提供预览
- 纹理提供预览
- 创建对象后,可在编辑器中或运行时通过 API 更改质量;引擎会自动交换碰撞形状(全网格/烘焙网格与凸包)并重新注册到物理系统。这对始终为运动学的动画对象无影响
- 无生命对象不允许拥有 AI
- 可在编辑器中为门等物体创建动画。创建动画时,时间步长为每秒 60 帧
- 当通过动画编辑器创建新动画时,用于创建动画的对象将被假定拥有此动画。可使用“移除动画”按钮将其移除
- 可创建透视相机,将其附加到使用序列器制作动画的对象上,并激活相机以实现过场动画或类似的相机效果
使用 C++ 和 Python 进行扩展
- Limon Engine 有 5 种扩展类型:
- Actions(动作):用于触发器和按钮
- AI(人工智能):用于角色
- Player(玩家):用于输入处理
- Camera Attachment(相机附件):用于自定义相机行为(透视和正交)
- RenderMethod(渲染方法):用于自定义 GPU 渲染图元,并接入渲染管线编辑器
- 所有扩展类型均通过相同的统一参数约定进行配置,且可从 C++ 或 Python 中使用
- 统一参数自动提供序列化和编辑器界面,以及与引擎和其他扩展的通信功能
- 引擎尝试从以下位置加载自定义 C++ 扩展:Windows 系统为
libcustomTriggers.dll,GNU/Linux 系统为libcustomTriggers.so,macOS 系统为libcustomTriggers.dylib。如果在地图中使用了某个自定义扩展而对应的库缺失,则该自定义扩展将无法工作,但地图的其他部分不受影响。Python 扩展可从脚本文件中发现,无需单独的库
详情请参阅 documentation
Introduction
3D FPS game engine with full dynamic lighting and shadows
LGPL-3.0 C++2.18 KCommits3d3d-engine3d-graphicsanimation-3dcross-platformgame-developmentgame-enginehacktoberfesthacktoberfest2020openalopenglphysics
Customize your domain
