As far as I know there is Guerilla games in Amsterdam.
And that other school in Utrecht, can't remember the name, but one of the users here (kgoosens) teaches there I think. You might want to get in touch with him directly, or contact this guy (I think he was demoing this tool at Siggraph this year):
http://forums.odforce.net/index.php?/topic/14711-procedural-environment-system-udk/ [forums.odforce.net]
good luck!
Found 247 posts.
Search results Show results as topic list.
Houdini Lounge » Work in Holland
- pclaes
- 257 posts
- Offline
Houdini Indie and Apprentice » brushed metal
- pclaes
- 257 posts
- Offline
brushed metal basically comes down to super tiny grooves that capture highlights as far as I understand.
Therefore if I had to start building a shader for that I would first of all define which kind of brushed metal pattern you want, the easiest being straight lines, then circular and then semicircles like the skin of a fish.
Whichever pattern you choose you will need to define a 0-1 region that you will be able to use to remap your values.
For a default grid, you can use uv coordinates. or use s and t. I would start by creating a single ramp with a fit function so I can start rendering and visually debugging the shader first.
Then I would multiply my s or t coordinate by a certain number (say 10), this would become the frequency of the grooves - effictively tiling the ramp. That multiplication makes your s coordinate go from 0 -> 10 and what you want is something that goes from 0 -> 1; 0 ->1 ; 0->1 ; 0->1 ;… so the output of the multiplication needs to go into a modulus function. Modulus one, will give you the fractional remainder of each integer.
From here on you really can either use a single fit function, two fit functions multiplied together (one going from 0->1, the other going from 1->0 over the s coordinate), a smooth function, two smooth functions, a ramp, a noise pattern, a power function,… And feed it into the color for debugging, feed it into a rotation transform to build a transformation matrix that you can apply to the normal (so you get bump mapping).
In the case of a circle you need to use the distance from the center point instead of an s or t coordinate. Your 0->1 pattern will be based on the distance to the center point (or a grid of points if you want tiling).
I would recommend to check out some renderman shaders - especially the ones that deal with line etching or there are most likely some brushed metal shaders already out there.
Also you will probably have to increase your shading rate on the object a bit to get all the fine shader detail to be computed.
Therefore if I had to start building a shader for that I would first of all define which kind of brushed metal pattern you want, the easiest being straight lines, then circular and then semicircles like the skin of a fish.
Whichever pattern you choose you will need to define a 0-1 region that you will be able to use to remap your values.
For a default grid, you can use uv coordinates. or use s and t. I would start by creating a single ramp with a fit function so I can start rendering and visually debugging the shader first.
Then I would multiply my s or t coordinate by a certain number (say 10), this would become the frequency of the grooves - effictively tiling the ramp. That multiplication makes your s coordinate go from 0 -> 10 and what you want is something that goes from 0 -> 1; 0 ->1 ; 0->1 ; 0->1 ;… so the output of the multiplication needs to go into a modulus function. Modulus one, will give you the fractional remainder of each integer.
From here on you really can either use a single fit function, two fit functions multiplied together (one going from 0->1, the other going from 1->0 over the s coordinate), a smooth function, two smooth functions, a ramp, a noise pattern, a power function,… And feed it into the color for debugging, feed it into a rotation transform to build a transformation matrix that you can apply to the normal (so you get bump mapping).
In the case of a circle you need to use the distance from the center point instead of an s or t coordinate. Your 0->1 pattern will be based on the distance to the center point (or a grid of points if you want tiling).
I would recommend to check out some renderman shaders - especially the ones that deal with line etching or there are most likely some brushed metal shaders already out there.
Also you will probably have to increase your shading rate on the object a bit to get all the fine shader detail to be computed.
Houdini Lounge » What's houdini's most powerful feature?
- pclaes
- 257 posts
- Offline
I would have to go with volumes (fluids, sdf, microsolvers, dops, pyro) and vops (speed, control, customizability, pointcloud and volume lookups, – kinda leads into shader building and rendering too).
HOM is pretty sweet too, but I don't tend to make use of it on a daily basis - it's more the glue that holds my tools together.
Also you might want to read this:
http://forums.cgsociety.org/showpost.php?p=7241540&postcount=17 [forums.cgsociety.org]
HOM is pretty sweet too, but I don't tend to make use of it on a daily basis - it's more the glue that holds my tools together.
Also you might want to read this:
http://forums.cgsociety.org/showpost.php?p=7241540&postcount=17 [forums.cgsociety.org]
Houdini Lounge » Houdini Tutorial Database
- pclaes
- 257 posts
- Offline
You could ask them to make this thread sticky or add it to their resources. It is a nice collection!
Houdini Lounge » Destruction &Fracture: Houdini OR Max+Volumebreaker&
- pclaes
- 257 posts
- Offline
in regards to the scattering density for the gluepieces sop:
If the density is too high it will take forever, if it is too low, it will sometime not scatter on some of the tiny pieces.
Therefore I ended up opening up that asset and looping through each piece to scatter at least one point on that piece, then merge that in with the other scatter. This allows you to lower the scatter density hugely and still have your pieces be connected.
If the density is too high it will take forever, if it is too low, it will sometime not scatter on some of the tiny pieces.
Therefore I ended up opening up that asset and looping through each piece to scatter at least one point on that piece, then merge that in with the other scatter. This allows you to lower the scatter density hugely and still have your pieces be connected.
Technical Discussion » LOD Mesher
- pclaes
- 257 posts
- Offline
+1
(at rendertime would be nice too!)
as an inbetween solution: You could partition your heavy particle sims into smaller boxes (cluster), then turn them into volumes, then combine them into a final mesh with the volumesurface sop (which can give you the adaptive detail you are looking for) – but this would be quite expensive.
(at rendertime would be nice too!)
as an inbetween solution: You could partition your heavy particle sims into smaller boxes (cluster), then turn them into volumes, then combine them into a final mesh with the volumesurface sop (which can give you the adaptive detail you are looking for) – but this would be quite expensive.
Houdini Lounge » Destruction &Fracture: Houdini OR Max+Volumebreaker&
- pclaes
- 257 posts
- Offline
The concept of volumetric fracturing is not new:
http://www.sidefx.com/index.php?option=com_content&task=view&id=1454&Itemid=68 [sidefx.com]
and look in that pdf I mention a couple of posts above.
There is no volumetric fracturing tool available from the shelf, but that does not mean you can't make one.
There are a lot of different ways to fracture volumetrically. The simplest is probably using boolean operations – this would work very similar like a cookie sop, but instead you use 2 volumes and a volume mix (or a volume vop with a volume sample as this is much more efficient when dealing with huge volumes as it only samples the section it needs to sample and it is multithreaded). This generally works better than a cookie sop as the cookie sop is prone to errors. You can use this recursively in a foreach and cut your volumes up in a fancy way.
– at this point as an output you have a bunch of fog volumes, which you can turn into sdfs, which you can directly use with the rbd solver. – but not with the bullet solver as bullet requires polygons. You can volumeconvert your sdf volumes, offset them from the surface (which is really necessary to make sure bullet sims don't explode because of intersecting geometry), polyreduce them further if necessary.
Other more complex volumetric fracturing models could deal with “growing” fracture patterns into a volume and using those to boolean against. This is similar to aggregation techniques. You could look into stress patterns to indicate how the fracture should grown into the volume.
Or if you don't want to go that far, you could use various noise functions. Or you can create some template points to get a base distribution of pieces for your fracture patterns similar to voronoi. But unlike voronoi, you are not restricted to planar “cuts” and you can also assign the same id to a bunch of points to grow from those points, this way you could create curved fracture patterns.
http://www.sidefx.com/index.php?option=com_content&task=view&id=1454&Itemid=68 [sidefx.com]
and look in that pdf I mention a couple of posts above.
There is no volumetric fracturing tool available from the shelf, but that does not mean you can't make one.
There are a lot of different ways to fracture volumetrically. The simplest is probably using boolean operations – this would work very similar like a cookie sop, but instead you use 2 volumes and a volume mix (or a volume vop with a volume sample as this is much more efficient when dealing with huge volumes as it only samples the section it needs to sample and it is multithreaded). This generally works better than a cookie sop as the cookie sop is prone to errors. You can use this recursively in a foreach and cut your volumes up in a fancy way.
– at this point as an output you have a bunch of fog volumes, which you can turn into sdfs, which you can directly use with the rbd solver. – but not with the bullet solver as bullet requires polygons. You can volumeconvert your sdf volumes, offset them from the surface (which is really necessary to make sure bullet sims don't explode because of intersecting geometry), polyreduce them further if necessary.
Other more complex volumetric fracturing models could deal with “growing” fracture patterns into a volume and using those to boolean against. This is similar to aggregation techniques. You could look into stress patterns to indicate how the fracture should grown into the volume.
Or if you don't want to go that far, you could use various noise functions. Or you can create some template points to get a base distribution of pieces for your fracture patterns similar to voronoi. But unlike voronoi, you are not restricted to planar “cuts” and you can also assign the same id to a bunch of points to grow from those points, this way you could create curved fracture patterns.
Houdini Lounge » Water cooling a pc is it worth it
- pclaes
- 257 posts
- Offline
I would not bother with it either. It can be fun to look into it all and get the best gear for your rig, but it becomes annoying when you move around/travel across continents. And I generally found that if I'm simming stuff that requires that much power, I should either do it on a farm or optimize my setups more.
Go with the above suggestion: big cooler and big fan and this will save you time, money and frustration - that way your time is spent on houdini rather than tweaking hardware. If you are into hardware and see this as a hobby, then that's your choice, but I would not recommend if your professional focus is on houdini.
Go with the above suggestion: big cooler and big fan and this will save you time, money and frustration - that way your time is spent on houdini rather than tweaking hardware. If you are into hardware and see this as a hobby, then that's your choice, but I would not recommend if your professional focus is on houdini.
Houdini Lounge » Destruction &Fracture: Houdini OR Max+Volumebreaker&
- pclaes
- 257 posts
- Offline
Here is another great pdf full of good info, this is more on volumes.
http://magnuswrenninge.com/content/pubs/ProductionVolumeRenderingSystems2011.pdf [magnuswrenninge.com]
The section I'm talking about in regards to volumetric fracturing is on page 70:
Chapter 5 - Cutting up models
That really is only the tip of the iceberg. There is so much more you can do with that.
http://magnuswrenninge.com/content/pubs/ProductionVolumeRenderingSystems2011.pdf [magnuswrenninge.com]
The section I'm talking about in regards to volumetric fracturing is on page 70:
Chapter 5 - Cutting up models
That really is only the tip of the iceberg. There is so much more you can do with that.
Houdini Lounge » Destruction &Fracture: Houdini OR Max+Volumebreaker&
- pclaes
- 257 posts
- Offline
Hey Manu, thanks for those links. It does look speedy and fast. but it's still all voronoi based and how is it to control and set up things like constraints?
I really like the ability to cut my constraints procedurally inside of a sopsolver based on whatever trigger patterns I design. I find I rather give up some speed if it means more control - most of the time I work on patterns and smaller sims during the day and the big sims go overnight.
DMM stands for Digital Molecular Matter:
http://en.wikipedia.org/wiki/Digital_Molecular_Matter [en.wikipedia.org]
http://www.pixelux.com/dmmPlugin.html [pixelux.com]
But actually that is an implementation of it. What I really meant is FEA, which means Finite Element Analysis.
Read this for a lot more info on destruction:
http://www.fxguide.com/featured/art-of-destruction-or-art-of-blowing-crap-up/ [fxguide.com]
I really like the ability to cut my constraints procedurally inside of a sopsolver based on whatever trigger patterns I design. I find I rather give up some speed if it means more control - most of the time I work on patterns and smaller sims during the day and the big sims go overnight.
DMM stands for Digital Molecular Matter:
http://en.wikipedia.org/wiki/Digital_Molecular_Matter [en.wikipedia.org]
http://www.pixelux.com/dmmPlugin.html [pixelux.com]
But actually that is an implementation of it. What I really meant is FEA, which means Finite Element Analysis.
Read this for a lot more info on destruction:
http://www.fxguide.com/featured/art-of-destruction-or-art-of-blowing-crap-up/ [fxguide.com]
Houdini Lounge » Destruction &Fracture: Houdini OR Max+Volumebreaker&
- pclaes
- 257 posts
- Offline
Also, slightly off-topic, but here are a few reasons that you may want to consider learning houdini more in general. (This was posted in regards to Maya, but is completely applicable to 3dsmax as well – I used 3dsmax 10 years ago and it has not changed much since imo ).
This was the guys question:
http://forums.cgsociety.org/showthread.php?f=86&t=1034527&page=1 [forums.cgsociety.org]
This was my reply to help inform them:
http://forums.cgsociety.org/showpost.php?p=7241540&postcount=17 [forums.cgsociety.org]
This was the guys question:
http://forums.cgsociety.org/showthread.php?f=86&t=1034527&page=1 [forums.cgsociety.org]
This was my reply to help inform them:
http://forums.cgsociety.org/showpost.php?p=7241540&postcount=17 [forums.cgsociety.org]
Houdini Lounge » Destruction &Fracture: Houdini OR Max+Volumebreaker&
- pclaes
- 257 posts
- Offline
Well, I have not used thinking particles. So I don't know what kind of fracturing possibilities it offers. Please elaborate (wouldn't want to boo you uninformed ). Any tests - or links you can share? And yes, the concavity can be annoying, but I think that is only a matter of time before it gets ironed out.
The only other big alternative I see for advanced fracturing which is currently not part of houdini is DMM.
I think one of the most important things is to have control over the fracture pattern. Whether it is wood, crystals, glass, metal, (re-enforced) concrete, rocks, sand… And this side has less to do with the fracture/rbd engine and more to do with procedural modeling.
– I don't really know how DMM actually deals with this. I'm guessing it is defined in pre-baked patterns/functions that influence the tetrahedron bonds. - Or perhaps users can define the breaking patterns themselves from… textures? volumes? functions?
Then I find that the secondary effects that are based on/triggered by the primary sim benefit from all the analyzation tools houdini has to offer.
trail -> velocity
chops -> acceleration
dops_data -> impacts/velocity
transformation matrices on points -> efficient storage and fast scrubbing as all your transformations can be applied on points, multithreaded through vops.
– also, Gerd, consider the industry you want to work in/use this for. Games and commercials will be more likely to use a system like TP (and max in general) - whereas large scale fracturing for feature will most likely require more custom, streamlined setups - which you can set up with Houdini, but it will take some rnd time.
The only other big alternative I see for advanced fracturing which is currently not part of houdini is DMM.
I think one of the most important things is to have control over the fracture pattern. Whether it is wood, crystals, glass, metal, (re-enforced) concrete, rocks, sand… And this side has less to do with the fracture/rbd engine and more to do with procedural modeling.
– I don't really know how DMM actually deals with this. I'm guessing it is defined in pre-baked patterns/functions that influence the tetrahedron bonds. - Or perhaps users can define the breaking patterns themselves from… textures? volumes? functions?
Then I find that the secondary effects that are based on/triggered by the primary sim benefit from all the analyzation tools houdini has to offer.
trail -> velocity
chops -> acceleration
dops_data -> impacts/velocity
transformation matrices on points -> efficient storage and fast scrubbing as all your transformations can be applied on points, multithreaded through vops.
– also, Gerd, consider the industry you want to work in/use this for. Games and commercials will be more likely to use a system like TP (and max in general) - whereas large scale fracturing for feature will most likely require more custom, streamlined setups - which you can set up with Houdini, but it will take some rnd time.
Houdini Lounge » Destruction &Fracture: Houdini OR Max+Volumebreaker&
- pclaes
- 257 posts
- Offline
If you want to do anything more complex than simple voronoi fracturing you should go with Houdini.
Volumetric fracturing is very powerful and can be set up with bullet and bullet glue constraints. You can achieve quite complex fracture patterns with a lot of control.
This will take time to learn and set up as you will be building custom setups and not pressing a button.
By understanding custom setups you can design your own fracture patterns, not just in the surface, but in the volume as well. You can create different representations of your rbd pieces, from polygonal, to volumetric, to points. Each representation can be used for different goals.
polygons -> bullet sim
volumes -> intersecting volumes can be sources for dust an debris.
points -> efficient way to store your rbd sim. – instance low detail or high detail polygonal pieces onto them at rendertime.
Now think about deforming rbd sims - like metal shards denting, tearing and rolling around. At this point Houdini is about the only program that can handle that. Most other softwares stop working properly with changing point counts.
Have fun learning!
Volumetric fracturing is very powerful and can be set up with bullet and bullet glue constraints. You can achieve quite complex fracture patterns with a lot of control.
This will take time to learn and set up as you will be building custom setups and not pressing a button.
By understanding custom setups you can design your own fracture patterns, not just in the surface, but in the volume as well. You can create different representations of your rbd pieces, from polygonal, to volumetric, to points. Each representation can be used for different goals.
polygons -> bullet sim
volumes -> intersecting volumes can be sources for dust an debris.
points -> efficient way to store your rbd sim. – instance low detail or high detail polygonal pieces onto them at rendertime.
Now think about deforming rbd sims - like metal shards denting, tearing and rolling around. At this point Houdini is about the only program that can handle that. Most other softwares stop working properly with changing point counts.
Have fun learning!
Houdini Indie and Apprentice » Creating Irregular Fracture Patterns
- pclaes
- 257 posts
- Offline
You probably want to apply a noise based on P rather than on Pt.
You can do this by turning on interior detail on your voronoi fractururd pieces (this is to make sure you have some extra points to deal with).
And then append a vopsop that adds anti-aliased noise to P.
Wire P in th pos of the ani-aliased noise, then add the output of the noise to P and wire it into the output P.
( I would recommend to simplify -> polyreduce your pieces (if you are using bullet) before simming. You can extract their transforms and apply the high res pieces for rendering afterwards.
You can do this by turning on interior detail on your voronoi fractururd pieces (this is to make sure you have some extra points to deal with).
And then append a vopsop that adds anti-aliased noise to P.
Wire P in th pos of the ani-aliased noise, then add the output of the noise to P and wire it into the output P.
( I would recommend to simplify -> polyreduce your pieces (if you are using bullet) before simming. You can extract their transforms and apply the high res pieces for rendering afterwards.
Houdini Indie and Apprentice » Question about volume mixing
- pclaes
- 257 posts
- Offline
From your reference it looks like you have one liquid (isosurface) that might need to blend shader/color wise.
Kinda like the liquid is blue when it enters the glass, and turns red after it has collided with the glass, or comes in contact with other red particles.
I would approach that with a flip sim (liquid), and simply attribute transfer a color from the bottom of the glass onto the particles insided of a sopsolver, combined with an attribute transfer to transfer color from a red particle to the next red particle.
– -those are the basics.
If you wanted to go for actual proper flames, then I would not really work with only red and blue, but a gradation. Give each particle a “fuel” value and when a particle is ignited (by that “red” trigger), the fuel starts to reduce (vopsop in sopsolver), and it also starts to emit into a pyro volume (you might want to emit only fuel and emit temperature at the bottom of the glass to ignite the pyro). Then finally, when the particle's fuel is zero, you can remove it from the sim (blast it in the sopsolver).
Or… you could do everything in levelset (fluids), but in my opinion that might be harder to make sure the fire stays in the glass. If you are pooring fuel into a hot glass directly, most likely your pyro will ignite upwards and ignite the pooring stream above the glass.
By going down the particle route, you can better control when the state changes from liquid to fluid – and how fast and where exactly.
Should be a fun project!
If you are interested in digging deeper and figuring this stuff out on the microsolver level, have a look at Ahmad's work here:
http://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc11/Ahmad/index.html [nccastaff.bournemouth.ac.uk]
Also you might want to search for that on odforce, he might have posted some hip files on that.
Kinda like the liquid is blue when it enters the glass, and turns red after it has collided with the glass, or comes in contact with other red particles.
I would approach that with a flip sim (liquid), and simply attribute transfer a color from the bottom of the glass onto the particles insided of a sopsolver, combined with an attribute transfer to transfer color from a red particle to the next red particle.
– -those are the basics.
If you wanted to go for actual proper flames, then I would not really work with only red and blue, but a gradation. Give each particle a “fuel” value and when a particle is ignited (by that “red” trigger), the fuel starts to reduce (vopsop in sopsolver), and it also starts to emit into a pyro volume (you might want to emit only fuel and emit temperature at the bottom of the glass to ignite the pyro). Then finally, when the particle's fuel is zero, you can remove it from the sim (blast it in the sopsolver).
Or… you could do everything in levelset (fluids), but in my opinion that might be harder to make sure the fire stays in the glass. If you are pooring fuel into a hot glass directly, most likely your pyro will ignite upwards and ignite the pooring stream above the glass.
By going down the particle route, you can better control when the state changes from liquid to fluid – and how fast and where exactly.
Should be a fun project!
If you are interested in digging deeper and figuring this stuff out on the microsolver level, have a look at Ahmad's work here:
http://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc11/Ahmad/index.html [nccastaff.bournemouth.ac.uk]
Also you might want to search for that on odforce, he might have posted some hip files on that.
Houdini Indie and Apprentice » how to get shadow points
- pclaes
- 257 posts
- Offline
If you want what is shown into that video, you could scatter points on your object, then add a normal to them in the direction you wish to project them and use the ray sop to project them onto a grid.
This will give you a “shadow” – a shadow is nothing more than a projection. The interesting thing is the projection normal, read up on the ray sop and check out some examples for it.
This will give you a “shadow” – a shadow is nothing more than a projection. The interesting thing is the projection normal, read up on the ray sop and check out some examples for it.
Technical Discussion » RFE: Add groups via VOPs
- pclaes
- 257 posts
- Offline
In vops I tend to use the create_point_group and add_point_to_group (inside an if statement) a lot, especially when the logic is more complex than the evaluation of a single attribute.
*) I also then often use this resulting group as a blast group in a blast sop.
*) If it is only a single attribute I need to check against for blasting I tend to go with the @attributename==1 in the blast sop.
Both these approaches are faster than the delete sop.
There used to be an error when the group you created in vops was named “group”, not sure if it is still there.
*) I also then often use this resulting group as a blast group in a blast sop.
*) If it is only a single attribute I need to check against for blasting I tend to go with the @attributename==1 in the blast sop.
Both these approaches are faster than the delete sop.
There used to be an error when the group you created in vops was named “group”, not sure if it is still there.
Technical Discussion » how can i get the parametric value of a curve
- pclaes
- 257 posts
- Offline
I like to do that by uvs, I generally use those uv's to drive other stuff and when you resample your curve they interpolate.
curve
-> append uvtexture, set it to rowx&columns
-> attribbpromot uv's from vertex to point
-> append sort sop, set expression to $MAPU
curve
-> append uvtexture, set it to rowx&columns
-> attribbpromot uv's from vertex to point
-> append sort sop, set expression to $MAPU
Technical Discussion » delayed load and PSCALE
- pclaes
- 257 posts
- Offline
mzigaibbareya
No,
I think I know why it's not working for you, you are using dso for linux on windows…
I will try to recompile it to dll for you.
I don't think that it needs to be a dll, I think a DSO for windows would work as well.
I am just guessing.
DSO -> Dynamic Shared Object -> linux
Dll -> Dynamic linked library -> windows
If you do want to inform yourself better, have a read through these posts (and the sources referenced in those posts.):
http://www.peterclaes.be/blog/?p=67 [peterclaes.be]
http://www.peterclaes.be/blog/?p=100 [peterclaes.be]
And if you then wanted to have a go at it as well you could try compiling yourself:
http://www.peterclaes.be/blog/?p=151 [peterclaes.be]
Houdini Indie and Apprentice » What is the method to do this
- pclaes
- 257 posts
- Offline
You want to take a look at spherical coordinates:
http://en.wikipedia.org/wiki/Spherical_coordinate_system [en.wikipedia.org]
especially the part where you have the representation as cartesian coordinates:
x= …
y=…
z=…
rebuild those in vops or using expressions in sops.
http://en.wikipedia.org/wiki/Spherical_coordinate_system [en.wikipedia.org]
especially the part where you have the representation as cartesian coordinates:
x= …
y=…
z=…
rebuild those in vops or using expressions in sops.
-
- Quick Links