Techniques
Proceduralism
Readings
Transferring attributes
Using
attribtransfer
eg. P, CdUsing Pointwrangle Get attributes from second input in wrangle node [src]
If you want to get an attribute (lets say color) from a specific point number (lets say 123456) from input 2, you can use
If you have the same number of points on both inputs and you want to get an attribute from the corresponding point on input 2 you can use this shortcut
Where the number 1 describes the input port.
Ah, you want the number of points on input 1?
Copy stamping & Looping
Looping, Deborah Fowler
There are three ways of manipulating and copying points
Copy Stamp
with Expressions - good for quick prototypingCopy to Points
with a SOP eg.circle
Copy to Points
withpointwrangle
and VEX
Point generation
Using VEX
Using
line
to create points >point
to change the position eg. Creating circle of points
Orient objects or profiles to a curve
Using polyframe
Instancing = packed geo & copypoints
Tutorials
Lights
Instance
- similar to copytopoints to gridSelect Instance object
Place points or geo inside network
Point Instancing: Fast-point for geometry, full point instancing for lights
Random geometries
Pros: faster processing and work with render engines
Reveal instance in viewport via Display Opetion > Geometry > Instancing
create mmultiple objects: demo1, demo2, demo3
attribcreate -
string , name: "instance", String: /obj/demo1
/obj/demo`round(fit01(rand(@ptnum),1,2))`
Random geometry with copytoPoints
Attach an attribute called "variant" to each geometry
geometry eg. object_merge > pointWrangle -
i@variant =1;
Generating a random integer value for each point
grid> attribrandomize - scale > point wrangle
Retrieve the random variable values by listing "variant" in the Piece Attrbute from copytopoints
transform using target point orientation
Setting the object to faceup: pointwrangle: @N = {1,0,0};
Unpacking
Arnold renderer does not accept packed geo
add
unpack
Texturing
Random color ovveride
Multi-image texturing
Texture Override, Deborah Fowler
Light Instancing, Deborah Fowler
Using copy stamp and expressions
Prerequisite: You must use an image sequence; eg. all files are named: image_04.jpg
Assign a
material
SOP and input a principle shader to target objectActivate
Overrides use Local overrides
andmerge Ove
rrides
Parameter: basecolor_texture
Use any of these expressions:
90 is an arbituary value ; you can use your total image sequence frames
the backticks ` allows use to add an expression into the string
This technique is similar to copyStamp; we are referencing primnumber and adding an different image for each.
Texture override
CopyPacked geo
grid with uvproject1
expression in material node (point attrib)
CopyUnpacked
stamp input
material
Method: based on frame number
copy stamp
material
parameter: basecolor_texture
type: string value
String value:
Based on UV
Pros: good for seamless tiling eg. brick tesselattion
grid > uvproject > group > material
Based on luminance value
Texturing & UV
Best practice for assigning materials
Texturing prim faces with the same image using groups: https://www.deborahrfowler.com/HoudiniResources/Overview-UVs.html
polygon sop >
uvproject
uvquickshade
Recursive subdivision
Space partitioning algorithm
Tutorials:
Loops & VEX: Artistic Quadtrees, Entagma
Spiral Pattern Generation Tutorial - Houdini + Cinema4D, Roman Pillai
Unsorted VEX notes
Torus wrangle node example
Using
facet
to make unique points;
Simulating bubble popping with scatter
Sphere > Scatter > delete by threshold for pos.x
particlefluid surace
Last updated