Dihara Wijetunga - Graphics Programmer


Summary


Graphics Programmer 5+ years of work experience with a keen interest in high-end rendering techniques and real-time ray-tracing for video games, low-level optimization and game engine programming.


Technical Skills


  • C/C++, Rust, Vulkan, DirectX 12, OpenGL,
  • Rendering Techniques and Architecture, Real-time Ray-Tracing and Denoising, Physically Based Rendering, Global Illumination,
  • Shader and Rendering Optimization, Profiling and Debugging Tools,
  • Unity, Unreal Engine 4, Lumberyard/O3DE

Work Experience


Developer Technology Engineer 2, July 2019 - Present

Imagination Technologies, United Kingdom

  • Worked with many game development studios on optimizing their titles for the best performance on devices with PowerVR GPUs.
  • Worked with engine developers to add PowerVR and mobile-specific rendering optimizations.
  • Created multiple mobile ray-tracing demos.
  • Maintained the PowerVR Graphics SDK.
  • Gave technical talks at industry events and meetups.
  • Gave training to developers on PowerVR Graphics Architecture and Tools.

Graphics Software Engineer, January 2018 - June 2019

LiveRoom, Sri Lanka

  • Designed, developed and optimized rendering features across various different projects from various countries.
  • Projects include a GPU particle engine with compute shaders, OpenGL ES based rendering engine for vehicle dashboards, GPGPU collision detection engine, an internal cross-platform renderer with * OpenGL ES 2.0 and Metal backends, AR/VR projects with Unity/Unreal.
  • Created tools to be used in the internal art asset pipeline.
  • Mentored team members on graphics programming.

iOS Software Engineer, May 2016 - January 2018

Fidenz Technologies, Sri Lanka

  • Developed, shipped and maintained many iOS applications in Objective-C and Swift.
  • Worked with large teams to deliver products incrementally.
  • Minor native Android development in Java.

Projects


Helios

  • A real-time unidirectional GPU path tracer using the cross-vendor Vulkan ray-tracing extensions.
  • Full editor with runtime scene creation and editing capabilities.
  • Custom ray debug view for visualizing ray paths.

Hybrid Rendering

  • A rasterization + ray-tracing hybrid renderer demo.
  • Demonstrates an integration of Ray Traced Shadows, Ambient Occlusion, Reflections and Global Illumination into a Deferred Rendering Pipeline.
  • SVGF based denoising with tile based compute optimizations.

Rasterator

  • Real-time C++ Software Rasterizer project created for understanding the graphics pipeline.
  • Features triangle rasterization, perspective correct interpolation, texture mapping, bilinear interpolation, model loading and OpenMP multithreading.

Asset Core

  • An offline library for converting Images, 3D Models into a custom binary format and a separate runtime library for loading said assets.
  • Separate command line tools for image and 3D model import/export, Cubemap to Spherical Harmonics projection, BRDF LUT generation.
  • DXT texture compression, mipmap generation, irradiance map generation and Cubemap prefiltering.

Various Graphics Demos

  • A selection of various graphics technique demos intended for educational purposes available at my Github.
  • Demos such as FFT Ocean Water, GPU Particle Simulation, Deferred Decals, PCSS, Reflective Shadow Maps and Lightmaps.

Education


BSc IT Hons. Specializing in Software Engineering, January 2014 - November 2017

Sri Lanka Institute of Information Technology, Sri Lanka