This is an experimental project and is in actively development. The APIs, implementations and docs may subject to rapid changes. Please don't use this project in production environments.
Luna SDK is a C++ software development framework for real-time rendering applications like video games, interactive multimedia programs, data visualization programs and so on.
Specifications:
Designed target platforms:
XMake
(tboox) and C/C++
(Microsoft) extensions on Visual Studio Code to improve development experience.Clone or download this project.
Double click setup.bat
to perform project setup.
Double click gen_vs2019.bat
or execute the following commands:
xmake project -y -k vsxmake2019 -m "debug;profile;release" Solution
if you user other Visual Studio versions, change vsxmake2019
to your version, like vsxmake2021
.
Open solution file in /Solution/vsxmake2019/Luna.sln
Build solution in Visual Studio.
setup.bat
(on Windows) or setup.sh
(on macOS) to perform project setup.xmake f {options}
. Possible options include:
-p
for target platform, including windows
and macosx
. This can be set automatically for most of the time.-a
for architecture, including x64
and arm64
. -m
for mode, including debug
, profile
and release
.--rhi_debug=y
if you want to enable the debug layer of the rendering backend (D3D12 debug layer or Vulkan validation layer).--rhi_api=XXX
for choosing the rendering backend, including D3D12
(default on Windows), Vulkan
(default on Linux) and Metal
(default on macOS). xmake build
for all projects, or xmake build {target}
for a specific target, like Studio
. You may also use Run and Debug
tab to build project if you install the XMake
extension.setup.sh
to perform project setup.gen_xcode.sh
on terminal:
chmod +x ./gen_xcode.sh
./gen_xcode.sh
build/macosx/{arch}/release/Debug
directory if the program fails to find them.Luna.xcodeproj
on the root directory of Luna SDK.The following requirements must be satisfied to run Luna SDK with Direct3D 12 rendering backend:
The following requirements must be satisfied to run Luna SDK with Vulkan rendering backend:
Vulkan runtime must be present on the system, and must be supported by your GPU and driver.
VK_KHR_maintenance1
extension support, which is mandatory in Vulkan 1.1+.
VK_KHR_swapchain
extension support, which should be supported on all platforms with display screens.
The following requirements must be satisfied to run Luna SDK with Metal rendering backend:
See Luna SDK Docs.
Issues
page is available for bug report and feature request (not guaranteed to be satisfied).Discussions
page is available for discussions.Luna SDK uses the following third party SDKs:
All SDKs are either embedded in the project, or can be fetched automatically by xmake scripts, the user does not need to install them manually.
The following SDKs are not directly used Luna SDK, but part of their design and implementation is referred when developing similar functionalities in Luna SDK:
Here are some alternative real-time rendering engines/frameworks that have similar design goals to Luna SDK.
Luna SDK is licensed under the zlib/libpng license, see LICENSE.txt for more information.
Say Hi to our mascot, a Luna SDK LOGO with two ellipses that look like eyes of one spherical robot.