Hi there lovely community
I am using structs in vops for our uber shader. They are great but I have run across a basic problem
Does anyone have an idea how to modify a single element in a custom struct by index either in vops without unpacking and repacking the whole thing?
I want something similar to the set element or set vector component vop
or alternatively a vex equivalent to the syntax @P.x
any ideas?
many thanks
Found 65 posts.
Search results Show results as topic list.
Technical Discussion » vop structs set element equivalent
- megasets
- 85 posts
- Offline
Technical Discussion » @opinput1_P access to individual componenets
- megasets
- 85 posts
- Offline
what is this @opinput1_ voodoo?
Does that syntax work with any input and attribute?
great stuff
Does that syntax work with any input and attribute?
great stuff
Technical Discussion » Source Controlling Python Scripts in Digital Assets
- megasets
- 85 posts
- Offline
Hi Simon
how about keeping all your python modules (including callback functions)
externally and importing and calling them in your hda? You can version control these with git ect
This has served me well in the past. Setting up qlib environment node is a great way of re importing modules without restarting houdini. For callbacks I always use kwargs to pass in the parm or node objects required by the functions
This also helps with my sanity by using a sensible ide Also as a bonus this makes refactoring and reuse of code much simpler
how about keeping all your python modules (including callback functions)
externally and importing and calling them in your hda? You can version control these with git ect
This has served me well in the past. Setting up qlib environment node is a great way of re importing modules without restarting houdini. For callbacks I always use kwargs to pass in the parm or node objects required by the functions
This also helps with my sanity by using a sensible ide Also as a bonus this makes refactoring and reuse of code much simpler
Technical Discussion » maya to houdini alembic workflow
- megasets
- 85 posts
- Offline
Hi All
Been having a look at getting attributes across from maya into houdini, was wondering if anybody has had some experience here and could give some guidance. Not much detail in the docs
do far my experiments have yielded the following results:
maya –> houdini
attribute on transform –> detail attribute on unpacked primitives
attribute on shape –> primitive attribute on unpacked primitives
ideally I'd love to get a method to have this attribute available on the packed alembic so I do not always have to unpack or use style sheets for my shader overrides. I could eiether write out a config .json or xml to read these in myself but I want to check that there is no in built functionality first. to clarify this is for the case when one single attribute value will work for an entire shape ie version info, material assignment ect.
For selection based assignments ie primitive groups inside the shape I can get shader sets across using the write face sets option in the maya alembic exporter. These would have to be accessed with style sheets of course so all that is fine.
any help would be most appreciated
many thanks
Been having a look at getting attributes across from maya into houdini, was wondering if anybody has had some experience here and could give some guidance. Not much detail in the docs
do far my experiments have yielded the following results:
maya –> houdini
attribute on transform –> detail attribute on unpacked primitives
attribute on shape –> primitive attribute on unpacked primitives
ideally I'd love to get a method to have this attribute available on the packed alembic so I do not always have to unpack or use style sheets for my shader overrides. I could eiether write out a config .json or xml to read these in myself but I want to check that there is no in built functionality first. to clarify this is for the case when one single attribute value will work for an entire shape ie version info, material assignment ect.
For selection based assignments ie primitive groups inside the shape I can get shader sets across using the write face sets option in the maya alembic exporter. These would have to be accessed with style sheets of course so all that is fine.
any help would be most appreciated
many thanks
Technical Discussion » roughness in the new principled shader
- megasets
- 85 posts
- Offline
I believe there was a post in the h15 alpha forum about this -
something to do with the principled shader swapping shading models internally - the workaround is as tamte says never use 0 roughness
hopefully this will be fixed soon
something to do with the principled shader swapping shading models internally - the workaround is as tamte says never use 0 roughness
hopefully this will be fixed soon
Technical Discussion » Character Scaling Rig
- megasets
- 85 posts
- Offline
after a bit of a thought I realised that makehuman is really just driving blendshapes
It would be fairly trivial to export the extremes of each parameter and use them to drive deformation shapes post deform in houdini
will have a peak when I have a mo
cheers
It would be fairly trivial to export the extremes of each parameter and use them to drive deformation shapes post deform in houdini
will have a peak when I have a mo
cheers
Technical Discussion » Character Scaling Rig
- megasets
- 85 posts
- Offline
Not exactly what you are looking for and this may sound slightly sacrilegious but I have been using Make Human and Maya's Human IK system to achieve something similar - Make Human will export human ik compatible rigs
The auto rigger and re-targeting in Human Ik are very mature and the rigs and weights come across fine into Houdini
It is the only reason I would open maya these days. I'd rather do it all in Houdini but I found it is not possible without months of rnd
The auto rigger and re-targeting in Human Ik are very mature and the rigs and weights come across fine into Houdini
It is the only reason I would open maya these days. I'd rather do it all in Houdini but I found it is not possible without months of rnd
Technical Discussion » Copy and Paste nonsense
- megasets
- 85 posts
- Offline
I too have been suffering from this annoying problem
I have found it present using several builds (latest being 14.0.257) on CentOS Linux release 7.0.1406 with a GTX 760 using the NVIDIA driver 340.46
I have found that sometimes using alt-c and alt-v instead for copy and paste works however at some point during my houdini session all copying and pasting of text will cease to function.
please help us SESI!
:cry:
I have found it present using several builds (latest being 14.0.257) on CentOS Linux release 7.0.1406 with a GTX 760 using the NVIDIA driver 340.46
I have found that sometimes using alt-c and alt-v instead for copy and paste works however at some point during my houdini session all copying and pasting of text will cease to function.
please help us SESI!
:cry:
Technical Discussion » pop attract and repell
- megasets
- 85 posts
- Offline
check out the pop steer nodes:
pop steer separate and pop steer cohesion are what I belive you are after
you may also want pop steer seek if you want all the points to chase some targets
also pop steer align is important to get flocking behaviour
One thing to note is that the some of the nodes are quite slow if they are querying a large search radius in a dense point cloud
hope that helps
pop steer separate and pop steer cohesion are what I belive you are after
you may also want pop steer seek if you want all the points to chase some targets
also pop steer align is important to get flocking behaviour
One thing to note is that the some of the nodes are quite slow if they are querying a large search radius in a dense point cloud
hope that helps
Technical Discussion » Imitating Disney Aesthetics?
- megasets
- 85 posts
- Offline
As Jordi mentioned a toon shader could move you in the right direction?
Please find enclosed a very rough setup for how to to get you started - note I just used the default billowy smoke simulation setup - you will want to drive your volume in a way to
generate those whirls which are a key feature of this look. as you will notice my volume is way too nosey and has features that are far too high frequency
maybe have a look at vorticles?
if I have a bit more time I will try to have another look for you laters it's quite a cool look to try
hope this helps
Please find enclosed a very rough setup for how to to get you started - note I just used the default billowy smoke simulation setup - you will want to drive your volume in a way to
generate those whirls which are a key feature of this look. as you will notice my volume is way too nosey and has features that are far too high frequency
maybe have a look at vorticles?
if I have a bit more time I will try to have another look for you laters it's quite a cool look to try
hope this helps
Houdini Lounge » PhyShader
- megasets
- 85 posts
- Offline
this shader is fantastic! Having agret atime
one minor issue I have found is that the prefabs from the gallery are non commercial so they taint your hipfile beware
otherwise fantastic stuff!
one minor issue I have found is that the prefabs from the gallery are non commercial so they taint your hipfile beware
otherwise fantastic stuff!
Technical Discussion » Mantra command line arguments and IFD
- megasets
- 85 posts
- Offline
tricecold
wow this is a very good thread.
But can I ask you why you would not use Delayed Load Shaders for generating small IFDs.
Are you manipulating your volumes after the cache.
That is a really good point!
Apologies in my haste to answer the question about python filtering, I missed the main problem. IFD generation in most cases can be brought to a negligible gen time!
Technical Discussion » Mantra command line arguments and IFD
- megasets
- 85 posts
- Offline
Excellent - glad you got it going!
looks like mantra.property('object:name') is returning a list or tuple hence having to use an index
if your object is called /obj/grid_object1, my previous example would become:
if mantra.property('object:name') == “/obj/grid_object1”:
mantra.setproperty('object:renderable', 0)
this ifd hacking can be incredibly useful!
looks like mantra.property('object:name') is returning a list or tuple hence having to use an index
if your object is called /obj/grid_object1, my previous example would become:
if mantra.property('object:name') == “/obj/grid_object1”:
mantra.setproperty('object:renderable', 0)
this ifd hacking can be incredibly useful!
Technical Discussion » Mantra command line arguments and IFD
- megasets
- 85 posts
- Offline
I think this may help (untested):
if mantra.property('object:name') == “/obj/geo1”:
mantra.setproperty('object:renderable', 0)
mantra runs filter instance over every object so you need to filter by the mantra render property:
'object:name'
hope that helps!
if mantra.property('object:name') == “/obj/geo1”:
mantra.setproperty('object:renderable', 0)
mantra runs filter instance over every object so you need to filter by the mantra render property:
'object:name'
hope that helps!
Technical Discussion » Mantra command line arguments and IFD
- megasets
- 85 posts
- Offline
hi NYU_Animation
sorry I should have been more specific
You can call this command by saving the above in a python file called say “myFilters.py” then you can call
mantra -P myFilters.py - as your one line command in Deadline
are you familiar with python?
sorry I should have been more specific
You can call this command by saving the above in a python file called say “myFilters.py” then you can call
mantra -P myFilters.py - as your one line command in Deadline
are you familiar with python?
Technical Discussion » Mantra command line arguments and IFD
- megasets
- 85 posts
- Offline
http://www.sidefx.com/docs/houdini13.0/render/python [sidefx.com]
contains the relevant docs
You will need to create a function called filterInstance()
in which you will be able to change object settings to hide/unhide objects
will provide an example when I get a bit more time
-EDIT-
http://www.sidefx.com/docs/houdini13.0/props/mantra [sidefx.com]
The above contains a list of properties you can change on objects
i believe the best fit for hiding/unhiding would be to set the object as renderable or not using for the following property from the docs:
Houdini name vm_renderable
IFD name object:renderable
If this option is turned off, then the instance will not be rendered. The object’s properties can still be queried from within VEX, but no geometry will be rendered. This is roughly equivalent to turning the object into a transform space object.
contains the relevant docs
You will need to create a function called filterInstance()
in which you will be able to change object settings to hide/unhide objects
will provide an example when I get a bit more time
-EDIT-
http://www.sidefx.com/docs/houdini13.0/props/mantra [sidefx.com]
The above contains a list of properties you can change on objects
i believe the best fit for hiding/unhiding would be to set the object as renderable or not using for the following property from the docs:
Houdini name vm_renderable
IFD name object:renderable
If this option is turned off, then the instance will not be rendered. The object’s properties can still be queried from within VEX, but no geometry will be rendered. This is roughly equivalent to turning the object into a transform space object.
Technical Discussion » Mantra command line arguments and IFD
- megasets
- 85 posts
- Offline
You can use ifd filters by passing a script to mantra with the -P flag
here is an example script from a while back that contains functions to swap out the render filename using search strings (also making the directories that it needs and setting the pixel samples and resolution)
*CAVEAT* - I authored that file in H12 and havent had a chance to test it in 13 - just use it as a guide
import os, errno, mantra
newRes =
samples =
searchString = ‘oldSearchString’
replaceString = ‘newSearchString’
versionSearchString = ‘v001’
versionReplaceString = ‘v002’
def filterCamera():
filename = mantra.property('image:filename')
newfilename = filename.replace(searchString, replaceString).replace(versionSearchString, versionReplaceString)
folder = ‘/’.join(newfilename.split('/'))
if not os.path.exists(folder):
try:
os.makedirs(str(folder))
except OSError, e:
if e.errno == errno.EEXIST:
pass
else:
raise Exception(“Failed to create directory ” + folder + “: error %d” % e.errno)
mantra.setproperty('image:filename',newfilename)
mantra.setproperty('image:resolution', newRes)
mantra.setproperty('image:samples', samples)
I'll dig out the relevant docs to get you going and see if I can find the relevant code for hiding/unhiding
here is an example script from a while back that contains functions to swap out the render filename using search strings (also making the directories that it needs and setting the pixel samples and resolution)
*CAVEAT* - I authored that file in H12 and havent had a chance to test it in 13 - just use it as a guide
import os, errno, mantra
newRes =
samples =
searchString = ‘oldSearchString’
replaceString = ‘newSearchString’
versionSearchString = ‘v001’
versionReplaceString = ‘v002’
def filterCamera():
filename = mantra.property('image:filename')
newfilename = filename.replace(searchString, replaceString).replace(versionSearchString, versionReplaceString)
folder = ‘/’.join(newfilename.split('/'))
if not os.path.exists(folder):
try:
os.makedirs(str(folder))
except OSError, e:
if e.errno == errno.EEXIST:
pass
else:
raise Exception(“Failed to create directory ” + folder + “: error %d” % e.errno)
mantra.setproperty('image:filename',newfilename)
mantra.setproperty('image:resolution', newRes)
mantra.setproperty('image:samples', samples)
I'll dig out the relevant docs to get you going and see if I can find the relevant code for hiding/unhiding
Edited by - 2014年6月11日 07:43:00
Technical Discussion » Intereractive reselection for a Group Sop - cool trick!
- megasets
- 85 posts
- Offline
Technical Discussion » Intereractive reselection for a Group Sop - cool trick!
- megasets
- 85 posts
- Offline
Technical Discussion » Intereractive reselection for a Group Sop - cool trick!
- megasets
- 85 posts
- Offline
thanks for the tip Tomas!
you know I can't remember the last time I used a menu in Houdini, maybe I should have a look at what other little gems are holed up in there!
you know I can't remember the last time I used a menu in Houdini, maybe I should have a look at what other little gems are holed up in there!
-
- Quick Links