top of page

Karolina Motužytė

2aeMZRM.gif

Karolina
Motužytė

Hi! I am Karolina. I am a C++ programmer that specializes in DX12 graphics, which I study at Breda University of Applied Sciences. 

Here you will be able to see my work, both in custom engines and UE5 :)

Check out my work!

DXR and Global Illumination

This is a solo project I worked on for two months during Y2. While I didn't entirely get the result I wanted, this project was a great introduction into raytracing and global illumination.

For a more in-depth explanation, you can check  my blog post here.

ProbeVisualization.png

Raytracing with DXR

RaytracingVertices.png

First step: Getting hit, ray gen and miss shaders, as well as a BVH, working.

Second step: Per-instance data. Here I'm rendering the normals of each mesh.

RaytracingNormals.png

To implement DXR I used NVIDIA's tutorials and helpers. I did this to make the process faster, as my focus this project was global illumination, not raytracing.

While I still had some difficulties tackling new concepts like shader tables and the way the raytracing pipeline worked, implementing a PBR ray-tracer only took me about 2 weeks.

RaytracingResult.png

Third step: textures.

Implementing RTXGI

The implementation step of RTXGI were clearly explained in the GitHub repository.  I go more in depth into it in my blog post.

Unfortunately, after implementation, I still noticed bugs and inaccuracies in the way the irradiance was being calculated. Nevertheless, I still learned a lot while working on this project.

DirectCornell.png

Cornell box with direct lighting only

Calculated irradiance

IrradianceDataCornell.png
GICornell.png

Direct lighting + irradiance

Why RTXGI instead of other Global Illumination methods

When I decided I wanted to implement Global Illumination, I had multiple ways of implementation to choose from. My main 3 options were ReSTIR, Dynamic Noise Free Screen Space Diffuse Global Illumination and RTXGI.

I ended choosing RTXGI because there was more documentation, which was helpful as I only had 2 months to implement. 

Dynamic, Noise Free, Screen Space Diffuse Global Illumination

Pros:

  • Simple implementation with clear explanations

  • Includes referenceable code snippets

Cons:

  • No prevention for shadow or light leaks; requires a solution

  • Doesn't account for a moving camera, necessitating denoising techniques like motion vectors

  • Accounting for lighting outside screen space would require further research.

RTX GI

Pros:

  • Shadow and light leak-free

  • Noise-free

  • Abundant documentation, including a YouTube video and GitHub project for practical learning

Cons:

  • None identified.

reSTIR GI

Pros:

  • State-of-the-art solution

  • Upcoming lecture in the graphics masterclass.

Cons:

  • Complicated

  • Requires a denoising algorithm.

  • Challenging to understand from one paper alone.

bottom of page