• In 3d

    Creating procedural game assets with Houdini. Part 4

    PDG (Procedural Dependency Graph) is a recently added feature in Houdini. It is meant for building networks (not just chains) of tasks, where each task might have some sort of dependency on others and Houdini then knows how to execute the graph in an optimal way – by executing some operations in parallel or distributing them on multiple machines. It works by processing “work items”. Each work item is passed down the network from node to node and can hold attributes (similar to geometry attributes – strings, numbers etc.). A task in a PDG network can be, for example – […]
  • In 3d

    Creating procedural game assets with Houdini. Part 3

    JTNDZGl2JTIwY2xhc3MlM0QlMjJza2V0Y2hmYWItZW1iZWQtd3JhcHBlciUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2lmcmFtZSUyMHRpdGxlJTNEJTIyQSUyMDNEJTIwbW9kZWwlMjIlMjB3aWR0aCUzRCUyMjEyMDAlMjIlMjBoZWlnaHQlM0QlMjI3MDAlMjIlMjBzcmMlM0QlMjJodHRwcyUzQSUyRiUyRnNrZXRjaGZhYi5jb20lMkZtb2RlbHMlMkY0YjVmOWYwOWQwMTM0OTg3OTNmN2QyZWNiOTlkYjdlNiUyRmVtYmVkJTIyJTIwZnJhbWVib3JkZXIlM0QlMjIwJTIyJTIwYWxsb3clM0QlMjJhdXRvcGxheSUzQiUyMGZ1bGxzY3JlZW4lM0IlMjB2ciUyMiUyMG1vemFsbG93ZnVsbHNjcmVlbiUzRCUyMnRydWUlMjIlMjB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4lM0QlMjJ0cnVlJTIyJTNFJTNDJTJGaWZyYW1lJTNFJTBBJTBBJTNDcCUyMHN0eWxlJTNEJTIyZm9udC1zaXplJTNBJTIwMTNweCUzQiUyMGZvbnQtd2VpZ2h0JTNBJTIwbm9ybWFsJTNCJTIwbWFyZ2luJTNBJTIwNXB4JTNCJTIwY29sb3IlM0ElMjAlMjM0QTRBNEElM0IlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGc2tldGNoZmFiLmNvbSUyRjNkLW1vZGVscyUyRnByb2NlZHVyYWwtcm9ja3MtaW4taG91ZGluaS00YjVmOWYwOWQwMTM0OTg3OTNmN2QyZWNiOTlkYjdlNiUzRnV0bV9tZWRpdW0lM0RlbWJlZCUyNnV0bV9zb3VyY2UlM0R3ZWJzaXRlJTI2dXRtX2NhbXBhaWduJTNEc2hhcmUtcG9wdXAlMjIlMjB0YXJnZXQlM0QlMjJfYmxhbmslMjIlMjBzdHlsZSUzRCUyMmZvbnQtd2VpZ2h0JTNBJTIwYm9sZCUzQiUyMGNvbG9yJTNBJTIwJTIzMUNBQUQ5JTNCJTIyJTNFUHJvY2VkdXJhbCUyMHJvY2tzJTIwaW4lMjBIb3VkaW5pJTNDJTJGYSUzRSUwQSUyMCUyMCUyMCUyMGJ5JTIwJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRnNrZXRjaGZhYi5jb20lMkZrdXJ6ZW1uaWVrcyUzRnV0bV9tZWRpdW0lM0RlbWJlZCUyNnV0bV9zb3VyY2UlM0R3ZWJzaXRlJTI2dXRtX2NhbXBhaWduJTNEc2hhcmUtcG9wdXAlMjIlMjB0YXJnZXQlM0QlMjJfYmxhbmslMjIlMjBzdHlsZSUzRCUyMmZvbnQtd2VpZ2h0JTNBJTIwYm9sZCUzQiUyMGNvbG9yJTNBJTIwJTIzMUNBQUQ5JTNCJTIyJTNFa3VyemVtbmlla3MlM0MlMkZhJTNFJTBBJTIwJTIwJTIwJTIwb24lMjAlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGc2tldGNoZmFiLmNvbSUzRnV0bV9tZWRpdW0lM0RlbWJlZCUyNnV0bV9zb3VyY2UlM0R3ZWJzaXRlJTI2dXRtX2NhbXBhaWduJTNEc2hhcmUtcG9wdXAlMjIlMjB0YXJnZXQlM0QlMjJfYmxhbmslMjIlMjBzdHlsZSUzRCUyMmZvbnQtd2VpZ2h0JTNBJTIwYm9sZCUzQiUyMGNvbG9yJTNBJTIwJTIzMUNBQUQ5JTNCJTIyJTNFU2tldGNoZmFiJTNDJTJGYSUzRSUwQSUzQyUyRnAlM0UlMEElM0MlMkZkaXYlM0U=In theory, COPs could replace Substance Designer and be even more powerful, because you have full access to other Houdini networks and your 3D data. You could use it to generate texture details based on geometry and even other adjacent objects in the scene. Unfortunately COPs are slow – very slow. Most of advanced texturing work is done via COP VOPs and when working in that context – as soon as you modify or add new node – Houdini recompiles everything and re-cooks your COP network. While doing that, it becomes unresponsive for quite a long time, making working with […]
  • In 3d

    Creating procedural game assets with Houdini. Part 2

    First let’s start with a little demo of what I achieved with rock generation. Here I demonstrate two different rock styles generation from the same input geometry – rendered in Blender Eeevee. To play with one of the demo asset styles in real time, you can check it out on Sketchfab here! To see how it looks in “The Collector” project demo, which was the project I created this for – check out this link.Object hierarchy and naming in Blender outlinerFor my project, as an user input, I had a basic geometry blockout of the cave, exported as FBX from Blender. […]
  • In 3d

    Creating procedural game assets with Houdini. Part 1

    During development of the project “Collector”, while sculpting cave walls and stones by hand, I once again decided that I need to find more efficient – procedural way of building assets. As they say – proceduralism is the future. In this series of posts, I will try to show my experiments and explain how to use Houdini to create automated pipelines for generating procedural game assets.Natural formations — such as cliffs, stones, sand dunes, are hard to create manually. Sure, skilled artist can come up with workflows and sculpt an amazing rock, but it takes a lot of time and is […]
  • In 3d

    Procedural subdivision surface in VEX, Houdini

    For whatever reason I decided to create procedural subdivision surface effect in pure VEX. Probably quite useless, but It was a good exercise in how to generate and manipulate geometry in VEX. Usually you run vex over points or primitives, but because I needed to actually generate new points and primitives (in subdivision step), I had to run VEX in Detail mode – run once and process geometry manually. It was also a bit tricky due to how houdini handles edges (half-edges). Code is split into two wrangle nodes – one does subdivides the geometry and other does the smoothing. Everything is in […]
  • In 3d

    Washing texture away in Houdini

    A while ago I needed to create effect of fluid washing away surface material. I came up with this solution that uses FLIP to simulate liquid being pushed away by a mesh force. Then UV info from particles is transferred to mesh plane and baked out as UV texture sequence that later can be used in any other 3D app to distort texture mapping.  It kinda works, but there are some issues and it does not allow fading/mixing values and looks a bit wonky.