Click Here to view all the amazing entries to Rookie Awards 2024
Nathan V, FX / TD
Share  

Nathan V, FX / TD

Nathan Vandevoort
by NathanVandevoort on 1 Jun 2024 for Rookie Awards 2024

A culmination of my work from Gnomon. Focusing on FX and Tools/Tech art. Enjoy!

47 515 21
Round of applause for our sponsors

Journeys Start is the most complex FX project I've worked on so far. Everything in this scene is mine except the background city buildings (kitbash) and the grass (megascans). This project was my first attempt at a liquids shot and I would like to thank Eric Araujo and Andres Berkstein for their help and feedback. The boat was modeled in Maya, terrain and simulations from Houdini, layout leveraging USD and Solaris, rendered with Arnold, and finally composited in Nuke. 

This swinging Lanterns piece was created for my Dynamics 03 class taught by David Stripinis. The lanterns were modeled in Maya and textured in Substance Painter. The Fire is simulated in Houdini and all of the animation is entirely procedural and rendered in Karma.

SnowTopper is a tool I made for Rafael Serralheiro's Audumbla Land environment (Check out his Rookies post). It's a Houdini HDA so it can be used directly in Unreal. The tool has a few features I would like to highlight:

1. Preview mode. The user can enable a preview mode which lowers the resolution and displays a heatmap of snow density. This can allow the user to quickly iterate on their shapes.

2. Projection based sampling. Because the tool is intended to be used in a game environment, all of the input meshes would be very low poly. That means I couldn't rely on the input mesh resolution to build my snow mesh out of. The approach I ended up on projects a grid of points (to the user specified resolution) onto the input geometry, does some post processing, then copies metaballs and meshes them.

3. AutoRetopologizing. This isn't anything crazy. I just give the user controls to remesh their output to a target polycount. 

The tool also automatically projects some uvs on the snow as well. Huge thank you to Rafael for putting together the demo video and using my tool!

Envy is one of the things I'm most proud of in my time at Gnomon. With weekly assignments and large final projects rendering is a constant concern. We don't have a render farm and not every render engine has a convenient distributed rendering utility so I had the idea of writing my own. 

Envy is a distributed rendering and simulation/caching system that supports every render engine that Gnomon has licenses for. It is decentralized which means that there is no risk of someone signing out of your "master" computer and taking down your render. It will automatically allocate jobs to each machine and then sign out of the machines at 8:30 am (before classes start on campus). Envy also has first class Houdini support which means it can press any arbitrary button you want it to (commonly caching). Envy will handle all communication with the renderer or Houdini process and and make available any completion percentage information to the user. And of course you can manually manage the Render/Cache jobs remotely as well. 

Development for Envy was primarily driven  by the features that I would use. So Envy also has first class USD rendering support via the SideFX Husk utility. That includes features like tiled rendering, and rendering with any of the Hydra delegates that Gnomon has configured. 

I'm eternally grateful for all of my peers who use Envy to assist their own workflows and for pushing me to make Envy better! The number of people who expressed interest in using Envy when I started working on it led me to writing some basic documentation to get people up and running. All of the incredible work you see at the end of the Envy video above this text was rendered using Envy. 

Thank you for reading my submission! For more detailed breakdowns, visit my website here! And if you have any questions or critique feel free to reach out on my socials:

Instagram: nathan.vandevoort

LinkedIn: in/nathan-vandevoort

Thank you!


Comments (21)