Hi,
Where can get all new nodes, new python APIs, and vex functions in H19?
The What's Mew document is too simple to get new features.
How to get all NEW nodes in H19?
3206 9 3- jerry7
- Member
- 626 posts
- Joined: Nov. 2013
- Offline
- Andr
- Member
- 900 posts
- Joined: Feb. 2016
- Offline
- Andr
- Member
- 900 posts
- Joined: Feb. 2016
- Offline
and this should be the list of nodes that are now compilable in H19.
Notable additions: polyextrude and attribute transfer
agentlayer::2.0
attribcombine
attribfill
attribtransfer
cacheif
cap
convertvolume
crease
curvesect
edgecollapse
edgecusp
edgeflip
fractal
guidegroomcore
hole
invoke
kinefx::attribtransformcompute
kinefx::attribtransformextract
kinefx::characterblendshapesadd
kinefx::computemotionclipcreate
kinefx::computemotionclipretime
kinefx::computemotionmixer
kinefx::ikchains::2.0
kinefx::motionclipextractkeyposes
kinefx::motionclipmerge
kinefx::motionclipupdate
kinefx::skeletonblend::2.0
lopimport::2.0
material
mergepacked
neighborsearchcl
packededit
packinject
polyextrude::2.0
polypatch
polysplit::2.0
refine
relax
repack
tetlayer
trace
tribez
tridivide
tristrip
unpackusd::2.0
uvrelax
vdbextrapolate
vdbmerge
volumecombine
volumenormalize
volumerasterizelattice
volumetrail
wire
Notable additions: polyextrude and attribute transfer
agentlayer::2.0
attribcombine
attribfill
attribtransfer
cacheif
cap
convertvolume
crease
curvesect
edgecollapse
edgecusp
edgeflip
fractal
guidegroomcore
hole
invoke
kinefx::attribtransformcompute
kinefx::attribtransformextract
kinefx::characterblendshapesadd
kinefx::computemotionclipcreate
kinefx::computemotionclipretime
kinefx::computemotionmixer
kinefx::ikchains::2.0
kinefx::motionclipextractkeyposes
kinefx::motionclipmerge
kinefx::motionclipupdate
kinefx::skeletonblend::2.0
lopimport::2.0
material
mergepacked
neighborsearchcl
packededit
packinject
polyextrude::2.0
polypatch
polysplit::2.0
refine
relax
repack
tetlayer
trace
tribez
tridivide
tristrip
unpackusd::2.0
uvrelax
vdbextrapolate
vdbmerge
volumecombine
volumenormalize
volumerasterizelattice
volumetrail
wire
- LukeP
- Member
- 233 posts
- Joined: March 2009
- Offline
- Andr
- Member
- 900 posts
- Joined: Feb. 2016
- Offline
Yes, faster because you can use them inside a compiled block, so that you can have multithreaded for-loops operations.
https://www.sidefx.com/docs/houdini/model/compile.html [www.sidefx.com]
Side note: compiling a for-loop doesn't automagically make your network faster. In fact in some cases it makes it slower! You should always do some profiling with the performance monitor, and see if it's worth using compiled blocks.
Another benefit of compilable nodes: you can call and chain them directly inside a python script
https://www.sidefx.com/docs/houdini/model/verbs.html [www.sidefx.com]
https://www.sidefx.com/docs/houdini/model/compile.html [www.sidefx.com]
Side note: compiling a for-loop doesn't automagically make your network faster. In fact in some cases it makes it slower! You should always do some profiling with the performance monitor, and see if it's worth using compiled blocks.
Another benefit of compilable nodes: you can call and chain them directly inside a python script
https://www.sidefx.com/docs/houdini/model/verbs.html [www.sidefx.com]
Edited by Andr - Oct. 29, 2021 09:14:18
- Andr
- Member
- 900 posts
- Joined: Feb. 2016
- Offline
Andr
this should be the list of new SOP nodes in hou19.
Note: the list doesn't include labs nodes or nodes that were just updated.
{'agentlayer::2.0', 'attribfill', 'volumecombine', 'volumenormalize', 'cacheif', 'volumerasterizelattice', 'mergepacked', 'packinject', 'invokegraph', 'attribcombine'}
disregard this, it's an incomplete list.
The problem is that many factory nodes don't show up as Internal when you ask for node.type().sourcePath()
This is how I was trying to split SideFX nodes from custom HDAs added by the user.
For example the new H19 Adjust Color node is not "signed" as Internal
Anyway this was my workflow to find new h19 nodes
import json # Opening JSON file f = open(r'C:\Users\andre\all_19nodes.txt' ) #file obtained with shell command # hython $HFS/houdini/python3.7libs/opnode_sum.py > all_19nodes.txt data = json.load(f) nodes19 = data['Nodes']['Sop'].keys() inodes19 = [] ## internal nodes ## internal nodes of h18.5 from opnode_sum.py script run in 18.5 session inodes185 = ['add', 'agent', 'agentclip::2.0', 'agentlayer', 'agentunpack', 'align', 'attribcast', 'attribcomposite', 'attribcopy', 'attribcreate', 'attribcreate::2.0', 'attribfromparm', 'attribfromvolume', 'attribinterpolate', 'attribmirror', 'attribpromote', 'attribreorient', 'attribstringedit', 'attribswap', 'attribtransfer', 'attribute', 'attribvop', 'bakeode', 'bakevolume', 'basis', 'blast', 'blendshapes', 'blendshapes::2.0', 'block_begin', 'block_end', 'bonecapturebiharmonic', 'bonecapturelines', 'bonedeform', 'bonelink', 'boolean::2.0', 'bound', 'box', 'bulge', 'cache', 'cap', 'capture', 'captureattribpack', 'captureattribunpack', 'capturecorrect', 'capturelayerpaint', 'capturemirror', 'captureoverride', 'captureproximity', 'carve', 'channel', 'chopnet', 'circle', 'circlefromedges', 'clay', 'clip', 'clothcapture', 'clothdeform', 'cluster', 'comb', 'compile_begin', 'compile_end', 'connectivity', 'control', 'convert', 'convertmeta', 'convertvolume', 'convexdecomposition', 'cop2net', 'copy', 'copytopoints', 'copytopoints::2.0', 'copyxform', 'crease', 'creep', 'cregion', 'curve', 'curveclay', 'curvesect', 'delete', 'deltamush', 'detangle', 'dissolve', 'dissolve::2.0', 'divide', 'dopimport', 'dopimportrecords', 'dopnet', 'each', 'edgecollapse', 'edgecusp', 'edgedivide', 'edgeequalize', 'edgeflip', 'edgestraighten', 'edgetransport', 'edit', 'ends', 'enumerate', 'error', 'extractcentroid', 'extracttransform', 'extrude', 'facet', 'file', 'fillet', 'fit', 'font', 'force', 'fractal', 'fur', 'fuse', 'fuse::2.0', 'grid', 'groupcombine', 'groupcopy', 'groupcreate', 'groupdelete', 'groupexpand', 'groupfindpath', 'grouppaint', 'grouppromote', 'grouprange', 'grouprename', 'grouptransfer', 'hole', 'inflate', 'intersectionanalysis', 'intersectionstitch', 'invoke', 'iso', 'isooffset', 'join', 'knife', 'lattice', 'line', 'lopnet', 'lsystem', 'magnet', 'matchtopology', 'material', 'matnet', 'mdd', 'measure', 'measure::2.0', 'merge', 'metaball', 'metagroups', 'mirror', 'name', 'normal', 'null', 'object_merge', 'objnet', 'opencl', 'orientalongcurve', 'output', 'pack', 'packededit', 'packpoints', 'particlefluidsurface', 'partition', 'peak', 'pointcloudiso', 'pointgenerate', 'polybevel', 'polybevel::2.0', 'polybevel::3.0', 'polybridge', 'polycut', 'polydoctor', 'polyexpand2d', 'polyextrude', 'polyextrude::2.0', 'polyfill', 'polyframe', 'polyloft', 'polypatch', 'polyreduce', 'polyreduce::2.0', 'polysoup', 'polyspline', 'polysplit', 'polysplit::2.0', 'polywire', 'posespacedeform', 'primitive', 'profile', 'project', 'python', 'rails', 'ray', 'refine', 'relax', 'remesh', 'remesh::2.0', 'repack', 'resample', 'rest', 'reverse', 'revolve', 'rewire', 'rishader', 'rop_geometry', 'ropnet', 'sblend', 'sblend::2.0', 'scatter', 'scatter::2.0', 'script', 'sculpt', 'sesi_temporary::tetrahedralize::2.0', 'shapediff', 'shopnet', 'shrinkwrap', 'skin', 'smooth', 'smooth::2.0', 'softpeak', 'softxform', 'solidify', 'sopnet', 'sort', 'sphere', 'splitpoints', 'starburst', 'stash', 'stitch', 'stroke', 'subdivide', 'subnet', 'superquad', 'surfsect', 'sweep', 'sweep::2.0', 'switch', 'switchif', 'tetpartition', 'tetrahedralize', 'tetrasurface', 'texture', 'timeshift', 'topnet', 'topnetmgr', 'topobuild', 'topotransfer', 'torus', 'trace', 'trail', 'triangulate2d', 'triangulate2d::2.0', 'triangulate2d::3.0', 'tribez', 'tridivide', 'trim', 'tube', 'unix', 'unpack', 'unpackpoints', 'uvautoseam', 'uvbrush', 'uvedit', 'uvflatten', 'uvflatten::2.0', 'uvflatten::3.0', 'uvfuse', 'uvlayout', 'uvlayout::2.0', 'uvlayout::3.0', 'uvpelt', 'uvpelt::2.0', 'uvproject', 'uvtransform', 'uvtransform::2.0', 'uvunwrap', 'vdbfromparticlefluid', 'vertex', 'visibility', 'volume', 'volumeanalysis', 'volumeblur', 'volumebound', 'volumebreak', 'volumecompress', 'volumeconvolve3', 'volumefeather', 'volumefft', 'volumefromattrib', 'volumemerge', 'volumemix', 'volumeopticalflow', 'volumepatch', 'volumerasterize', 'volumerasterizeparticles', 'volumereduce', 'volumeresample', 'volumeresize', 'volumesdf', 'volumeslice', 'volumesplice', 'volumestamp', 'volumesurface', 'volumetrail', 'volumevisualization', 'volumevop', 'vopnet', 'voronoisplit', 'windingnumber', 'wire', 'wireblend', 'wirecapture', 'wiredeform', 'wiretransfershape', 'xform', 'xformaxis', 'xformbyattrib'] for n in nodes19: ntype = hou.nodeType(hou.sopNodeTypeCategory(), n) if ntype.sourcePath() == 'Internal': ## check if it's internal node inodes19.append(n) f.close() new_h19_nodes = [k for k in inodes19 if k not in inodes185] print(new_h19_nodes)
Edited by Andr - Oct. 30, 2021 04:07:04
- animatrix_
- Member
- 4526 posts
- Joined: Feb. 2012
- Offline
New VEX functions in Houdini 19
BSDFs
chiang
Returns a chiang BSDF.
Crowds
agentcollisionlayers
Returns the names of an agent primitive’s collision layers.
agentcurrentlayers
Returns the names of an agent primitive’s current layers.
setagentcollisionlayers
Sets the collision layers of an agent primitive.
setagentcurrentlayers
Sets the current display layers of an agent primitive.
Noise & Randomness
mx_cellnoise
MaterialX compatible cellnoise
mx_perlin
MaterialX compatible Perlin noise
Strings
decodeutf8
Decodes a UTF8 string into a series of codepoints.
encodeutf8
Encodes a UTF8 string from a series of codepoints.
replace
Replaces occurrences of a substring.
replace_match
Replaces the matched string pattern with another pattern.
USD
usd_flattenediprimvar
Reads the value of a flattened primvar directly from the USD primitive or from USD primitive’s ancestor.
usd_flattenediprimvarelement
Reads an element value of a flattened array primvar directly from the USD primitive or from its ancestor.
usd_iprimvar
Reads the value of a primvar directly from the USD primitive or from USD primitive’s ancestor.
usd_iprimvarelement
Reads the value of an element from the array primvar directly from the USD primitive or from USD primitive’s ancestor.
usd_iprimvarelementsize
Returns the element size of the primvar directly from the USD primitive or from USD primitive’s ancestor.
usd_iprimvarindices
Returns the index array of an indexed primvar directly on the USD primitive or on USD primitive’s ancestor.
usd_iprimvarinterpolation
Returns the element size of the primvar directly on the USD primitive or on USD primitive’s ancestor.
usd_iprimvarlen
Returns the length of the array primvar directly on the USD primitive or on USD primitive’s ancestor.
usd_iprimvarnames
Returns the names of the primvars available directly on the given USD primitive or on USD primitive’s ancestor.
usd_iprimvarsize
Returns the tuple size of the primvar directly on the USD primitive or on USD primitive’s ancestor.
usd_iprimvartimesamples
Returns the time codes at which the primvar values are authored directly on the given primitive or on its ancestor.
usd_iprimvartypename
Returns the name of the primvar type found on the given primitive or its ancestor.
usd_isabstract
Checks if the primitive is abstract.
usd_isarrayiprimvar
Checks if there is an array primvar directly on the USD primitive or on USD primitive’s ancestor.
usd_isindexediprimvar
Checks if there is an indexed primvar directly on the USD primitive or on USD primitive’s ancestor.
usd_isiprimvar
Checks if the primitive or its ancestor has a primvar of the given name.
usd_ismodel
Checks if the primitive is a model.
usd_makevalidprimname
Forces a string to conform to the rules for naming USD primitives.
usd_makevalidprimpath
Forces a string to conform to the rules for paths to USD primitives.
usd_setvisibility
Configures the primitive to be visible, invisible, or to inherit visibility from the parent.
usd_specifier
Returns the primitive’s specifier.
Volume
volumecubicsample [www.sidefx.com]
Samples the volume primitive’s value. Values between voxels are evaluated with tri-cubic interpolation.
volumecubicsamplev [www.sidefx.com]
Samples the volume primitive’s value. Values between voxels are evaluated with tri-cubic interpolation.
volumesmoothsample [www.sidefx.com]
Samples the volume primitive’s value. Values between voxels are evaluated with smooth interpolation.
volumesmoothsamplev [www.sidefx.com]
Samples the volume primitive’s value. Values between voxels are evaluated with smooth interpolation.
BSDFs
chiang
Returns a chiang BSDF.
Crowds
agentcollisionlayers
Returns the names of an agent primitive’s collision layers.
agentcurrentlayers
Returns the names of an agent primitive’s current layers.
setagentcollisionlayers
Sets the collision layers of an agent primitive.
setagentcurrentlayers
Sets the current display layers of an agent primitive.
Noise & Randomness
mx_cellnoise
MaterialX compatible cellnoise
mx_perlin
MaterialX compatible Perlin noise
Strings
decodeutf8
Decodes a UTF8 string into a series of codepoints.
encodeutf8
Encodes a UTF8 string from a series of codepoints.
replace
Replaces occurrences of a substring.
replace_match
Replaces the matched string pattern with another pattern.
USD
usd_flattenediprimvar
Reads the value of a flattened primvar directly from the USD primitive or from USD primitive’s ancestor.
usd_flattenediprimvarelement
Reads an element value of a flattened array primvar directly from the USD primitive or from its ancestor.
usd_iprimvar
Reads the value of a primvar directly from the USD primitive or from USD primitive’s ancestor.
usd_iprimvarelement
Reads the value of an element from the array primvar directly from the USD primitive or from USD primitive’s ancestor.
usd_iprimvarelementsize
Returns the element size of the primvar directly from the USD primitive or from USD primitive’s ancestor.
usd_iprimvarindices
Returns the index array of an indexed primvar directly on the USD primitive or on USD primitive’s ancestor.
usd_iprimvarinterpolation
Returns the element size of the primvar directly on the USD primitive or on USD primitive’s ancestor.
usd_iprimvarlen
Returns the length of the array primvar directly on the USD primitive or on USD primitive’s ancestor.
usd_iprimvarnames
Returns the names of the primvars available directly on the given USD primitive or on USD primitive’s ancestor.
usd_iprimvarsize
Returns the tuple size of the primvar directly on the USD primitive or on USD primitive’s ancestor.
usd_iprimvartimesamples
Returns the time codes at which the primvar values are authored directly on the given primitive or on its ancestor.
usd_iprimvartypename
Returns the name of the primvar type found on the given primitive or its ancestor.
usd_isabstract
Checks if the primitive is abstract.
usd_isarrayiprimvar
Checks if there is an array primvar directly on the USD primitive or on USD primitive’s ancestor.
usd_isindexediprimvar
Checks if there is an indexed primvar directly on the USD primitive or on USD primitive’s ancestor.
usd_isiprimvar
Checks if the primitive or its ancestor has a primvar of the given name.
usd_ismodel
Checks if the primitive is a model.
usd_makevalidprimname
Forces a string to conform to the rules for naming USD primitives.
usd_makevalidprimpath
Forces a string to conform to the rules for paths to USD primitives.
usd_setvisibility
Configures the primitive to be visible, invisible, or to inherit visibility from the parent.
usd_specifier
Returns the primitive’s specifier.
Volume
volumecubicsample [www.sidefx.com]
Samples the volume primitive’s value. Values between voxels are evaluated with tri-cubic interpolation.
volumecubicsamplev [www.sidefx.com]
Samples the volume primitive’s value. Values between voxels are evaluated with tri-cubic interpolation.
volumesmoothsample [www.sidefx.com]
Samples the volume primitive’s value. Values between voxels are evaluated with smooth interpolation.
volumesmoothsamplev [www.sidefx.com]
Samples the volume primitive’s value. Values between voxels are evaluated with smooth interpolation.
Edited by animatrix_ - Oct. 31, 2021 01:31:50
Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]
youtube.com/@pragmaticvfx | patreon.com/animatrix | pragmaticvfx.gumroad.com
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]
youtube.com/@pragmaticvfx | patreon.com/animatrix | pragmaticvfx.gumroad.com
- jerry7
- Member
- 626 posts
- Joined: Nov. 2013
- Offline
- mandrake0
- Member
- 637 posts
- Joined: June 2006
- Offline
if you want to get all nodes and parms there is a script in houdini, you just need a diff viewer.
https://www.sidefx.com/forum/topic/18448/?page=1#post-254872 [www.sidefx.com]
https://www.sidefx.com/forum/topic/18448/?page=1#post-254872 [www.sidefx.com]
- artdreamer96
- Member
- 1 posts
- Joined: Aug. 2021
- Offline
mandrake0
if you want to get all nodes and parms there is a script in houdini, you just need a diff viewer.
https://www.sidefx.com/forum/topic/18448/?page=1#post-254872 [www.sidefx.com]
but it doesn't seem to work on 19.5
-
- Quick Links