https://github.com/roeliefantje/ultimate-voxel-engine
This project is my attempt at creating the ultimate voxel engine. Using path tracing to render a large amount of tiny voxels.
https://github.com/roeliefantje/ultimate-voxel-engine
rendering rendering-3d-graphics rust voxel-engine wgpu wgpu-rs
Last synced: about 1 month ago
JSON representation
This project is my attempt at creating the ultimate voxel engine. Using path tracing to render a large amount of tiny voxels.
- Host: GitHub
- URL: https://github.com/roeliefantje/ultimate-voxel-engine
- Owner: Roeliefantje
- Created: 2024-06-29T14:35:53.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-27T21:23:40.000Z (almost 2 years ago)
- Last Synced: 2025-01-02T02:35:49.618Z (over 1 year ago)
- Topics: rendering, rendering-3d-graphics, rust, voxel-engine, wgpu, wgpu-rs
- Language: Rust
- Homepage:
- Size: 450 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# The "Ultimate" voxel engine Project
This project is my attempt at the ultimate voxel engine, built in rust using wgpu.
I started this project in order to get more familiar with both wgpu and Rust, by building a project I would like doing.
## Features
### Rasterization renderer
I plan to support rasterization rendering of the terrain mostly to compare performance against the path tracer.
Most of it is already in place and can be ran using:
``` cargo --features rasterization ```
It is still very basic and doesn't even support lighting yet.
### Path Tracer
This is the main way I plan on rendering the scene. A start is made by using a compute shader to calculate each pixel.
I still plan on accelerating this by using some sort of acceleration structure.
i.e. BVH, Octree.
I want to support a dynamically generated scene, so I need to figure out a way to allow changing bounds of certain nodes.
### Terrain Generation
I have some simple perlin noise terrain generation setup for the rasterizer, but it is not yet in use by the path tracer.
I plan to improve this when I either feel like doing so or to improve stress testing of my path tracer.
## Example pictures
Path tracer in action:

Rasterization + Chunk generation:

## Controls
The camera can be controlled through the mouse and WASD for the Path tracer.
I plan to upgrade the rasterization camera movement to be the same, but right now you can only move using WASD.