Houdini Tomori Vex Course

 Posted admin

Houdini VEX Volume 2. With the Houdini visual programming philosophy, VEX comes as a new dedicated context: VOPS where the data flow of your program is represented by custom nodes that wrap mathematical functions. VEX programming is so immense of a field that you could recreate almost half of the nodSOP context, maybe the easiest one to. Jcmusashi 1 year, 3 months ago. Master muchismas thanks for this tutorial of VEX sincerely I am proud to be a user of houdini fx it is amazing how excellent and good it is all the days I practice and study the way of working I practice and practice in the modeling part I have learned enough not to know and I live in Venezuela and in spite of the fact that here I lack everything I learn.

Houdini Vex Point Manipulation

Learning Houdini can be quite a task at times if you are unfamiliar with node based systems. It took me many years to break my brain from all that I had learned and knew. Over the years I learned to wrap my head around node based workflows. Now I am loving the setup and totally understand the great benefits of working this way. While I am still a Houdini newb in a production sense, I have gained quite a bit of knowledge of different areas of the application over the last six years or so.

Why so little knowledge in such a long span of time? Well, part of it was the breaking my brain part I mentioned above. The other was always getting pulled away to do actual project work for clients, among other things in my life. Gotta pay the bills. There were many times where I had a week or a few weeks of intense Houdini learning, then I would get pulled always for months. While away I would forget about 90% of what I had learned, then have to start the cycle over.

In recent years I have had longer runs of learning, and more has stuck in my brain thankfully. I will say that it has been a process, but I wholeheartedly love Houdini and the kid in a sandbox feel I get whenever I use it. This app is so on point with what I have been wanting to do for so long, but just didn’t have the right tools or know-how to accomplish. I am doing my best to dedicate more time to this app, and hopefully will bring more tutorials to you as I learn more.

This marks my first official Houdini public tutorial. The following tutorial is based on an experimentation I did over a year ago. I should mention that I had started with an Entagma tutorial (Creating Geometry with VEX) as a refresher originally, which then sparked the experimenting shortly thereafter. If you are unfamiliar with Entagma, you are in for a wild treat. Moritz and Manuel are two extremely talented individuals that have been bringing extrordinary Houdini training to the masses. Definitely check them out.
Entagma.com
Entagma Vimeo page

So people had been asking about this VEX code and how I built these things for awhile now, but I had lost the project not too long after making it, so I was unable to really explain to people how it was done in specifics. A few weeks ago however I had rediscovered a lost backup of the project. The info was reborn again, and I felt that I should share it this time around.

In this video I go over how I created four different types of build, one is a polyline “maze”‘esque looking design, the next is a closed polygon design, the third is a horizontally sliced pattern, and the final one is a nebula’esque looking design. I’ll go over a bunch of VEX code, how to access the in app help document, editing and creating custom parameters for a master control node, and a few shortcut keys.


Shop with

Filmtools

Filmmakers go-to destination for pre-production, production & post production equipment!

A collection of code snippets and examples showing syntax and capabilities of VEX language inside SideFX Houdini

by Juraj Tomori


Intro

Recently I made a small lecture for other students at Filmakademie. They requested an introduction lecture to using VEX. I did not focus on practical examples and fancy operations, but on syntax, capabalities and usage. During the lecture I got some ideas on extending the content. So I looked more into the topics and collected them along with explanations inside one hip file. This tutorial belongs to series of my posts at my blog. However because of the formatting and other limitations of Wordpress I decided to place it here. It will also be easier to keep track of changes.


How to use it

You can clone, or directly download this repository.
It contains examples.hipnc and vex/include/myLib.h files which are full of various examples with explanations in comments.
It is the best to check all the nodes with open Geometry Spreadsheet and Console Output windows to see values of attributes and output text. Alternatively you can use this page for quick looking at the topics covered and most of the code that I include here as well. I am not including here all of the code since sometimes it might not make a lot of sense outside of Houdini. Where necessary I include related functions from myLib.h or attach screenshots.


Topics


Tutorial

Reading parameter values


Reading attributes


Exporting attributes


Reading arrays


