You're welcome! Sure, if I think of other benefits, I'll jot them down here.
Here's another… People don't always realise that galleries are not just for presets on a node. You can store subnets with multiple nodes inside in a gallery, so you can actually store complete FX setups if you like. Sure, you can do this with OTLs too, but with OTLs I always feel compelled to take the time to add some sort of nice interface that encapsulates the contents properly. Galleries are much less formal in that regard. You can just chuck anything inside that might be useful, and there's no pressure to make it look nice.
Worth saying that there's nothing stopping you using OTLs in a gallery type of workflow. Just add an OnCreate event to the OTL that would copy its contents to a subnet and then delete itself. Make sure you add a way to disable it (e.g. via an environment variable) otherwise you'll never be able to edit it again!
Found 18 posts.
Search results Show results as topic list.
Technical Discussion » Galleries in production
- fxnut
- 19 posts
- Offline
Technical Discussion » Galleries in production
- fxnut
- 19 posts
- Offline
Hi Christian,
Galleries are great because they can be dropped into a scene and the nodes are just created.
It's fire and forget because with galleries there's no reference back to the original file, unlike with OTLs where they store the path to the original OTL definition and will update itself if it changes. This means that you can update the presets in the gallery as much as you like and there are never any worries about messing up someone's scene or having to maintain compatibility.
Galleries also appear in the Tool Palette and under the Parameter Pane gear icon which can be really handy.
OTLs are great for certain things, but galleries are fantastic for just storing those little snippets which you might update every now and again as you improve your workflow. If you're freelancing, you can take your galleries with you into each company and just drop them into your $HOUDINI_USER_PREF_DIR to use them in a new place. OTLs are a different story as you'd have to work them into whatever OTL management system is available to you (and you'd soon be in trouble if you used them from your home directory!)
That's off the top of my head… I dare say there are more
Cheers,
Andy
Galleries are great because they can be dropped into a scene and the nodes are just created.
It's fire and forget because with galleries there's no reference back to the original file, unlike with OTLs where they store the path to the original OTL definition and will update itself if it changes. This means that you can update the presets in the gallery as much as you like and there are never any worries about messing up someone's scene or having to maintain compatibility.
Galleries also appear in the Tool Palette and under the Parameter Pane gear icon which can be really handy.
OTLs are great for certain things, but galleries are fantastic for just storing those little snippets which you might update every now and again as you improve your workflow. If you're freelancing, you can take your galleries with you into each company and just drop them into your $HOUDINI_USER_PREF_DIR to use them in a new place. OTLs are a different story as you'd have to work them into whatever OTL management system is available to you (and you'd soon be in trouble if you used them from your home directory!)
That's off the top of my head… I dare say there are more
Cheers,
Andy
SI Users » Porting ICE nodes to Houdini
- fxnut
- 19 posts
- Offline
Hi guys,
Just stumbled across this thread. Lots of really good ideas here.
If you haven't seen it already, I've started an open source Houdini library called siLib. (At the moment, there are some nodes that allow you to apply noise in a way that's an improvement on Houdini's built in nodes, see http://vimeo.com/silib/stablenoise).
But now that that's finally out there, I'd like to start looking at streamlining some of the workflows in Houdini in a more “Softimage” way. Locations are one particular thing I have my eye on, and Todd's suggestion of implementing a UV to Location node is a great one. The idea would be not to just create a single node, but a suite of compatible nodes that add a whole new Location workflow to Houdini. I'm wondering if VOP structs might offer a way of making Locations a first class data type in Houdini which would be awesome. I still need to read up on it.
Anyway…like I said, there's already some great thoughts in this thread. It'd be good to discuss how we might develop them further and if there are any other key concepts that might be deserving of their own suite of nodes?
If anyone is interested in collaborating on any of this, do let me know. We also have a Google Group set up here: https://groups.google.com/d/forum/houdini-silib [groups.google.com]
Cheers,
Andy
Just stumbled across this thread. Lots of really good ideas here.
If you haven't seen it already, I've started an open source Houdini library called siLib. (At the moment, there are some nodes that allow you to apply noise in a way that's an improvement on Houdini's built in nodes, see http://vimeo.com/silib/stablenoise).
But now that that's finally out there, I'd like to start looking at streamlining some of the workflows in Houdini in a more “Softimage” way. Locations are one particular thing I have my eye on, and Todd's suggestion of implementing a UV to Location node is a great one. The idea would be not to just create a single node, but a suite of compatible nodes that add a whole new Location workflow to Houdini. I'm wondering if VOP structs might offer a way of making Locations a first class data type in Houdini which would be awesome. I still need to read up on it.
Anyway…like I said, there's already some great thoughts in this thread. It'd be good to discuss how we might develop them further and if there are any other key concepts that might be deserving of their own suite of nodes?
If anyone is interested in collaborating on any of this, do let me know. We also have a Google Group set up here: https://groups.google.com/d/forum/houdini-silib [groups.google.com]
Cheers,
Andy
Technical Discussion » Galleries in production
- fxnut
- 19 posts
- Offline
Continuing on with this topic. I think galleries are awesome, but I'd like to manage them better within our pipeline.
Ideally I want to be able to have files/folders containing individual gallery entries so that I can store them in git, version manage them, and then “compile” them into a single gallery file for Houdini to ingest. Something like an hexpand/hotl equivalent, but for Galleries.
Has anyone found a way of expanding the binary gallery files into something more useful? A single gallery entry can be unzipped and the contents unzipped again to show the contents. It's of limited use though as I think some data gets skipped. Not to mention, as soon as you add extra entries, it isn't a valid zip file anymore.
I've come very close with the Python HOM in creating gallery files. You can run the following python function from Hython (i.e external to Houdini) and it will create a gallery file based on data I've loaded from a json file that's created by writing out the exact same properties as show below.
This works great, except for if you create a preset from a Subnet that contains nodes. When you instantiate the gallery preset, the nodes inside the subnet don't get created. So close and yet so far. Very frustrating!
Anyway, I thought I'd post this here in case anyone has any insight that might help me figure this out?
Cheers,
Andy
Ideally I want to be able to have files/folders containing individual gallery entries so that I can store them in git, version manage them, and then “compile” them into a single gallery file for Houdini to ingest. Something like an hexpand/hotl equivalent, but for Galleries.
Has anyone found a way of expanding the binary gallery files into something more useful? A single gallery entry can be unzipped and the contents unzipped again to show the contents. It's of limited use though as I think some data gets skipped. Not to mention, as soon as you add extra entries, it isn't a valid zip file anymore.
I've come very close with the Python HOM in creating gallery files. You can run the following python function from Hython (i.e external to Houdini) and it will create a gallery file based on data I've loaded from a json file that's created by writing out the exact same properties as show below.
def create_new_gallery_from_entry(path, data): entry_name = data["name"] galleryEntry = hou.galleries.createGalleryEntry(path, entry_name, None) galleryEntry.setAllowIconRegeneration(data["allow_icon_regeneration"]) galleryEntry.setCategories(data["categories"]) galleryEntry.setDescription(data["description"]) galleryEntry.setHelpURL(data["helpurl"]) galleryEntry.setIcon(data["icon"]) galleryEntry.setKeywords(data["keywords"]) galleryEntry.setLabel(data["label"]) galleryEntry.setName(entry_name) galleryEntry.setNodeTypeCategory(hou.nodeTypeCategories()[data["node_type_category"]]) galleryEntry.setNodeTypeNames(data["node_type_names"]) galleryEntry.setRequiredHDAFile(data["required_hda_file"]) galleryEntry.setScript(data["script"])
This works great, except for if you create a preset from a Subnet that contains nodes. When you instantiate the gallery preset, the nodes inside the subnet don't get created. So close and yet so far. Very frustrating!
Anyway, I thought I'd post this here in case anyone has any insight that might help me figure this out?
Cheers,
Andy
Edited by fxnut - July 27, 2016 10:09:49
Technical Discussion » 123.cmd not always being called for setting snap options
- fxnut
- 19 posts
- Offline
Thanks a lot for the comprehensive explanation. I'll give that a go instead.
Cheers
Andy
Cheers
Andy
Technical Discussion » 123.cmd not always being called for setting snap options
- fxnut
- 19 posts
- Offline
Hi,
Just a quick tech issue I'm having. I've got an HScript command that I want to run at startup to set the grid snapping options for the network pane:
neteditor -r 1.0 0.75 -g 1 -a 1 -d Build panetab7
I originally put this in 123.cmd, but it seemed to be called only around 50% of the time when I started Houdini, so I put it in 456.cmd instead. This works more reliably, but still not 100%. Any ideas why?
Is there a better way to set this as a default? Is it possible to set this as a default system wide so that the snap options apply to every network view on all the different layouts and for new windows too?
Thanks
Andy
Just a quick tech issue I'm having. I've got an HScript command that I want to run at startup to set the grid snapping options for the network pane:
neteditor -r 1.0 0.75 -g 1 -a 1 -d Build panetab7
I originally put this in 123.cmd, but it seemed to be called only around 50% of the time when I started Houdini, so I put it in 456.cmd instead. This works more reliably, but still not 100%. Any ideas why?
Is there a better way to set this as a default? Is it possible to set this as a default system wide so that the snap options apply to every network view on all the different layouts and for new windows too?
Thanks
Andy
Technical Discussion » New VEX shader tutorial
- fxnut
- 19 posts
- Offline
Thanks guys, glad you enjoyed it.
BTW, a quick thanks to Dragos for pointing out that Houdini 9 has parameter instances for materials, so the stuff about attributes driving the “wrap” parameter aren't strictly necessary.
I wrote the tutorial for V8, but I'll try update the tutorial for V9 at some point.
Cheers
Andy
BTW, a quick thanks to Dragos for pointing out that Houdini 9 has parameter instances for materials, so the stuff about attributes driving the “wrap” parameter aren't strictly necessary.
I wrote the tutorial for V8, but I'll try update the tutorial for V9 at some point.
Cheers
Andy
Technical Discussion » New VEX shader tutorial
- fxnut
- 19 posts
- Offline
Hi,
This is my first tutorial for Houdini; it shows how to create a light wrap shader in VEX and VOPs. It also shows how to use the Illuminance Loop VOP for getting the total illumination from lights in your scene.
http://www.andynicholas.com/thezone/index.php?area=showitem&fromarea=art&article=7 [andynicholas.com]
Feedback and comments welcome
Cheers
Andy
This is my first tutorial for Houdini; it shows how to create a light wrap shader in VEX and VOPs. It also shows how to use the Illuminance Loop VOP for getting the total illumination from lights in your scene.
http://www.andynicholas.com/thezone/index.php?area=showitem&fromarea=art&article=7 [andynicholas.com]
Feedback and comments welcome
Cheers
Andy
Technical Discussion » Creating my own Extrude
- fxnut
- 19 posts
- Offline
Okay cool, thanks for the help. It's good to know I'm heading in the right direction. After I posted, I started to look at getting my network into a digital asset and I started to come across the technique of “binding selectors” that you mentioned.
However, I'm finding the docs on “omsbind” a little hard to figure out. This is what I've got so far…
omsbind -t sop group1:pattern prims “APNExtrude” “Select polygons” 0 1 poly 1 “” 1
which I've put inside the “Before First Create” event.
The problem is that I'm just guessing what to put in for the node and parameter name. At the moment, it's set to “group1:pattern” which is the first group SOP in the asset which sets the primitive group so that my extrude network knows which polys to work with. The “pattern” bit is the name of the pattern parameter in the group SOP.
When I create the asset I don't get a prompt to select anything, so I'm guessing that what I've put here is wrong. Any clues as to what I should be putting in here?
Thanks
Andy
However, I'm finding the docs on “omsbind” a little hard to figure out. This is what I've got so far…
omsbind -t sop group1:pattern prims “APNExtrude” “Select polygons” 0 1 poly 1 “” 1
which I've put inside the “Before First Create” event.
The problem is that I'm just guessing what to put in for the node and parameter name. At the moment, it's set to “group1:pattern” which is the first group SOP in the asset which sets the primitive group so that my extrude network knows which polys to work with. The “pattern” bit is the name of the pattern parameter in the group SOP.
When I create the asset I don't get a prompt to select anything, so I'm guessing that what I've put here is wrong. Any clues as to what I should be putting in here?
Thanks
Andy
Technical Discussion » Creating my own Extrude
- fxnut
- 19 posts
- Offline
Hi guys,
Okay, after a lot of blood, sweat and tears, I finally figured out how to make my own poly extrude network, i.e. something that extrudes each separately connected set of polys along it's own vertex normals. At the moment, I've got a primitive group which I pass into the network to indicate which polys to extrude.
My question is, what's the best way in Houdini to package this network together into something that can be re-used easily?
I suspect the answer is to make a digital asset? If so, is there a way to make it as seamless as possible with the other SOPs? E.g. how do I pass the current polygon selection to it instead of passing a group name? Do I use a string with the primitive indices? How do I tie that in with the selection when the node/asset is created?
Also, I've played around with VOP SOP definitions which seem pretty cool. But am I right in thinking that you can't create new geometry with these? You can only deform existing geometry? What about if I used VEX code itself? Does that open up any possibilities?
Sorry, lots of questions I know, but I think I'm nearly there in terms of figuring out how all this stuff fits together, so whatever light you can throw on this will no doubt help enormously.
Thanks a lot.
Andy
Okay, after a lot of blood, sweat and tears, I finally figured out how to make my own poly extrude network, i.e. something that extrudes each separately connected set of polys along it's own vertex normals. At the moment, I've got a primitive group which I pass into the network to indicate which polys to extrude.
My question is, what's the best way in Houdini to package this network together into something that can be re-used easily?
I suspect the answer is to make a digital asset? If so, is there a way to make it as seamless as possible with the other SOPs? E.g. how do I pass the current polygon selection to it instead of passing a group name? Do I use a string with the primitive indices? How do I tie that in with the selection when the node/asset is created?
Also, I've played around with VOP SOP definitions which seem pretty cool. But am I right in thinking that you can't create new geometry with these? You can only deform existing geometry? What about if I used VEX code itself? Does that open up any possibilities?
Sorry, lots of questions I know, but I think I'm nearly there in terms of figuring out how all this stuff fits together, so whatever light you can throw on this will no doubt help enormously.
Thanks a lot.
Andy
Technical Discussion » COP Feedback?
- fxnut
- 19 posts
- Offline
Thanks, that sounds like it's exactly what I need. I'll try it out as soon as I get back to my desk next week.
BTW, I just want to say that it's great how helpful all you guys are here. I'm a relative newcomer to Houdini and I'm loving it, but also the community too. It's really friendly and inclusive which is always a good sign that a piece of software is spreading the love
Keep it up guys. I hope to be able to give something back soon once I figure out all this VEX stuff :wink:
Cheers
Andy
BTW, I just want to say that it's great how helpful all you guys are here. I'm a relative newcomer to Houdini and I'm loving it, but also the community too. It's really friendly and inclusive which is always a good sign that a piece of software is spreading the love
Keep it up guys. I hope to be able to give something back soon once I figure out all this VEX stuff :wink:
Cheers
Andy
Technical Discussion » COP Feedback?
- fxnut
- 19 posts
- Offline
Heh! Yeah, cool, that gets the look for sure. Thanks for taking the time to put that together for me, I appreciate it.
The only problem was that it took ages to calculate an image like the one below - too many frames I guess! So I'm still interested to know if it's possible to do the post-frame script thingy if anyone has any ideas.
Andy
The only problem was that it took ages to calculate an image like the one below - too many frames I guess! So I'm still interested to know if it's possible to do the post-frame script thingy if anyone has any ideas.
Andy
Technical Discussion » COP Feedback?
- fxnut
- 19 posts
- Offline
Yep! That looks like what I'm after. C'mon… spill the beans
Actually, not exactly. It looks like you've got like an “over” mode being applied there. I'm after an additive composite. Otherwise, it's spot on.
Actually, not exactly. It looks like you've got like an “over” mode being applied there. I'm after an additive composite. Otherwise, it's spot on.
Technical Discussion » COP Feedback?
- fxnut
- 19 posts
- Offline
Okay, I think I can get this to work by rendering to disc and reloading that rendered image for use in the next frame. (See attached image)
The only problem is that I don't think the File COP is noticing the new files that get rendered. I'm guessing that I need to effectively press the “Reload Sequence” button after every frame that's rendered so that it loads the newly rendered frame.
I noticed that the ROP File Output COP has a “Post-Frame” script event that I may be able to use to do this. Does anyone have any idea how I can use it to trigger the File COP to recognise the new image that's just been saved?
Thanks
Andy
The only problem is that I don't think the File COP is noticing the new files that get rendered. I'm guessing that I need to effectively press the “Reload Sequence” button after every frame that's rendered so that it loads the newly rendered frame.
I noticed that the ROP File Output COP has a “Post-Frame” script event that I may be able to use to do this. Does anyone have any idea how I can use it to trigger the File COP to recognise the new image that's just been saved?
Thanks
Andy
Technical Discussion » COP Feedback?
- fxnut
- 19 posts
- Offline
I think what I need is some way to store a frame in memory so that I can persist it between rendered frames. I've not had much success yet with saving the file to disc, but I'll let you guys know if I do get something that works.
Incidentally, the equation I wrote in my first post was wrong, I originally wrote this:
new image = previous image + 0.75 * input
when it should have been this instead:
new image = (0.75*previous image) + input
Doing it this way, the old images fade off automatically to black so you get left with this awesome streaking effect that trails off.
As far as I can see, TimeMachine COP (which sounds suspiciously like a reference to a Jean-Claude Van Damme movie :wink won't achieve this as it seems to just do the same as the TimeFilter COP but on a per-pixel basis. It's cool, but not what I'm after! Thanks for the suggestion though Jeff.
I'm hoping that it isn't necessary to load all the frames into memory at once - that's the whole point of using feedback - it's a two-image process and should be pretty fast. I just need to figure out how to implement it inside Houdini's way of working.
Andy
Incidentally, the equation I wrote in my first post was wrong, I originally wrote this:
new image = previous image + 0.75 * input
when it should have been this instead:
new image = (0.75*previous image) + input
Doing it this way, the old images fade off automatically to black so you get left with this awesome streaking effect that trails off.
As far as I can see, TimeMachine COP (which sounds suspiciously like a reference to a Jean-Claude Van Damme movie :wink won't achieve this as it seems to just do the same as the TimeFilter COP but on a per-pixel basis. It's cool, but not what I'm after! Thanks for the suggestion though Jeff.
I'm hoping that it isn't necessary to load all the frames into memory at once - that's the whole point of using feedback - it's a two-image process and should be pretty fast. I just need to figure out how to implement it inside Houdini's way of working.
Andy
Technical Discussion » COP Feedback?
- fxnut
- 19 posts
- Offline
Dark_Ego
It seems to me that if you are doing a series of images what you need to do is reload the previous image from the harddrive composie the new image and save.
Yep, that seems to be the only way to go as far as I can see.
Thanks for the other suggestions though. I tried the timefilter, but it only pulls in frames surrounding the current frame. I guess I could configure it to pull in all previous frames, but I reckon it'd be a little slow! Plus I'd need to put in my own filter and I'm not sure how to do that.
Thanks again for the help
Andy
Technical Discussion » COP Feedback?
- fxnut
- 19 posts
- Offline
Thanks. I'll check out timewarp.
Could you elaborate about how chops would work in conjunction with cops? Not sure how to do that!
Andy
Could you elaborate about how chops would work in conjunction with cops? Not sure how to do that!
Andy
Technical Discussion » COP Feedback?
- fxnut
- 19 posts
- Offline
Hi guys,
Does anyone know if it's possible to rig up a feedback loop inside a compositing network? I basically want it to do something like this:
new image = previous image + 0.75 * input
I'm trying to get that old additive video feedback effect that used to be so popular in the 70's!
Cheers
Andy
Does anyone know if it's possible to rig up a feedback loop inside a compositing network? I basically want it to do something like this:
new image = previous image + 0.75 * input
I'm trying to get that old additive video feedback effect that used to be so popular in the 70's!
Cheers
Andy
-
- Quick Links