Houdini Tomori Vex Course
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.
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.
- 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.
- 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.
- 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.
- 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.
- 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.
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.
- 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.
- 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.
- 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.
- 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 :)