Arrays


Arrays and strings example


Reading and writing Matrices


Checking for attributes


Automatic attribute creation


Getting transformation from OBJs


Intrinsics


VDB intrinsics


Volumes


VOPs / Using Snippets

Phan mem covertxtodvd bi thieu anh. Check Houdini project to get the best idea of how it works.


VOPs / Using Inline Code

Check Houdini project to get the best idea of how it works.


DOPs / Volumes workflow

Here I will show basic steps of creating a simple custom DOP solver operating on volumes.

  1. At first we need to create a DOP Object, which is a container that will contain all our fields (volumes in DOPs), geometry and any other data. Object name is important, because later we will use it to access our data.
  2. In the second step we want to bring in a volume from SOPs. We can use SOP Scalar Field node. This node will create field pig_in, which you can see in Geometry Spreadsheet. Use SOP Dimensions option is handy as we do not need to set resolution, size and other parameters by hand. Border Type might be useful to have set to Constant as it will not introduce infinite streaks when voxels are touching boundaries. SOP Path points to the SOP we want to get volume from and Primitive Number will identify which volume primitive to import. Default Operation when set to Set Initial will import the field only at first simulated frame, if you want to import animated volume, set it to Set Always. Data Name is important as it will be unique identifier for our volume.
  3. DOPs can contain lots of fields and therefore they are not visible by default. To display them in viewport, we can use Scalar Field Visualization node.
  4. If we want to sample different volume, or sample a volume at different location, we need to set up Inputs properly. This is needed for Gas Field Wrangle and Gas Field VOP.
  5. We can also use arbitrary SOP operators to process our DOP fields. We can do so by using SOP Solver. We just need to set Data Name to our field which we want to process.

DOPs / Gas Field Wrangle

Check Houdini project to get the best idea of how it works.

Houdini tomori vex course catalog

DOPs / Gas Field Wrangle - accessing DOPs and SOPs data


DOPs / Geometry workflow

Here I will show basic steps of creating a simple custom DOP solver operating on volumes.

  1. At first we need to create a DOP Object, which is a container that will contain all our fields (volumes in DOPs), geometry and any other data. Object name is important, because later we will use it to access our data.
  2. We can import a geometry from SOPs using SOP Geometry node. By enabling Use External SOP we can select a SOP we want to import. Data Name is usually set to Geometry.
  3. If we want to use functions which take an input as an argument (looking up points, importing point attributes..) in Geometry Wrangle or Geometry VOP, we need to set up our Inputs properly.Also note, that Geometry Wrangle and Geometry VOP have an option to use Myself in Inputs which is equivalent to previous settings.
  4. We can as well use SOP Solver to process our geometry in a SOP network.

DOPs / Geometry Wrangle

Check Houdini project to get the best idea of how it works.


Houdini Tomori Vex Course Review

DOPs / Geometry Wrangle - accessing fields


Conditions


Loops

Check Houdini project to get the best idea of how it works.


Stopping For-Each SOP from VEX


Printing and formatting


Printing attributes


Including external VEX files

From myLib.h:


Include math.h


Using macros

From myLib.h:


Functions

From myLib.h:


Functions overloading

From myLib.h:


Variables casting


Vectors swizzling


Functions casting


Structs

From myLib.h:


Structs in Attribute Wrangle

Outer Code


Groups

Group mirror


Attribute typeinfo


Attributes to create


Enforce prototypes


Attribute default values


Todo

  • any suggestions? :)

Resources & More

In this tutorial I am focusing on VEX syntax, capabilities and integration in Houdini.
For more practical and visual VEX examples check Matt Estela's awesome wiki
Another good source is $HH/vex/include folder which is full of VEX include files with many useful functions. ( $HH expands to /houdini_install_dir/houdini/ )
Make sure to watch this very cool VEX Masterclass by Jeff Wagner.
VEX is well documented, language reference and functions pages are very helpful too.


Feedback & Suggestions

Please let me know if you find any mistakes or have ideas for improvements. I will fix it and push it to this repo :)


Contributing

Feel free to contribute to this project by creating pull requests or by buying me a beer :)