
Virtually Live
Singapore
2018-2020
Art TD / Technical Art Director
- Define art pipelines for key art assets (tracks, vehicles)
- Write shader set to be used with high performance in mind (iOS/Android)
- Communicate technical art restrictions to teams (Singapore/Spain)
- Lead with examples of best practices and measured results
- Point of contact in both studios for art pipelines
- Regular CPU/GPU profiling of project and reporting of any concerns
- Resulted in bringing low performing (memory/FPS) scenes up to targets
Post FX/Lighting
Environments/Tracks
Vehicles
Custom Batching in Unity
The CPU cost of preparing objects for rendering was proving too high with our scenes when using regular Unity GameObjects. To get around this I wrote a system that collected all the static renderers and clustered them (similar to a quad-tree) so that they could be queried with Unity's Culling Group API. From this, I was able to quickly get the objects needed for rendering and make direct calls to DrawMeshInstanced() to render all instances of a mesh in 1 Draw Call. I found an added bonus was that all instances would truly be rendered in one call, whereas profiling revealed that Unity often breaks batching of a single instance type.