Hi everyone,
I have a wall geometry that has been fractured and packed. Each points in the packed object is assigned a “decimation” value between 0 and 1. Lower values are at the bottom of the wall and higher at the top.
Now, I'm trying, in a DopNet, to make the pieces at the bottom of my wall gradually disapear. The upper pieces, not having any of the lower pieces support anymore, would fall by gravity before disapearing as well.
I want to use my “decimation” attribute to trigger when pieces will disapear.
1) How can I use a point attribute from a packed object in a DopNet?
2) How can I use the “delete” dop node to delete pieces of an RBD object. I can only seem to be able to delete the whole object at a given frame and not individual pieces.
Thx!
C
Found 19 posts.
Search results Show results as topic list.
Technical Discussion » Using point attributes in a DopNet...
- cs_pix
- 23 posts
- Offline
Technical Discussion » Single + Multi node inputs...
- cs_pix
- 23 posts
- Offline
Hi,
Can we create a digital asset that uses a single input 0 and multiple inputs after?
I've seen this for some nodes inside Houdini although I can’t find them right now. But I made a Photoshop montage of what I would like to do. The first input on the left is the mandatory one and all others are using a bar like the right part of the input.
Possible to do currently?
Thx!
Christian
Can we create a digital asset that uses a single input 0 and multiple inputs after?
I've seen this for some nodes inside Houdini although I can’t find them right now. But I made a Photoshop montage of what I would like to do. The first input on the left is the mandatory one and all others are using a bar like the right part of the input.
Possible to do currently?
Thx!
Christian
Edited by cs_pix - May 6, 2019 14:37:46
Technical Discussion » Programaticaly setting values to volume names for Heightfields
- cs_pix
- 23 posts
- Offline
Hi everyone,
I have a list of string that represents layers.Because these are in an array, they have an index from 0 to 3.
Then, I have some files on disk:
000_000_000.png
000_000_001.png
000_000_002.png
000_000_003.png
Their name is in this format TILEX_TILEY_LAYER.
Now I want to load all of these images as volumes on a Heightfield. I can programaticaly create all the volumes by using the Layer Copy node but in my Volume Wrangle, I want to loop the layer list and set the values of these images into their corresponding volume. For example:
The last line is where I'm blocked. I would like to set the value using the layer name and not the “@” symbol. I would use the setpointattrib() function in a point wrangle but how can I do this in a volume wrangle?
Thx!
C
I have a list of string that represents layers.
["snow", "dirt", "grass", "rock"]
Then, I have some files on disk:
000_000_000.png
000_000_001.png
000_000_002.png
000_000_003.png
Their name is in this format TILEX_TILEY_LAYER.
Now I want to load all of these images as volumes on a Heightfield. I can programaticaly create all the volumes by using the Layer Copy node but in my Volume Wrangle, I want to loop the layer list and set the values of these images into their corresponding volume. For example:
for (int i = 0; i < len(layer_list); i++) { string layer_id = sprintf("%03d", i); string layer_name = layer_list[i]; string image = "000_000_" + layer_id + ".png"; vector sample = rawcolormap(image, u, v); @layer_name = sample.x; // doesnt work because "layer_name" is a variable, not a volume }
The last line is where I'm blocked. I would like to set the value using the layer name and not the “@” symbol. I would use the setpointattrib() function in a point wrangle but how can I do this in a volume wrangle?
Thx!
C
Edited by cs_pix - Dec. 12, 2018 17:13:17
Technical Discussion » Is it possible to rotate a heightfield output?
- cs_pix
- 23 posts
- Offline
I used this code in a volume wrangle:
1: Get the current position of the volume voxel
2: Because the center of the volume might not be at (0,0,0) we offset the voxel pos by the center position
3: Create a new vector position by rotating X to minus Z. (This is +90 degree rotation. Use (0,0,1) for -90)
4: Create a new vector called sample pos. by added the center offset.
5: Sample the volume
6: Assign height the sample value
This works only on square HF
Cheers!
vector current_pos = @P; current_pos -= @center; vector rot_pos = rotate_x_to(set(0,0,-1), current_pos); vector sample_pos = set(rot_pos.x, 0, rot_pos.z) + @center; float sample = volumesample(0, 0, sample_pos); @height = sample;
1: Get the current position of the volume voxel
2: Because the center of the volume might not be at (0,0,0) we offset the voxel pos by the center position
3: Create a new vector position by rotating X to minus Z. (This is +90 degree rotation. Use (0,0,1) for -90)
4: Create a new vector called sample pos. by added the center offset.
5: Sample the volume
6: Assign height the sample value
This works only on square HF
Cheers!
Edited by cs_pix - Nov. 9, 2018 17:56:49
Technical Discussion » Is it possible to rotate a heightfield output?
- cs_pix
- 23 posts
- Offline
Yep, having the same issues. I will try to write something that rotates all layer info based on their index but it would be cool if HF xform would work for this…
Technical Discussion » OpenCL Voxel Space to World Space position?
- cs_pix
- 23 posts
- Offline
Hi everyone,
I'm trying to get the world space position of a voxel in a heightfield volume using OpenCL. There is a option in the bindings to get “Volume Transform to World”, which returns a float16 OpenCL matrix but I don't understand how to extract a voxel position from this.
My guess is that I have to use gdix and gdiz and multiply them with the matrix but the matrix itself I don't understand.
height_xformtoworld.hi.hi = 0, 0, 0, 4?
height_xformtoworld.hi.lo = 0, ~15?, 0, 0
height_xformtoworld.lo.hi = ~15?, 0, 0, 0
height_xformtoworld.lo.lo = 0, 0, ~15?, 0
There is this weird approx 15 value in there. (I figure it out by dividing the matrix value by 15 to get 1 showing on the heightfield mask). These values are also out of place. I would expect matrix.lo.lo to return the translation part of the matrix but…
Any help to figure this out would be appreciated.
Thx!
Christian
I'm trying to get the world space position of a voxel in a heightfield volume using OpenCL. There is a option in the bindings to get “Volume Transform to World”, which returns a float16 OpenCL matrix but I don't understand how to extract a voxel position from this.
My guess is that I have to use gdix and gdiz and multiply them with the matrix but the matrix itself I don't understand.
height_xformtoworld.hi.hi = 0, 0, 0, 4?
height_xformtoworld.hi.lo = 0, ~15?, 0, 0
height_xformtoworld.lo.hi = ~15?, 0, 0, 0
height_xformtoworld.lo.lo = 0, 0, ~15?, 0
There is this weird approx 15 value in there. (I figure it out by dividing the matrix value by 15 to get 1 showing on the heightfield mask). These values are also out of place. I would expect matrix.lo.lo to return the translation part of the matrix but…
Any help to figure this out would be appreciated.
Thx!
Christian
Technical Discussion » Free Heightfield Ambient Occlusion Asset using OpenCL
- cs_pix
- 23 posts
- Offline
Hi everyone,
I've been reading this forum for a while now and even asked a few questions. The response from the community is always great so I figured it was time for me to give back a little. We have some very talented people at Seasun Games and part of our pipeline involves using Houdini 16+ heightfields quite a lot. Since moving our tools from being grid base to using volumes, there is one computed datasets that we wanted to improve and it is Ambient Occlusion on the Heightfield.
In short, this dataset allows us to modulate the distribution of plants or rocks on the terrain. It was very slow to compute using traditional VEX so I set out to create an OpenCL version and I'm sharing the result today.
I have 2 main reason for this release. First, to give back to the community that I consult often and second, to share the code and the knowledge of using OpenCL in Houdini. It's not an easy language but the benefits are sometimes extraordinary.
Also, maybe some OpenCL pro on this forum will find ways of optimizing it or it's up to anyone to add features and improve the asset. In any cases, its there for you to download. The SOP contains a branch that uses OpenCL and one that uses standard VEX for comparaison.
You can download the package below
A big thanks goes out to Robert Osborne for helping me figuring this stuff out:
https://www.sidefx.com/profile/skara/ [www.sidefx.com]
I hope you find it useful.
Cheers!
Christian Sirois
Technical Director
Seasun Games
I've been reading this forum for a while now and even asked a few questions. The response from the community is always great so I figured it was time for me to give back a little. We have some very talented people at Seasun Games and part of our pipeline involves using Houdini 16+ heightfields quite a lot. Since moving our tools from being grid base to using volumes, there is one computed datasets that we wanted to improve and it is Ambient Occlusion on the Heightfield.
In short, this dataset allows us to modulate the distribution of plants or rocks on the terrain. It was very slow to compute using traditional VEX so I set out to create an OpenCL version and I'm sharing the result today.
I have 2 main reason for this release. First, to give back to the community that I consult often and second, to share the code and the knowledge of using OpenCL in Houdini. It's not an easy language but the benefits are sometimes extraordinary.
Also, maybe some OpenCL pro on this forum will find ways of optimizing it or it's up to anyone to add features and improve the asset. In any cases, its there for you to download. The SOP contains a branch that uses OpenCL and one that uses standard VEX for comparaison.
You can download the package below
A big thanks goes out to Robert Osborne for helping me figuring this stuff out:
https://www.sidefx.com/profile/skara/ [www.sidefx.com]
I hope you find it useful.
Cheers!
Christian Sirois
Technical Director
Seasun Games
Edited by cs_pix - March 1, 2018 11:50:04
Technical Discussion » 2 things to improve?
- cs_pix
- 23 posts
- Offline
Technical Discussion » 2 things to improve?
- cs_pix
- 23 posts
- Offline
Hi,
For us, Houdini coders out there, I would like to see some improvement to the code editing window (Alt-E) and the Houdini Console.
First, add some useful features to the code editing windows. Like:
- Support docking it like any other Houdini pane.
- Support creating multiple tabs.
- Add the Ctrl-Enter shortcut so we dont have to press apply every time.
- Improve auto-complete so it can list the needed arguments when typing a function.
- The Houdini VEX Editor by Paul Winex is a very good example but it's not supported a lot these days. I miss it much.
- Add fonts support.
Second, the Houdini Console is “fine” but a Houdini Console Pane is needed.
- It could have more options like a search…
- Double click on an error would go to the code line that failed.
- Would not show up as a separeted window in MS Windows.
Big new features are great but sometimes it's the little things that makes such a big difference.
Thx.
Christian
For us, Houdini coders out there, I would like to see some improvement to the code editing window (Alt-E) and the Houdini Console.
First, add some useful features to the code editing windows. Like:
- Support docking it like any other Houdini pane.
- Support creating multiple tabs.
- Add the Ctrl-Enter shortcut so we dont have to press apply every time.
- Improve auto-complete so it can list the needed arguments when typing a function.
- The Houdini VEX Editor by Paul Winex is a very good example but it's not supported a lot these days. I miss it much.
- Add fonts support.
Second, the Houdini Console is “fine” but a Houdini Console Pane is needed.
- It could have more options like a search…
- Double click on an error would go to the code line that failed.
- Would not show up as a separeted window in MS Windows.
Big new features are great but sometimes it's the little things that makes such a big difference.
Thx.
Christian
Work in Progress » Volume Convolution: VEX & C++ vs OpenCL
- cs_pix
- 23 posts
- Offline
animatrix3d
Things like point clouds, ray intersections, matrices are not available out of the box.
Hi,
Yeah that's what I'm faced with right now. I want to compute ambient occlusion on a landscape geometry but can't figure out how to find if a ray, out from a point, intersects with some polygon on the geometry.
Do you have any good reference for this anywhere? All the code I found so far is about raytracing a scene in OpenCL.
I have to vectors for origin and direction but how do I check if they intersect with a polygon (or Volume) on the geometry?
Thx.
Christian
Edited by cs_pix - Jan. 18, 2018 19:25:20
Houdini Engine for Unreal » Can you point instances at already existing Unreal Assets?
- cs_pix
- 23 posts
- Offline
Thx DASD,
Turns out I didnt't need the pack node and it was breaking things (most probably I don't know how to use it). The Copy Reference worked perfectly.
Cheers!
C
Turns out I didnt't need the pack node and it was breaking things (most probably I don't know how to use it). The Copy Reference worked perfectly.
Cheers!
C
Houdini Engine for Unreal » Can you point instances at already existing Unreal Assets?
- cs_pix
- 23 posts
- Offline
Hi,
Does any one has an example HDA they could share on how to instance object into Unreal from Houdini?
The documentation here : http://www.sidefx.com/docs/unreal/_instancing.html [www.sidefx.com]
It refers to using packed primitives but I still can't figure out how it connects to Unreal.
I have an attribute on my points called unreal_instance but what path should I give it? /Content/… or Content/… ???
Is it case sensitive? Do I need to use the Transfer Attributes parameter on the Pack node at all?
Any info or an actual HDA that works would be useful.
Thx!
Christian
Does any one has an example HDA they could share on how to instance object into Unreal from Houdini?
The documentation here : http://www.sidefx.com/docs/unreal/_instancing.html [www.sidefx.com]
It refers to using packed primitives but I still can't figure out how it connects to Unreal.
I have an attribute on my points called unreal_instance but what path should I give it? /Content/… or Content/… ???
Is it case sensitive? Do I need to use the Transfer Attributes parameter on the Pack node at all?
Any info or an actual HDA that works would be useful.
Thx!
Christian
Houdini Engine API » Please explain Houdini Engine and DCC plugins interaction...
- cs_pix
- 23 posts
- Offline
Houdini Engine API » Please explain Houdini Engine and DCC plugins interaction...
- cs_pix
- 23 posts
- Offline
Hi,
1) When I install Houdini, the installer is asking me to install Unreal, Unity or Maya plugins. Once done, if I want to re-install a plugin or add one to a DCC I didn't do the first time, I need to install Houdini again.
2) If I install Houdini Engine using the installer, I don't get the choice to install the plugins for DCCs. But inside the install folder of HE, there is many files about that DCCs. For example: ..\Houdini Engine 16.5.268\engine\unreal.
What is the interaction between Houdini, Houdini Engine and the plugins???
I'm asking because I want some of our artist to use the Maya plugin and Houdini Engine. I don't want them to install Houdini at all. Actually, I would like them to not even install Houdini Engine but just have it deployed with their other tools. The Licence Admin could be installed silently.
Am I making myself clear enough? Also…
Why is Houdini asking to install plugins in a separate dialog. Could it be in the list with Main Application, Comercial Server, etc???
Could we have standalone installer for Maya, Unity and Unreal plugins?
How can I setup an artist Maya environment to enable Maya Houdini Engine pluging with Houdini Engine and not having him to install Houdini.
Clarification of these would be greatly helpful.
Christian
1) When I install Houdini, the installer is asking me to install Unreal, Unity or Maya plugins. Once done, if I want to re-install a plugin or add one to a DCC I didn't do the first time, I need to install Houdini again.
2) If I install Houdini Engine using the installer, I don't get the choice to install the plugins for DCCs. But inside the install folder of HE, there is many files about that DCCs. For example: ..\Houdini Engine 16.5.268\engine\unreal.
What is the interaction between Houdini, Houdini Engine and the plugins???
I'm asking because I want some of our artist to use the Maya plugin and Houdini Engine. I don't want them to install Houdini at all. Actually, I would like them to not even install Houdini Engine but just have it deployed with their other tools. The Licence Admin could be installed silently.
Am I making myself clear enough? Also…
Why is Houdini asking to install plugins in a separate dialog. Could it be in the list with Main Application, Comercial Server, etc???
Could we have standalone installer for Maya, Unity and Unreal plugins?
How can I setup an artist Maya environment to enable Maya Houdini Engine pluging with Houdini Engine and not having him to install Houdini.
Clarification of these would be greatly helpful.
Christian
Technical Discussion » Changing the default preset location...
- cs_pix
- 23 posts
- Offline
Hi,
Our houdini.env file is setup in a way that we extend the default Houdini install folder to a second location.
This means that we can save presets into $Houdini_user_pref_dir but also the drop down list shows that extra location. Namely “Rjx4/tools/dcc/houdini”.
The problem is when saving a preset, the default location points to $Houdini_user_pref_dir and I would like it to point to “Rjx4/tools/dcc/houdini”.
I've checked if Houdini stores this setting somewhere but didnt find it. There is also no environment variable that seems to be connected to this.
Am I missing something?
Thx!
Christian Sirois
Our houdini.env file is setup in a way that we extend the default Houdini install folder to a second location.
This means that we can save presets into $Houdini_user_pref_dir but also the drop down list shows that extra location. Namely “Rjx4/tools/dcc/houdini”.
The problem is when saving a preset, the default location points to $Houdini_user_pref_dir and I would like it to point to “Rjx4/tools/dcc/houdini”.
I've checked if Houdini stores this setting somewhere but didnt find it. There is also no environment variable that seems to be connected to this.
Am I missing something?
Thx!
Christian Sirois
Technical Discussion » Changing the default preset location...
- cs_pix
- 23 posts
- Offline
Hi,
Our houdini.env file is setup in a way that we extend the default Houdini install folder to a second location.
This means that we can save presets into $Houdini_user_pref_dir but also the drop down list shows that extra location. Namely “Rjx4/tools/dcc/houdini”.
The problem is when saving a preset, the default location points to $Houdini_user_pref_dir and I would like it to point to “Rjx4/tools/dcc/houdini”.
I've checked if Houdini stores this setting somewhere but didnt find it. There is also no environment variable that seems to be connected to this.
Am I missing something?
Thx!
Christian Sirois
Our houdini.env file is setup in a way that we extend the default Houdini install folder to a second location.
This means that we can save presets into $Houdini_user_pref_dir but also the drop down list shows that extra location. Namely “Rjx4/tools/dcc/houdini”.
The problem is when saving a preset, the default location points to $Houdini_user_pref_dir and I would like it to point to “Rjx4/tools/dcc/houdini”.
I've checked if Houdini stores this setting somewhere but didnt find it. There is also no environment variable that seems to be connected to this.
Am I missing something?
Thx!
Christian Sirois
Technical Discussion » Compiling issues with Houdini 15.5 related to platform SDK.
- cs_pix
- 23 posts
- Offline
Hi,
We have a new intern at work and he's making a new file loader for us. He's trying to compile some example plugin from Houdini's SDK but there are error stating the platform SDK is missing or something.
Can someone list all the requirements you need to compile HDK stuff?
Platform SDK? Where do we get it?
Need to setup environment var?
Anything else?
I'm a script type of guy so the compiling errors are beyond me.
Thx!
Christian
We have a new intern at work and he's making a new file loader for us. He's trying to compile some example plugin from Houdini's SDK but there are error stating the platform SDK is missing or something.
Can someone list all the requirements you need to compile HDK stuff?
Platform SDK? Where do we get it?
Need to setup environment var?
Anything else?
I'm a script type of guy so the compiling errors are beyond me.
Thx!
Christian
Technical Discussion » Terrain Heightfield Masks flatten...
- cs_pix
- 23 posts
- Offline
patar
like this?
Wow this is great. Thx a lot. Sorry for the late response…
Thank again!
Christian
Technical Discussion » Terrain Heightfield Masks flatten...
- cs_pix
- 23 posts
- Offline
Hi,
I'm using the new terrain heightfields operators and I want to flatten the terrain where I want to place buildings. I use the Mask by Object operator to mask to location where buildings will be placed.
The effect I try to acheive is the every contiguous patch of red (mask) on the terrain would be flattened using it's local center.
I tried using a for loop to loop on the primitives in the input Mask by Object but then I can't get the average height of each masked out sections in a voxel.
How would I go about flattening each of my masked out areas by using their local average?
Thx!
Christian
I'm using the new terrain heightfields operators and I want to flatten the terrain where I want to place buildings. I use the Mask by Object operator to mask to location where buildings will be placed.
The effect I try to acheive is the every contiguous patch of red (mask) on the terrain would be flattened using it's local center.
I tried using a for loop to loop on the primitives in the input Mask by Object but then I can't get the average height of each masked out sections in a voxel.
How would I go about flattening each of my masked out areas by using their local average?
Thx!
Christian
-
- Quick Links