/rust_test

Rust & Vulkan test projects

Primary LanguageRustMIT LicenseMIT

Rust & Vulkan test projects

Contains test projects for Rust & Vulkan

Screenshot

The first test project renders 1 million cubes, each containing a 950 MB (uncompressed) distance field volume. It uses an optimized cube renderer rendering only front faces of each cube.

The second test project is going to be using sparse octree storing a hierarchy of distance field volume bricks, each rasterized as a cube. This will both reduce the SDF volume memory consumption by 98% and make the runtime faster, as most rays missing the object will not be cast at at all, and the remaining rays will start very close to the surface.

These projects use a GPU-driven culling solution similar to the one we presented at SIGGRAPH 2015 (Media Molecule Dreams and UE5 Nanite also use similar culling): https://advances.realtimerendering.com/s2015/aaltonenhaar_siggraph2015_combined_final_footer_220dpi.pdf

Various optimization techniques will be tested on top of this prototype.

Todo

  • Conservative depth output
  • Command line tool for SDF processing (sdf.rs functionality)
  • Sparse SDF test project
  • More than one SDF volume (easy to implement for sparse SDF)

Install instructions

How to use the prototype

  • Start (cmd): cargo run --release
  • WASD = fly around
  • Drag mouse left button = rotate camera
  • Mouse wheel = jump backward / forward

How to import a new SDF (from .obj file)

License

This repository contents are released under the MIT license. See LICENSE.md for full text.