Apoorva Joshi
Senior graphics programmer at Unity
Publications
Feb 2018 | Efficient Rendering of Linear Brush Strokes - Journal of Computer Graphics Techniques |
Blog
Aug 2020 | Convolution and probability theory |
Jul 2020 | Render graphs |
Mar 2020 | Aliasing in computer graphics |
Jun 2019 | Alpha compositing, OpenGL blending and premultiplied alpha |
Feb 2019 | Constructing a cubic Bezier that passes through four points |
Feb 2018 | Efficient Rendering of Linear Brush Strokes—my graphics paper explained |
Sep 2017 | Creating a modern OpenGL context |
Mar 2017 | Exploring bump mapping with WebGL |
Nov 2016 | Hitchikers Guide To The GDB |
Sep 2016 | Exploring calling conventions with x86 assembly |
Aug 2016 | Loading OpenGL without GLEW |
Aug 2016 | Native UI is dead, long live native UI |
Jul 2015 | Building a Fast, Modern Image Editor |
Professional experience
Aug 2020 - Ongoing | Unity | Senior graphics programmer |
Graphics, optimization and other secret stuff | ||
May 2018 - Jul 2020 | Playdead | Graphics/systems programmer |
Graphics R&D, engine modification, GPU/CPU optimization, artist tooling | ||
Jan 2016 - Mar 2018 | NVIDIA | System software engineer, GPU profiling |
Full CUDA profiling stack—driver, GPU performance monitoring libraries, profiling CLI & GUI (nvprof, Visual Profiler, Nsight Compute) | ||
Aug 2014 - Jan 2016 | - | Independent game developer |
Physics-based puzzle game shipped on Android and iOS | ||
Jun 2013 - Aug 2013 | Microsoft | Intern |
Bing search engine ingestion | ||
Personal projects
papaya.io | Browser-based image editor built with Rust compiled to WebAssembly, Svelte for the UI, and Firebase for storage and authentication |
EasyTab | Single-header drawing tablet library that supports Windows and Linux |