NullandKale / GPURayTracer

Nullrender is a real-time GPU accelerated ray tracing renderer written in c#.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NULLrender

rendered spheres

Nullrender is a GPU accelerated ray tracing renderer written in c#. As with most modern ray tracing performance is maintained by Temporal, Zbuffer, and Metadata driven denoising, currently at full resolution the scene above renders at 60+ fps on a rtx 2060. As of the time of writing the renderer supports spheres and triangles with albedo, refractions, reflections, and shadows, as well as sphere lights. Full mesh loading is currently in the works.

My ultimate goal is to make a simple open-source component based ray traced game engine for low poly / low res games with modern graphics tech. I am up for collaboration in this, so if you are interested in this at all I would be happy to have the help.

A test build to play with is available here. If no cuda device is found it will render in CPU mode.

Ways to contribute:

Let me know you are interested in working on a feature by Email, PM, Github, or the discord server. Even downloading the test builds and testing performance on different hardware would be useful.

You can also just hop on the discord server to talk about ray tracing and or how all of this works.

Performance

Nullrender does not use any RTX features, so it should have decent performance on a wide range of Nvidia GPU hardware.

My minimum goal for performance is 60 fps @ 1/2 res on a 2060 with around 10k triangles and a few dozen lights. Think Quake2 RTX level graphics. I think this is achievable with some optimization. I would not be against adding RTX features or changing the rendering to c++ for better cuda support as a last resort.

There are no acceleration structures built into the ray tracing, but they are planned for after triangles are added.

WPF? Why WPF? Why C#?

I was initially just testing out ILGPU and dotnet WPF, but when I realized the performance I decided it would be fun to work on a project I have been wanting to do for a while. I love making game engines and ray tracing is so powerful and is so achievable now, why not?

Dotnet WPF also has planned linux support so linux is a possibility as well.

Features currently being worked on:

  • Texture mapping and memory management
  • Sparse Voxel Ray tracing
  • Triangle meshes and mesh memory management

Planned features that need help:

  • Spatio-Temporal Denoising
  • Blue noise for RNG
  • Normal maps
  • BVH object hit
  • Water Material with caustics?

Resources for Ray Tracing / Cuda

Fun Graphical Glitches

Two Triangles

Bad Shadows

Smear

About

Nullrender is a real-time GPU accelerated ray tracing renderer written in c#.


Languages

Language:C# 100.0%