Skip to content

Very simplistic C# path tracer to demonstrate my software engineering skills.

Notifications You must be signed in to change notification settings

tntmeijs/TraceSharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TraceSharp - a C# path-tracer

About

This project is to demonstrate a wide variety of software engineering skills. I've tried my best to show the kind of code I would write in a production environment, including unit tests.

The project itself isn't meant to be used as a production-grade renderer. It's just a fun and interesting way for me to show my skills.

There are a lot of things I would've liked to implement but in the end this project is not meant to be a renderer. It is meant to show you a typical example of the quality of my code in a somewhat professional environment.

Learning goals

  • Unit testing
  • Clean code
  • Object-oriented programming
  • Multi-threading
  • File I/O

Project structure

  • Media contains various screenshots taken while developing the application.
  • PathTracer is the project directory.
    • Math contains mathematical constructs and helper functions.
    • Primitives contains primitives that can intersect a ray.
    • Properties contains AssemblyInfo.cs.
    • Rendering contains classes used to render scenes.
  • UnitTests contains a unit testing project to ensure all core systems are functioning.
    • Math contains math unit tests.
    • Primitives contains primitive intersection unit tests.
    • Properties contains AssemblyInfo.cs.
    • Rendering contains rendering object unit tests.

Usage

Default settings should generate a pretty noisy image. This is to be expected. All settings can be modified in the App.config file. Feel free to play around with it to see what effect it has on the final image.

Resources

  • Peter Shirley's "Ray Tracing in a ___" series
  • Alan Wolfe's "casual path tracing" blog posts.

Sample output

Basic path tracing

Type statistics
Resolution 1280 x 720 pixels
Samples per pixel 1024
Bounces 4
Time 1 hour, 4 minutes, 57 seconds
Threads 16

About

Very simplistic C# path tracer to demonstrate my software engineering skills.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages