HIGH RES MESH PIPELINE
To access a clickable Table of Contents, open the video in Vimeo and expand the description.
Welcome to the Houdini Game Dev Toolset series!
31 short videos, 2 hours total.
After watching these short introductory videos, you'll be able to create your own automated pipeline for asset creation in minutes. With just a few nodes strung together, you will save yourself literally hours of work, going from high res source to engine-ready asset in no time.
And the best part: Once you've set up your network, you can batch through any assets you create in minutes, dialing in parameters as needed to give you optimum results. If you're new to Houdini, don't worry--this series acts as a great introduction for absolute beginners into the world of node-based procedural workflows. We'll even cover all the licensing options, from absolutely free to the full Houdini FX license, and everything in between!
If you would prefer to access smaller videos that cover each topic then please go to the YouTube Playlist:
001 Houdini License And Installation [0:02:20]: We discuss where to download the latest version of Houdini and how to install it, as well as which licensing option will be best for you.
002 GoZ Installation [0:05:45]: Installing GoZ in Houdini to allow direct file transferring from ZBrush. Since you may not be using ZBrush for your source assets, we go over .fbx importing later in this series.
003 Game Dev Tools Update [0:08:13]: Making the Game Dev Toolset shelf visible, as well as making sure we have the latest and greatest versions of the Game Dev Tools installed.
004 FBX And GoZ Export [0:09:23]: Exporting an .fbx file from your source program if you've completed your model outside of Houdini, or if you're using ZBrush, using the previously installed GoZ bridge to send your model directly from ZBrush to Houdini.
005 FBX Import [0:15:00]: Using File and Geo nodes, we discuss multiple ways to get .fbx files into Houdini for processing.
006 Blast Node [0:20:17]: We'll use the blast node not only to remove unwanted sections of our file, but also as a way to split our file so we can process parts separately.
007 Transform And Polycount [0:25:05]: We discuss basic transform node functionality, as well as multiple ways to view the properties of a node, such as displaying the primitive and point count in the bottom of the viewport screen.
008 Manual Voxelization [0:29:06]: We'll use VDB nodes to convert polygon geometry to voxels and back again, while discussing parameter functions for these nodes and how they affect the outcome of the resulting geometry.
009 Game Dev Voxel Mesh [0:34:12]: This time we'll use the GameDev Voxel Mesh node to voxelize our source geometry, and discuss how to utilize the built in parameters to ensure you're getting the ideal volume and details before you move on to polyreduction.
010 PolyReduce [0:42:05]: We'll go over the basic parameters of the PolyReduce node, including how to dial in your optimal geometry resolution using the Quality Tolerance function. We'll also discuss how to reduce subdivision geometry in a way that will maintain your existing edge flow with Preserve Quads, and how to eliminate the creation of long triangles with the Equalize Lengths function.
011 Divide And Clean [0:51:09]: We'll use the divide node to get rid of any slivers, convex, or small angle polygons that may have been generated by the PolyReduce node. We'll also talk about the clean node and how you can use that to make sure your geometry is ready to move onto the next steps in our game res pipeline.
012 Instant Mesh [0:52:34]: We'll cover the GameDev Instant Meshes node, which will reduce arbitrary geometry into a blanket of evenly distributed quad geometry. This also covers the short step of downloading the Instant Mesh executable, so you can bridge Instant Mesh for use directly in Houdini.
013 Auto UVs [0:54:56]: With the GameDev Auto UV node, UV seams, flattening, and packing are all automated. We'll go over the various packing and seam generation options, as well as using the GameDev UV Visualize to see our UV seams, islands, and evaluate UV distortion directly on our viewport mesh!
014 Vertex Normals [1:03:37]: We'll use both the Normal node and GameDev Soften Normals to set the normal angle of our low resolution geometry before we bake. The GameDev Soften Normals node will average all of our vertex normals and harden the normals along our UV seams, which is a good way to keep your geometry file as cheap as possible for real time engines.
015 Polygroup UV Seams [1:04:43]: If you brought in your geometry from ZBrush, you'll also be able to use your polygroup information to determine where your UV seams should end up. From there, you can flatten and layout as needed.
016 High Res Rounded Edges [1:07:39]: If your imported geometry has sharp edges from creasing or boolean operations, you can use the GameDev Quick Material node to round out those harsh edges before you bake to your low res geometry. This should result in a cleaner, more appealing bake!
017 Simple Baker [1:11:26]: To bake our maps we'll use the GameDev Simple Baker to bake our high resolution geometry to our low res game mesh. We'll cover all the parameters needed to make sure you get as clean a bake as possible!
018 Merged Game Res And UVs [1:15:38]: If you have your game res mesh in multiple pieces, we'll use name nodes to keep track of our high res and game res geometry, then merge them together so we can get a single polycount and UV atlas for the entire complex mesh.
019 Merged Baking [1:18:16]: Now that we have our separate meshes reduced and UVed, we'll use the transform node as a simple solution to baking your meshes separately to avoid transferring normal information between close or interpenetrating geometry, but still allow you to have all of your texture information on one map.
020 For Each Loop [1:22:47]: For a cleaner, more efficient graph, use the For Each Named Primitive node to run functions on each piece of your source geometry. We'll use this to voxelize each of our named pieces individually, which will allow us to have separate pieces in our game res for baking and animation purposes.
021 Attribute Transfer [1:28:55]: If any process removes the name attributes from you meshes, simple use the attribute transfer node to copy them back!
022 Exploded Bake [1:30:08]: Since we still have separate named primitives, we can now use the Exploded View node to move each piece apart so we don't get normal map intersection bake errors, or unnecessary ambient occlusion baked in between moveable pieces.
023 Processing Another Object [1:34:12]: Using the node graph we've created so far, we'll bring in another completely new object and process it, from import all the way to baking!
024 Skimmer Ship File Export [1:37:50]: Taking what me know so far, we'll apply it to a new, more complex mesh, that will have more specific needs. We'll export this file out using either GoZ or the .fbx export and import.
025 BGEO And Node Locking [1:40:14]: To speed up file loading and graph processing, we'll export and re-import our file as .bgeo, and use node locking functionality to effectively kill any unnecessary upstream processing.
026 Delete Small Parts [1:43:43]: Using the GameDev Delete Small Parts node, we'll delete any floating or unnecessary geometry from our scene. This node is also useful for removing small floating garbage geometry from imported scan data as well.
027 For Each Voxelize And Transfer [1:45:15]: Just like we did previously, we'll use a For Each Named Primitive node to voxelize all of our ship parts separately.
028 Skimmer PolyReduce [1:51:22]: We'll use the PolyReduce node again to create a game resolution mesh for our ship with a maximum polycount of our choosing.
029 Paint Poly Density [1:53:30]: Because our object will mostly be seen from the back, we'll discuss the basic functionality of the Paint node, then use that in conjunction with the Attribute Create node to effectively paint in how we want our polygon density to be distributed; in this case, higher resolution in the back, and less resolution toward the front.
030 Skimmer Auto UVs [1:59:34]: We'll use the GameDev Auto UVs node again to automatically cut seams, flatten and pack our UVs, but this time we'll use the For Each Named Primitive node to UV each section separately, then use the uvlayout node to pack our UVs.
031 Merge Split Exploded Bake [2:01:36]: Instead of exploding the game res and high res meshes separately, this time we'll use group node functionality to keep tabs on our low res geometry, merge them together with the high res, explode both the high res source geometry with the game res, then bake everything all at once!