top of page
2aeMZRM.gif
GDWC_2025_Summer-Student-Finalist-white.png

Karolina
Motužytė

Graphics programmer

Hi! I am Karolina. I am a C++ programmer that specializes in DX12 graphics, which I study at Breda University of Applied Sciences. Currently I am looking for an internship for 2025 September.

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

plus_logo_c_icon_214621 (1).png
images.png
hd-unreal-engine-white-logo-icon-png-7017516949697958pnkct2kiz.png
c-icon-1820x2048-2ys190xs.png
github.png
perforce_logo_icon_248875 (1).png
GDWC_2025_Summer-Student-Finalist-white.png

Check out my work!

Custom Engine - Coral Engine

Updated: Jul 2


About Coral


I worked on this custom engine as a C++ and DX12 graphics programmer for 4 months. Some features I implemented are:

  •  Instancing

  •  Lighting optimizations

  •  Directional shadows

  •  PBR

  •  Post processing passes 

  •  UI

 The GitHub repo can be found here.





Rendering a frame in Coral Engine


  • I presented this project in the Graphics Programming Conference in 2024.

  • During this talk I explained what goes into rendering a frame using Coral Engine's renderer, as well as shortly explained some of the optimization techniques we used.​

  • The video can be found here Coral Engine presentation starts at 25:47





Lichgate - a game created with Coral Engine


  • Developed a top-down action game over the last 2 months using our custom engine.

  • Added post-processing features like outlines, LUTs, and SSAO to match the game's style.

  • Implemented an orthographic camera alongside the existing perspective camera.

  • Game is available to play for free on Itch.io!





Lighting optimizations (Clustered shading)


Visualized clusters
Visualized clusters
  • Challenge: Needed to render tens of thousands of dynamic point lights efficiently.

  • Solution: Implemented light clustering to manage performance.

  • Approach:

    • Compute shaders divide the camera frustum into 3D clusters.

    • A depth pre-pass is used to cull inactive (empty) clusters.

    • Compute shaders then assign relevant point lights to each active cluster









Shading passes


  • Problem: VFX particles required transparency, which our existing opaque-only pass couldn't handle.

  • Solution: Added a dedicated transparent pass alongside the opaque pass.

  • Shading passes now include:

    • Physically Based Rendering (PBR)

    • PCF shadows from a single directional light

    • Fog calculations





Post processing


ree

Implemented post-processing effects:

  • HDR

  • Exposure tweaking

  • LUTs

  • Outlines

  • Screen-Space Ambient Occlusion

Comments


Commenting on this post isn't available anymore. Contact the site owner for more info.
bottom of page