Is there a way to display volumes in solaris/houdiniogl with the same fidelity as in obj/sop view
When importing from sops the volvis attributes get transferred as well, but when loading from file every thing is lost.
In sops at least the volvis data is loaded form file.
I try to shift all to lops from dops, even preview playblasts, but a decent viewport/playblast is very important, as the houdini viewport delivers amazing quality with volumes and pyro fx
thanks
Martin
Found 352 posts.
Search results Show results as topic list.
Solaris and Karma » Volumes and Volumevisualisation
- sanostol
- 575 posts
- Offline
Technical Discussion » Karma as a "normal" renderer
- sanostol
- 575 posts
- Offline
where to start....
- a clean and elegant way to build Your render setups
- nodes for render setups, so You can easily test different settings
- usd advantages when writing usd. no more bottlenecks in ifd generation, prior to rendering
- much faster startup on rendering
just to name some
- a clean and elegant way to build Your render setups
- nodes for render setups, so You can easily test different settings
- usd advantages when writing usd. no more bottlenecks in ifd generation, prior to rendering
- much faster startup on rendering
just to name some
Edited by sanostol - Oct. 22, 2021 06:45:16
Technical Discussion » Karma as a "normal" renderer
- sanostol
- 575 posts
- Offline
as far as I know karma is bound to usd. give it a try, You can dive very deep, but You also can stay in shallow waters and it still will benefit You greatly.
Solaris and Karma » Solaris/usd and vdbs, slow to write out
- sanostol
- 575 posts
- Offline
Solaris and Karma » Solaris/usd and vdbs, slow to write out
- sanostol
- 575 posts
- Offline
Thank You Michal, that would be my next step, but the departments, that use our stuff need vdbs as well. we are kind of sitting between to chairs . maybe it makes sense to run both exports on the farm.
much appreciated
Martin
much appreciated
Martin
Solaris and Karma » Solaris/usd and vdbs, slow to write out
- sanostol
- 575 posts
- Offline
Solaris and Karma » Solaris/usd and vdbs, slow to write out
- sanostol
- 575 posts
- Offline
Hello,
I want to write usds that have volumes and this takes quite some time, compared to abc references.
There is not any additional data in the resulting usda file, for example bounds. just the samples and the file path.
is there any way to speed this up. the rest is more or less immediately written to disk
thank You
Martin
I want to write usds that have volumes and this takes quite some time, compared to abc references.
There is not any additional data in the resulting usda file, for example bounds. just the samples and the file path.
is there any way to speed this up. the rest is more or less immediately written to disk
thank You
Martin
Houdini Lounge » (de)activating nodes via parameter interface
- sanostol
- 575 posts
- Offline
Maybe something like this, drag'n'drop nodes into the node string parameter field and press on or off
it is a hdanc otl, so it will turn Your session into a non commercial one. But it should not take long to rewrite it as normal hda
it is a hdanc otl, so it will turn Your session into a non commercial one. But it should not take long to rewrite it as normal hda
Edited by sanostol - Feb. 21, 2021 05:56:53
Houdini Lounge » (de)activating nodes via parameter interface
- sanostol
- 575 posts
- Offline
Hi
the function to bypass a node in python is:
hou.node("/obj/geo/node").bypass(1) to set it inactive and hou.node("/obj/geo/node").bypass(0) to activate it again.
What You would need is basically a list of nodes that You can iterate over to activate/deactivate.
You can create for example shelf scripts in houdini and use this here, but to create a tool, that does not need more work all the time to adjust it, it does need some more effort.
- How do You want to maintain that list ( picking, typing )?
- Where does the list live? ( global, on a node in a network )?
- What happens if You delete or copy a node that is in the list?
- Does the tool manage nodes in one network or do You want to control other networks as well?
When You interest stays in one network, the group window in the network editor is probably Your best option.
After all this You have to ask: Is it worth it If You need a just a quick tool to get it done I guess the node group window is Your friend. If You want to get into Python and the hou thing. Go for it, this is a good exercise. There are a some places where You can place Your tools. You can create a Node that holds the functionality or the shelf.
The advantage of a node is You get a parameter interface, where You could store Your list as a string attribute and it is a perfect place for code and buttons as well.
I hope I could help
the function to bypass a node in python is:
hou.node("/obj/geo/node").bypass(1) to set it inactive and hou.node("/obj/geo/node").bypass(0) to activate it again.
What You would need is basically a list of nodes that You can iterate over to activate/deactivate.
You can create for example shelf scripts in houdini and use this here, but to create a tool, that does not need more work all the time to adjust it, it does need some more effort.
- How do You want to maintain that list ( picking, typing )?
- Where does the list live? ( global, on a node in a network )?
- What happens if You delete or copy a node that is in the list?
- Does the tool manage nodes in one network or do You want to control other networks as well?
When You interest stays in one network, the group window in the network editor is probably Your best option.
After all this You have to ask: Is it worth it If You need a just a quick tool to get it done I guess the node group window is Your friend. If You want to get into Python and the hou thing. Go for it, this is a good exercise. There are a some places where You can place Your tools. You can create a Node that holds the functionality or the shelf.
The advantage of a node is You get a parameter interface, where You could store Your list as a string attribute and it is a perfect place for code and buttons as well.
I hope I could help
Technical Discussion » Python States: Dynamic Parameters?
- sanostol
- 575 posts
- Offline
Technical Discussion » Python States: Dynamic Parameters?
- sanostol
- 575 posts
- Offline
Thank You.
.
Edit: Maybe I'm missing this, but I can not see a way to build menu entries from scratch in the onMenuPreOpen method.
.
Edit: Maybe I'm missing this, but I can not see a way to build menu entries from scratch in the onMenuPreOpen method.
Edited by sanostol - Jan. 13, 2021 09:13:43
Technical Discussion » Python States: Dynamic Parameters?
- sanostol
- 575 posts
- Offline
Hi I want to change a menu parameter of a state, depending on the input geometry. similar to the weight paint tool, that shows all the bones that are available to paint.
How can I achieve this. The menu gets defined in the createViewerStateTemplate method, but there I have no access to the object that invokes the state.
I also guess, that this is not the right place to define a dynamic behavior of the menu
is there a way to modify the content of a menu parameter in relation to the input geometry, for example?
thanks You for Your time
How can I achieve this. The menu gets defined in the createViewerStateTemplate method, but there I have no access to the object that invokes the state.
I also guess, that this is not the right place to define a dynamic behavior of the menu
is there a way to modify the content of a menu parameter in relation to the input geometry, for example?
thanks You for Your time
Technical Discussion » Python States and Handles
- sanostol
- 575 posts
- Offline
Technical Discussion » Python States and Handles
- sanostol
- 575 posts
- Offline
thank You, but does not work here, I still have to touch the handle to run the OnStateToHandle
Technical Discussion » Python States and Handles
- sanostol
- 575 posts
- Offline
Hello, is there a way to position a dynamic handle as soon as the state is entered? It seems to be not possible. I hope I'm wrong, but the "onEnter" method does not have access to the parms of the handle and the handle itself
kwargs only contains 'node', 'state_flags', state_parms' and 'state_name', state_parms is empty
so there is no way to position the handle correctly as soon as one enters the state
thanks for Your time
kwargs only contains 'node', 'state_flags', state_parms' and 'state_name', state_parms is empty
so there is no way to position the handle correctly as soon as one enters the state
thanks for Your time
Technical Discussion » Material asset: how to add ouputs?
- sanostol
- 575 posts
- Offline
Hi, I have no Arnold at home, will try it at work. not sure if this is a limitation. I tried a simple mantra shader otl,not sure if Arnold has a different behavior here.
Technical Discussion » Material asset: how to add ouputs?
- sanostol
- 575 posts
- Offline
Hi,
the outputs are defined by the ./suboutputs node inside, plugin a new output, save the assets and eventually the new output will show up in the list
the outputs are defined by the ./suboutputs node inside, plugin a new output, save the assets and eventually the new output will show up in the list
Technical Discussion » Python States and Handles
- sanostol
- 575 posts
- Offline
Hello,
some questions about the python states and how to deal with handles properly.
1. The python state handle example creates a static and a dynamic handle. when You drag the static xform handle the connected parameters get a direct connection to the handle, as soon as You move the handle You, the connected parameters are highlighted in the parameter window and update during interaction.
I would like to have this behavior with a dynamic handle as well, but I could only come up with a slightly looser connection, by adding updates to the "onHandleToState" and "onStateToHandle" methods. Is there a better way to do this. Best would be to have it to behave the same way like a static handle.
2. I want to align the handle to a specific point on a input curve. The curve has a rot attribute with the rotation vector in it. I added a method to set the pivot on the handle. Now I want to call this method as soon as I enter the state, but could not find a way. the "onEnter" method seemed to be the right point for this, but i could not get access to the parameters of the handle and the node, the state is working on.
I called the methods on the "onHandleToState" and "onStateToHandle" methods but this does not work right and feels just wrong . The handle is transformed correctly as soon as I move it slightly.
Is there a way to call this initial method as soon as the states is entered?
I attached a little hip with embedded assets, thanks for Your time
some questions about the python states and how to deal with handles properly.
1. The python state handle example creates a static and a dynamic handle. when You drag the static xform handle the connected parameters get a direct connection to the handle, as soon as You move the handle You, the connected parameters are highlighted in the parameter window and update during interaction.
I would like to have this behavior with a dynamic handle as well, but I could only come up with a slightly looser connection, by adding updates to the "onHandleToState" and "onStateToHandle" methods. Is there a better way to do this. Best would be to have it to behave the same way like a static handle.
2. I want to align the handle to a specific point on a input curve. The curve has a rot attribute with the rotation vector in it. I added a method to set the pivot on the handle. Now I want to call this method as soon as I enter the state, but could not find a way. the "onEnter" method seemed to be the right point for this, but i could not get access to the parameters of the handle and the node, the state is working on.
I called the methods on the "onHandleToState" and "onStateToHandle" methods but this does not work right and feels just wrong . The handle is transformed correctly as soon as I move it slightly.
Is there a way to call this initial method as soon as the states is entered?
""" State: handle a State type: handle_a Description: handle a Author: mmatzeder Date Created: December 31, 2020 - 09:53:26 """ # Usage: Make sure to add 6 float parameters to the node: # newparameter, newparameter2, newparameter3, newparameter4, newparameter5, newparameter6. # Select node and hit enter in the viewer. import hou import viewerstate.utils as su def positionHandle(node, parms): parms["px"] = node.node("Out").geometry().points()[0].position().x() parms["py"] = node.node("Out").geometry().points()[0].position().y() parms["pz"] = node.node("Out").geometry().points()[0].position().z() parms["pivot_rx"] = node.node("Out").geometry().points()[0].attribValue("rot")[0] parms["pivot_ry"] = node.node("Out").geometry().points()[0].attribValue("rot")[1] parms["pivot_rz"] = node.node("Out").geometry().points()[0].attribValue("rot")[2] class State(object): def __init__(self, state_name, scene_viewer): self.state_name = state_name self.scene_viewer = scene_viewer self.xform_handle = hou.Handle(self.scene_viewer, "Xform") def onEnter(self, kwargs): self.xform_handle.show(True) print self.xform_handle def onHandleToState(self, kwargs): """ Used with bound dynamic handles to implement the state action when a handle is modified. """ node = kwargs["node"] handle = kwargs["handle"] parms = kwargs["parms"] mod_parms = kwargs["mod_parms"] prev_parms = kwargs["prev_parms"] ui_event = kwargs["ui_event"] self.log(parms) if handle == self.xform_handle.name(): positionHandle(node, parms) node.parm("tx").set(parms["tx"]) node.parm("ty").set(parms["ty"]) node.parm("tz").set(parms["tz"]) node.parm("rx").set(parms["rx"]) node.parm("ry").set(parms["ry"]) node.parm("rz").set(parms["rz"]) def onStateToHandle(self, kwargs): """ Used with bound dynamic handles to implement the handle action when a state node parm is modified. """ handle = kwargs["handle"] parms = kwargs["parms"] node = kwargs["node"] if handle == self.xform_handle.name(): positionHandle(node, parms) parms["tx"] = node.parm("tx").evalAsFloat() parms["ty"] = node.parm("ty").evalAsFloat() parms["tz"] = node.parm("tz").evalAsFloat() parms["rx"] = node.parm("rx").evalAsFloat() parms["ry"] = node.parm("ry").evalAsFloat() parms["rz"] = node.parm("rz").evalAsFloat() self.log(parms) def createViewerStateTemplate(): """ Mandatory entry point to create and return the viewer state template to register. """ state_typename = kwargs["type"].definition().sections()["DefaultState"].contents() state_label = "handle a" state_cat = hou.sopNodeTypeCategory() template = hou.ViewerStateTemplate(state_typename, state_label, state_cat) template.bindFactory(State) template.bindIcon(kwargs["type"].icon()) template.bindHandle( "xform", "Xform") return template
I attached a little hip with embedded assets, thanks for Your time
Edited by sanostol - Dec. 31, 2020 07:06:31
Technical Discussion » Wrapping my head around Python classes
- sanostol
- 575 posts
- Offline
the function does not really create a node, it just gives You back a reference to a existing node.
there is a function node.createNode() that actually creates a node, but it also returns a object reference.
there is a function node.createNode() that actually creates a node, but it also returns a object reference.
Edited by sanostol - Dec. 29, 2020 11:05:00
Houdini Lounge » Vellum cloth sim smooth
- sanostol
- 575 posts
- Offline
-
- Quick Links