Tool Owner | Roberto J.A. Jauregui
Maintainer | Gestina Yassa
Surfacing Cache Tool
Contributors | Miko Mai, William Hyunh
Please watch the above video before reading my thoughts and journey on the tool below.
............
During my time at DreamWorks Animation Television, we had too many occasions when Maya shader networks would no longer render or due to small overseen mistakes in the final published asset file, the shader would no longer match the look the surfacer had created in their working file. Since this material issue continued to waste more time resource, I decided to create a tool that would rely on my own custom material description data.
The parameters for the tool were the following:
Create my own material description.
Keep material description file as small and lightweight as possible.
Have the material description save material assignments.
Store useful header data that will help with future debugging.
Make sure the tool has a versioning system.
Write out data and values based on data type, to generalize capture.
Plan ways to store different looks to give users the ability to easily swap materials from cached data. (look variants)
Delete any old material data when loading cache files.
Use similar methods to also save displacement node values with saved geometry assignments.
Auto-fill the cache path and load paths for users based on asset loaded while still making path editable.
As seen in the video, we were able to achieve most of the planned out initiatives but unfortunately did not fully implement allowing users to define look variants. Ultimately, the best part of creating this tool was when artists started reporting how the tool was saving them hours of work and would help them to restore work they thought had been lost. Additionally, the tool become a sort of default debugging protocol for materials within the studio. When users complained a published material did not look correct, instead of diving into the material to debug, users would reload the most recent shader cache and would often find the issue resolved.
This was one of the most rewarding tools I was able to make at DreamWorks. It pushed me to better learn python, allowed me to collaborate on the tool with other TDs and helped me further my knowledge of how shaders in renderers/dcc work.
Many thanks goes out to the TDs at the studio who helped me on my journey and who helped contribute to the tool.