Technical/VFX Artist
DigiPen - Atavysm Neon Vengeance
5 month - ongoing
Break Down
Stage: First Pass
Work is Ongoing
Hack-n-Slash
21 Members
Bryce Fisher
Role: Technical, VFX, Lighting Artist
Working on this team project has given me great insight into Unreal Engines capabilities. With strong tools also comes with the responsibility to use them correctly. Optimization is a huge obstacle for the whole of the industry and I planned out of the gate to tackle this problem head on.
Much of my work on this game consists of material shaders, Niagara effects and baking ray traced lighting. I work closely with the engineers on my team to hook these effects up. It is important to get the intended resulting real-time feedback for the player. Much of what gets put into the game takes a lot of initiative asking for and welcoming feedback and critique. I try my best to open my creations to all the eyes in and outside our team for maximum potential of an effect.
Niagara and Shaders
All Niagara effects in the game were made by me as well as the shaders associated with them. Player, Enemy and environmental shaders were also made by me, except for the post processing.
Many things have to happen before an effect becomes part of gameplay. I made use of material collection parameters as a means of turning shaders on/off during run time. Doing this can be difficult in an ever changing code base. Luckily my team is very helpful in designating trigger zones for these parameters to change inside blueprints. Once I am aware of trigger areas, I make modifications to VFX spawns myself with some exception.
A lot of effect work comes with challenges of matching hit-boxes and gameplay feel for the player. Mechanics often change and it is up to me to follow up on effects to match those changes in design. Iteration from these steps is what makes an effect great and that is why it is so important to take player and team feedback seriously.
A recent challenge that affected the look of the entire game came when my talented RTIS team mate created an awesome edge outline and color banding post processing shader. In doing so all the VFX for the game also took on this outline and color banding. My team mate became too busy to solve this issue so I had to find a way to mask out specific actors from our post process.
I managed to mask these actors out using custom depth pass with additional modifications to the post process effect.
Lighting
Lighting is a large challenge for this project. Being a cyberpunk city based environment, we need many lights. I started lighting our scenes with statics using normal default CPU baked lighting, but this did not last as a solution. Baking was reaching times that easily surpassed hours of render time. This was on top of the issue of manual light map resolution editing per imported mesh. Since we do not have easy access to a multi system renderer, I had to come up with a different solution. Especially since our time budget is very low.
With any problem comes research for a solution, so that is what I did. I started researching ways Unreal Engine handles light maps and baking in general. I came upon the GPU Lightmass plugin which uses ray tracing to bake the lighting. Not only does the lighting come out better looking with cleaner gradients, it also handles light map resolution sizes based on volumes. This entire process is much faster and on an RTX 4080 I am able to bake all of our map in around ten minutes.
This new process allowed for faster reiteration of lighting. Keeping FPS in practically the same place as before. On top of that our environment started looking way better. Since we are approaching first pass in our game, lighting is very much in progress and changing as we swap out assets and alter map design.
Optimizations
Niagara hits the frame rate hard by default. Many optimizations are required to keep smooth uninterrupted gameplay. After-all what is a great game with undesirable frame-rate to a player? I have been working hard to keep the player from noticing their frame-rate.
Unreal has a lot of tools to help me visualize and track down issues in all aspects of our game. Insights is great at localizing hitching issues and finding the root cause of them. This is a very in depth tool and has been a great learning experience for me. As well as a great benefit to our project.
Other notable tools are shader and lighting complexity viewers, which can give quick feedback to me if a shader or Niagara effect is taking too much time to render. Auditing baked light maps is also very helpful in hunting down problems with uv unwrapping overlaps.