Skip to content

Latest commit

 

History

History
85 lines (75 loc) · 3.55 KB

README.md

File metadata and controls

85 lines (75 loc) · 3.55 KB

my graphics playground in Rust, using:

run with cargo run -p toy-xxx --release

done and TODOs

  • data structures (in common)
    • sparse voxel N-tree (svt.rs) and ray casting: no children masks, each voxel is 4 byte pointer or data
      • performance
        • compare with ESVO performance
        • optimize it to be faster
          • rust-gpu performance problem
          • why the compute shader version is even slower?
        • beam optimization
        • redirect rays
      • API
        • load .vox file
  • shadering (in common)
    • textures
    • basic material in "One Weekend"
    • glass material seems wrong??
    • shadow rays
    • volume fog material in "Next Week"
    • .vox complete
    • more physics based materials?
    • TAA???
    • DLSS???
  • engine
    • shader hot reloading of rust-gpu shader in bevy
    • compute shader hot reloading (using include_raw is very bad)
    • creating RenderNode in bevy is really not a good exp, lot of code
    • group everything better with switchable demo, adjustable specialized constants

problems with rust-gpu

  • you cannnot do vec[0], use vec.x instead
  • no specialization constant
  • you need to be sure not to write performance bad code
    • array initialization
    • array bound check
  • perf is ~1.25 times of GLSL, it might produce branchy code seems?
  • code generation: it expand vec ops not as SpirV vec ops, but this doesn't hurt performance most of time

referneces