VALORANT Mobile
During my internship at Tencent I adapted VALORANT weapon skins and map assets from their PC versions to mobile GPU budgets while keeping the assets looking like themselves.
Aurora shader optimization
The aurora on Summit was one of those assets. I reduced its texture samples and arithmetic across both of its shaders, without changing how it looks in game.
Two changes did it. The shader sampled the same mask four times, each time with different UV coordinates, so I channel-packed those four lookups into a single texture, one per channel — four samples became one. And the scene has almost no fog, so turning off vertex fog cut arithmetic instructions that were not buying anything.
Measured in the Mali Offline Compiler:
- Fragment shader: 110 → 78 ALU instructions
- Vertex shader: 123 → 66 ALU instructions
On mobile, that is the difference between an effect being affordable on the devices the game has to run on and being cut from them.
Summit, released as 天枢云阙 on the Chinese server. Official art, from VALORANT’s map introduction.
Also at Tencent
- Adapted a RenderDoc-based shader-analysis tool for production use, adding a pitfall ruleset that steers its AI output toward correct results. Analysing a shader went from hours to about 15 minutes.
- Built an AI tool that auto-tags several hundred materials for a material library, so artists can find and reuse what already exists instead of asking a technical artist to rebuild it.
- Prototyped a glitter material in Unreal Engine, recreating view-dependent sparkle with parallax-layered shading — written up in full as Starry Bottle.