Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/schwa/renderkit
Yet another Metal Rendering engine experiment…
https://github.com/schwa/renderkit
metal swift swiftui
Last synced: about 2 months ago
JSON representation
Yet another Metal Rendering engine experiment…
- Host: GitHub
- URL: https://github.com/schwa/renderkit
- Owner: schwa
- License: bsd-3-clause
- Created: 2021-12-26T20:00:13.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-12T17:44:35.000Z (8 months ago)
- Last Synced: 2024-05-13T02:33:20.862Z (8 months ago)
- Topics: metal, swift, swiftui
- Language: Swift
- Homepage:
- Size: 121 MB
- Stars: 11
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RenderKit
Yet another Metal Rendering engine experiment…
## Assumptions
Post-multiplication, Column-Major, Right-handed, Y up
## Screenshots
![Latest Screenshot]()
![Older Screenshot]()## Goals
### Longer Term
* Tie into WASD/Game Controller system (from RenderKit - move code to Everything)
* Render the position of lights
* Learn from [RenderKit2](https://github.com/schwa/RenderKit/tree/RenderKit2) & [RenderKitClassic](https://github.com/schwa/RenderKit/tree/RenderKitClassic)
* More type-safety. Especially pipeline attributes
* Async. (Good luck)
* Outputs
* A unified "renderable" system. Can render to any of multiple locations - MTKView, "raw" CAMetalLayer, offscreen textures, VistionKit immersive spaces etc.
* ~~Built-in offscreen renderer~~ (Working but API can be fixed)
* Built-in support for ~~MTKView~~ and CAMetalLayer
* VisionKit 'CPSceneSessionRoleImmersiveSpaceApplication' output
* (The more outputs the less fragile the APO will be)
* Simpler API for just getting shit on-screen
* Create a simple render API that takes a single pipeline
* RenderEnvironment variables modelled after SwiftUI.Environment for safety
* Use Function-builder for pipelines/stages etc
* Cleaner render model that more closely matches Metal.
* Built-in support for RenderGraph editor (use NodeEditor)
* Work with multi-sample, ray tracing
* Figure out how to #include metal headers across packages (likely not possible).
* Get more helper code of RenderKit and into MetalSupport etc
* Use Spatial framework
* Use the shape code from Spatial to bring in a `shape3d` type that can export MTKMeshes* Simple SwiftUI Canvas style line drawing mode.
* Some of the rotation code here may be useful - what else is new in Spatial?
* Bring over my Projection package (3d vector graphics)
* Take advantage of Swift macros (macro to encode struct into a buffer compatible with SwiftUI)
* Sort out the various projection APIs## Links
*