apoorvaj.io
about

Apoorva Joshi

Senior graphics programmer at Unity

email, github, twitter


Publications

14-Feb-2018Efficient Rendering of Linear Brush Strokes - Journal of Computer Graphics Techniques

Blog

16-Aug-2020Convolution and probability theory
30-Jul-2020Render graphs
15-Mar-2020Aliasing in computer graphics
15-Jun-2019Alpha compositing, OpenGL blending and premultiplied alpha
01-Feb-2019Constructing a cubic Bezier that passes through four points
14-Feb-2018Efficient Rendering of Linear Brush Strokes—my graphics paper explained
25-Sep-2017Creating a modern OpenGL context
04-Mar-2017Exploring bump mapping with WebGL
30-Nov-2016Hitchikers Guide To The GDB
04-Sep-2016Exploring calling conventions with x86 assembly
20-Aug-2016Loading OpenGL without GLEW
13-Aug-2016Native UI is dead, long live native UI
03-Jul-2015Building a Fast, Modern Image Editor

Professional Experience

Aug-2020 - OngoingUnitySenior graphics programmer
May-2018 - Jul-2020PlaydeadGraphics/systems programmer
Jan-2016 - Mar-2018NVIDIASystem software engineer, GPU profiling
Aug-2014 - Jan-2016-Independent game developer
Jun-2013 - Aug-2013MicrosoftIntern, Bing search engine ingestion

Work

Graphics/systems programmer
Graphics R&D, engine modification, GPU/CPU optimization, artist tooling
C++ C# DirectX Game Engines
Systems software engineer
Full CUDA profiling stack—driver, GPU performance monitoring libraries, profiling CLI & GUI (nvprof, Visual Profiler, Nsight Compute)
C++ C CUDA Linux
Intern
Internal tooling for troubleshooting the Bing knowledge graph ingestion pipeline
C#
Personal work
Open source cross-platform image editor, with hand-written code for window handling and OpenGL loading
C++ C OpenGL
Personal work
Single-header drawing tablet library that supports Windows and Linux
C
Personal work
Physics-based puzzle game shipped on iOS and Android, built by a two-person team
C# Unity