diff options
author | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-10-05 13:30:09 +1000 |
---|---|---|
committer | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-10-05 13:30:09 +1000 |
commit | 5d2b7e95d9466ddb5118beddb532e2c2daad5c7d (patch) | |
tree | 6a40751c22605a334845c24b8eda04016cc1a73a | |
parent | 4248ca9d432f33e18baf4ce193d1a9b7f7d1e9a9 (diff) |
add goals to readme
-rw-r--r-- | README.md | 56 | ||||
-rw-r--r-- | default_scene.json | 1 |
2 files changed, 19 insertions, 38 deletions
@@ -1,30 +1,32 @@ # celeritas-core -Celeritas is an engine 'core' written in C that acts as an extendable base layer for creating custom game-specific "engines" (frameworks). -Celeritas Core focuses on rendering and platform abstractions, helpful wrappers around input handling, and common components needed by 3D game or interactive applications -such as cameras, collision detection, etc. -Bindings to Rust are WIP and other languages are planned for the future. +Celeritas is an engine 'core' written in C that acts as an extendable base layer for creating custom game-specific "engines" (frameworks) or other +multimedia libraries. -Higher-level concepts can then be overlaid on top of this core! +Celeritas Core focuses on rendering and platform abstractions, helpful wrappers around input handling, and common components needed by 3D game or interactive applications such as cameras, collision detection, etc. -![Backpack model with lighting](examples/obj_loading/backpack_screenshot.png) +Bindings to Rust are WIP and other languages are planned for the future. -**Work-in-progress**: This code is currently in flux as I experiment with APIs and is ultimately intended to support a 3D game I'm in the process of making. +Higher-level concepts can then be overlaid on top of this core! All third-party dependencies are licensed under their own license. -## Features +## Goals + +- Easy to compile +- Headless build + tests for reliability +- Bindgen +- Targets Vulkan 1.3 for simpler code +- Plugin system (?) -- Log level based logging -- Arena allocator -- Pool allocator -- Physically based rendering (PBR) -- GLTF loading +Renderer Goals: -#### RAL (Render Abstraction Layer) -- [x] Buffer/texture creation -- [x] Graphics pipeline creation/deletion -- [ ] Compute shader pipeline creation/deletion/run +- Cascading Shadow Maps +- PBR (Filament) +- GI +- Forward+ +- Water +- Terrain ## Developing @@ -34,24 +36,4 @@ All third-party dependencies are licensed under their own license. * `nm -C build/libcore.a` * Generate compiler_commands.json * `xmake project -k compile_commands` -* Formatting - * `xmake format` - * Lint (no change) `find src/ -iname *.h -o -iname *.c | xargs clang-format --style=file --dry-run --Werror` - * Format (edit in place) `find src/ \( -iname "*.h" -o -iname "*.c" \) | xargs clang-format -i --style=file` - * `clang-format` must be installed! -* Documentation - * serve mkdocs locally - * `docker run --rm -it -p 8000:8000 -v ${PWD}:/docs squidfunk/mkdocs-material` - * Build docs static site - * `docker run --rm -it -v ${PWD}:/docs squidfunk/mkdocs-material build` - - -#### Logistics - -- [ ] Replace screenshot with one using PBR + skybox + shadows -- [ ] Update website -- [ ] Check licenses of assets currently in `assets` folder - -## Questions -- How to expose material properties in the immediate mode UI? diff --git a/default_scene.json b/default_scene.json deleted file mode 100644 index fda2c94..0000000 --- a/default_scene.json +++ /dev/null @@ -1 +0,0 @@ -{"sun":{"direction":{"x":0.0,"y":1.0,"z":0.0},"ambient":{"x":1.0,"y":1.0,"z":1.0},"diffuse":{"x":1.0,"y":1.0,"z":1.0},"specular":{"x":0.0,"y":0.0,"z":0.0}},"point_lights":[null,null,null,null],"camera_orientation":[{"x":18.9,"y":10.6,"z":11.6},{"x":-0.6,"y":-0.2,"z":-0.7}],"models":[]}
\ No newline at end of file |