
A SIMPLE THECNICAL ARTIST
OVERVIEW
Although my background wasn’t primarily focused on coding, supporting an AAA studio with a small team required all of us to take on a broader range of responsibilities. This experience pushed me to expand my technical skills and contribute across multiple areas as needed.
LOCAL PERF REPORT
During the shutdown period, our daily performance reports were sometimes too slow to meet the demands of rapid iteration. Arthur Shek (Content Director) encouraged me to explore a solution that went beyond conventional approaches.
Before diving into the details, it’s important to note that the primary challenge at the time was the lack of accessible real-time performance data. Most engineers with the necessary expertise were fully booked, making it difficult to rely on traditional support.
In response, I developed a custom solution over the course of two days. Here’s the approach I implemented:
Launch game to the perf testing zone
▼
Using powershell script to turn on render timer layer and vert count for each object set
▼
Automatically take screenshot for each overlay and name correctly
▼
Use System.Drawing.Image to crop the correct pixels contain the data we need
▼
Use Tesseract OCR to read the value from cropped images
▼
Use overall render timer to subtract each object set render timer value
▼
Use overall vert count to subtract each object set render vert count
▼
Generate report and export to Excel for each object set
FIND LONELY ASSETS
One of the key requests from the Rendering and Systems teams was to reduce the number of unique assets. To support this, I developed a script that helps artists identify and clean up rarely used assets on a per-level basis. The tool leverages Python.NET to access our editor’s data and fully integrates with editor functions, significantly streamlining the cleanup process and improving workflow efficiency for the art team.
EMISSIVE TRANSFER
Our previous emissive workflow frequently broke GPU instancing and limited artists' ability to create visual variations. To address this, I was tasked with migrating all existing emissive color values from float3 to a 256-color lookup table. This involved updating legacy content, developing a new shader, and creating a streamlined workflow to support the new system.
The solution significantly reduced unique instance counts, which was well received by the Rendering team. Additionally, the Senior Lighting Artist described the new workflow as his favorite, highlighting its balance of performance and creative flexibility.
Here is the MS paint explanation:
