glow
所属分类:3D图形编程
开发工具:C++
文件大小:0KB
下载次数:0
上传日期:2023-05-09 10:04:49
上 传 者:
sh-1993
说明: 3D图形引擎,为娱乐而开发。
(A 3D graphics engine, developed for fun.)
文件列表:
.clang-format (1856, 2023-08-06)
.clang-tidy (2586, 2023-08-06)
CMakeLists.txt (2065, 2023-08-06)
LICENSE (1072, 2023-08-06)
assets/ (0, 2023-08-06)
assets/fonts/ (0, 2023-08-06)
assets/fonts/fa/ (0, 2023-08-06)
assets/fonts/fa/LICENSE.txt (7427, 2023-08-06)
assets/fonts/fa/fa-solid-900.ttf (394832, 2023-08-06)
assets/fonts/roboto/ (0, 2023-08-06)
assets/fonts/roboto/LICENSE.txt (11358, 2023-08-06)
assets/fonts/roboto/Roboto-Regular.ttf (168260, 2023-08-06)
assets/shaders/ (0, 2023-08-06)
assets/shaders/gl/ (0, 2023-08-06)
assets/shaders/gl/environment.frag (1181, 2023-08-06)
assets/shaders/gl/environment.vert (265, 2023-08-06)
assets/shaders/gl/framebuffer.frag (430, 2023-08-06)
assets/shaders/gl/framebuffer.vert (196, 2023-08-06)
assets/shaders/gl/shading.frag (622, 2023-08-06)
assets/shaders/gl/shading.vert (640, 2023-08-06)
assets/shaders/vk/ (0, 2023-08-06)
assets/shaders/vk/compile.sh (105, 2023-08-06)
assets/shaders/vk/shading.frag (689, 2023-08-06)
assets/shaders/vk/shading.frag.spv (1252, 2023-08-06)
assets/shaders/vk/shading.vert (895, 2023-08-06)
assets/shaders/vk/shading.vert.spv (2116, 2023-08-06)
cmake/ (0, 2023-08-06)
cmake/glow.cmake (4452, 2023-08-06)
lib/ (0, 2023-08-06)
lib/IconsFontAwesome6.h (73969, 2023-08-06)
lib/ImGuizmo/ (0, 2023-08-06)
lib/imgui/ (0, 2023-08-06)
src/ (0, 2023-08-06)
... ...
# Glow
[![CI](https://github.com/albin-johansson/glow/actions/workflows/ci.yml/badge.svg)](https://github.com/albin-johansson/glow/actions/workflows/ci.yml)
A work in progress 3D graphics engine, developed for fun.
## Purpose
This project is developed for recreational and educational purposes.
The goal is to be able to render nice looking scenes using modern graphics APIs, with a performant and readable code base.
### What this project is not
* A game engine
* A 3D model editor
## Features
* Written in C++23
* ECS architecture
* Support for common 3D model file formats, such as `.dae`, `.fbx`, and `.obj`.
* OpenGL 4.1.0 backend
* Vulkan 1.2 backend
## Build
This project uses [Vcpkg](https://github.com/microsoft/vcpkg) for dependency management.
However, you will need to install the [Vulkan SDK](https://vulkan.lunarg.com/) to build the Vulkan backend.
You can verify your Vulkan installation by checking the value of the `VULKAN_SDK` environment variable.
Information on Vcpkg triplets can be found [here](https://github.com/microsoft/vcpkg/docs/users/triplets.md).
```
> export VCPKG_ROOT=
> mkdir build && cd build
> cmake .. -GNinja \
-DCMAKE_BUILD_TYPE= \
-DVCPKG_TARGET_TRIPLET=
> ninja
```
## Usage
```
Usage: glow [options]
Options:
--api, -a 'OpenGL' or 'Vulkan', defaults to 'OpenGL' (optional)
--env, -e Path to an environment texture to load at startup (optional)
--models, -m Space-separated list of model file paths to load at startup (optional)
--log, -l Verbosity of log output, valid values are within [0, 6], defaults to 4 (optional)
```
Some examples are provided below.
```shell
# Use default graphics API, and no initial environment texture or models
> ./glow
# Use a specific graphics API
> ./glow --api Vulkan
# Disable all logging output
> ./glow --log 0
# Load an environment texture and several models
> ./glow --env textures/env.hdr --models models/teapot.dae models/kettle.fbx
```
## Dependencies
See [vcpkg.json](vcpkg.json) for the full Vcpkg manifest file.
* [argparse](https://github.com/p-ranav/argparse)
* [assimp](https://github.com/assimp/assimp)
* [Boost](https://www.boost.org/)
* [entt](https://github.com/skypjack/entt)
* [fmt](https://github.com/fmtlib/fmt)
* [Font Awesome](https://github.com/FortAwesome/Font-Awesome)
* [glad](https://github.com/Dav1dde/glad)
* [glm](https://github.com/g-truc/glm)
* [Dear ImGui](https://github.com/ocornut/imgui) (with modifications from [this](https://github.com/albin-johansson/imgui) fork)
* [IconFontCppHeaders](https://github.com/juliettef/IconFontCppHeaders)
* [ImGuizmo](https://github.com/CedricGuillemet/ImGuizmo)
* [Magic Enum C++](https://github.com/Neargye/magic_enum)
* [SDL2](https://github.com/libsdl-org/SDL)
* [spdlog](https://github.com/gabime/spdlog)
* [stb](https://github.com/nothings/stb)
* [Vulkan Memory Allocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator)
近期下载者:
相关文件:
收藏者: