Jet AfterBurner Effect

   11500   5   3
User Avatar
Member
3 posts
Joined: Sept. 2014
Offline
hello I'm very new to houdini and I'm trying to create a jet after burner effect similar to this video… https://vimeo.com/36661653 [vimeo.com] . the author of the video released his .hip file and I had a look at it. I noticed that houdini has changed alot from when he created the video. because he is using the old popnet and also he uses a node called vopsop which should be the equivalent to attribute vop now I think. his workflow is based on emitting particles and then using the copy to turn them to metalballs and then using an isooffset to turn them to a a volume after that I'm not sure how he renders the scene and how to get passes from render in houdini. also I've had a few pitfalls like I cant get the particles to collide with an object(in houdini 12 it was done differently). I also havent fully grasped the use of the vopsop (or attributeVop). coming from Maya its hard to get used to houdini. If anyone would be kind enough to guide me while I create this effect I would greatly appreciate it
User Avatar
Staff
2540 posts
Joined: July 2005
Offline
How much has changed since H12…

I completely reworked the file with modern methods.

All illumination is via emission as it should be. No materials looping through lights. Both the flame and sparks are light emitters. See the volume and geometry light setup from shelf in the example file.

Used DOP networks in SOPs to replicate the old workflows for you with notes.

Replaced the objects with new objects to get the latest parameters.
Replaced the Mantra ROP with a new version as many parameters have changed. Biggest change for volumes is Volume Quality workflow now.

No look dev done to the file at all. It is raw and up to you to tweak to improve the look.

This is a decent file for anyone wanting to see how to move old POP workflows over to DOPs in H15 and beyond.

Attachments:
prelim_test_115.jpg (273.6 KB)
Thrusters_Test_Odforce_vH15.hip (3.2 MB)

There's at least one school like the old school!
User Avatar
Member
51 posts
Joined: Feb. 2013
Offline
Jeff, that is outstanding support!
Great to see such things happening!
User Avatar
Member
3 posts
Joined: Sept. 2014
Offline
I checked the file… Thanks but there are still a few things i do not understand. straight of the bat; how does your volume(both vdb and isooffset) look very dense and beautiful. mine always looks wierd and has striations i the center where its supposed to be empty. another thing is why is there a volume at the start and what is the dopnet up there. Im not sure how you used the iso offset with “DOPNET” to create an emission. for the sparks I'm lost from the start, you started with and object merge I don't know what that is(but by the looks of it it it just merges objects but and you've used it to import a model from the volume node) and not too sure what instancing is as well if you could explain the sparks further that would be nice. you also have a dopnet here (i know this something to do with simulations but I dont know what the node itself will do if i type create it by itself). atribute Wrangle and attribute sop not sure whats going on in there(you said something about calculating te size of lines, which lines and for what reason?). Sorry for all the questions just tryin to get my head around houdini.
User Avatar
Staff
2540 posts
Joined: July 2005
Offline
Brian Orora
how does your volume(both vdb and isooffset) look very dense and beautiful. mine always looks wierd and has striations in the center where its supposed to be empty.
It's all in the volume shader. You can take any volume extracted from a Pyro simulation and render it with the right shader settings. It is all namespace as well. You can use any field by name extracted from your simulation in SOPs geometry network in to the various Pyro shader volume name parameters. The defaults usually work well.

I tend to apply the new Pyro shader in H15 to all volumes that I wish to render.

It allows me to control the density of the volumes through mantra via a fit range feeding in to a ramp. Then there is an overall density parameter that globally scales the density.

The Pyro shader has support for two different components: Emissive component (usually fire element) and the Opacity component (Smoke controls).

In the case of the blue flame, it is entirely emissive. It casts light and is bright. Fire elements are emissive. It doesn't make sense to illuminate a bright fire element as it will offer no difference what so ever. Emissive elements do not show up in the Alpha channel. They are not geometry. There is no opacity culling computed on emissive elements either making for faster renders.

Smoke is disabled by setting the contribution to 0 on the first tab of the Pyro shader.

As for the weird striations, please make sure that you set on the Object containing the volumes to render, that the Volume filter is set to Gaussian and the volume filter width set to 1.2. This is a good setting when the volume you wish to render is of a lower resolution.

You can Middle Mouse Button (MMB) on any Geometry SOP node and see it's contents. To see the resolution of the volumes at any given frame, just MMB on any SOP geometry node to query it's contents and look at the volume entries and see the resolution from there. If your render resolution is 1920 x 1080 and you wish to render a volume of a resolution of 200x200x200 taking up say half the plate, use the Gaussian filter. Box filter makes sense if the volume you are rendering as a density that is smaller than a pixel in the final rendered plate.

The Gaussian filter should remove many of the artefacts that you are seeing. Striations and aliasing are good indicators that you may have a wrong choice in the volume filter.

why is there a volume at the start and what is the dopnet up there.
The volume at the start is the end result of taking the particle simulation, copying meatballs to the points and then converting to a volume and rendering that volume. The first frame has points present as the source emission, therefore meatballs are copied, converted to volumes and rendered as such. You can march the Display flag from the top to the bottom of the SOP geometry chain and see what each node is doing in the viewport.


The DOP SOP geometry node is a network containing DOP simulation nodes. In this case it is taking the POP Network and porting it over to the new POPs inside our DOP simulation framework. This is where the particle simulation is taking place.

Stepping back a bit, you are probably familiar with object level DOP networks that the majority of the shelf tools build. You can also construct DOP networks inside SOP Geometry networks. The same thing really. Just a different parent context to work in.

There are some conveniences to setting up POP type DOP simulation networks in the actual SOP geometry network. For one thing, you can wire in various geometry SOPs in to the four inputs. Many of the POP type DOP micro-solvers can source in geometry from either of the four inputs to the top level DOP SOP solver geometry node.

Study the Source POP DOP and notice that the first Source tab is referencing the first input to the parent node. This is how you feed in the source points in to the simulation.

Im not sure how you used the iso offset with “DOPNET” to create an emission.

The Iso Offset SOP can construct a volume from an enclosed solid manifold water-tight object (they all mean the same thing). Once the density volume is created, you can use all kinds of tools on the volumes.

It is very common to scatter points on surfaces. In Houdini you can also scatter points in to volumes. The density of the incoming volume determines the probability of a scatter point being generated. So where there is density, you get scatter points. This is a nice method to generate a solid cloud of points to then feed in to a particle system as birth points.

Welcome to Houdini! Volumes are awesome and definitely worth the time to investigate and use.

for the sparks I'm lost from the start, you started with and object merge I don't know what that is(but by the looks of it it it just merges objects but and you've used it to import a model from the volume node) and not too sure what instancing is as well if you could explain the sparks further that would be nice.
At /obj Object level. Yes the display of the spark object is off. This object is not being rendered directly.

I added from the Camera and Light shelf, the Geometry Light while the spark object was selected. This adds a new light set up to render the spark geometry as emissive light generators. Which they are. The shelf tool then turns the display of the original geometry off.

You have to enable “Render Light Geometry” to actually see the emissive geometry but it will actually “look” like a glowing emissive object in your scene. Nice.

As well, using Lights to render emissive geometry helps in trying to mitigate noise in the render plus you get the option to generate per light image planes along with your final colour plate using the Mantra ROP Output Driver Extra Image Planes options.

Next up is the Object Merge SOP Geometry operator. This is one of the four key operators to mastering Houdini SOPs. It is key because it allows us to reference any geometry anywhere in the current Houdini session and do work on that import. The key reason for this is that the volume object is set up to render as a volume with a Volume Light. The spark geometry is rendered as actual geometry via a Geometry Light. It is convenient to borrow the emission volume to also birth the sparks as well. That's why the object merge SOP.

As for instancing, there are a few ways to do that. In this case, I chose to take a tube and pack it. Once packed, it is now considered a deferred render primitive. Copying this packed primitive to the particles is a first class instance workflow. The tube in this case is defined in memory only once then referred by the points and passed on to the graphics card. Same for mantra. The rendering actually is handled on the graphics card. Houdini has no idea what geometry is on those points. The points contains a string reference attribute to the packed tube geometry in memory (which can also saved to the hard drive and referenced from there if you wish).

That is instancing via the Copy SOP using a packed primitive in to the left input.

you also have a dopnet here (i know this something to do with simulations but I dont know what the node itself will do if i type create it by itself).
The second DOP network SOP geometry node in the sparks object is used to run another POP particle simulation. This time using the same emission volume as the first POP simulation but with far fewer points emitted and they travel further before dying.

Not my set-up. I just copied the settings from the old POP network in to the new DOP network.

atribute Wrangle and attribute sop not sure whats going on in there(you said something about calculating te size of lines, which lines and for what reason?).
The Attribute Wrangle and Attribute VOP SOP geometry nodes are two different ways of using VEX (Vector EXpressions) to motivate/deform geometry attributes, including P position, Cd color and more.

In this case, I am using a key point vertex float type attribute called “pscale” which stands for particle instance scale. It is used to determine in this case the scale to apply to the packed instances on the graphics card and in to Mantra. A simple float in this case set to a small value chosen by looking both in the viewport and a render test. Notice how the “pscale” attribute is applied to the points feeding in to the Copy SOP's second right input. These template points can be loaded up with many key point attributes including “pscale” which is used to control the scale of the copied left input geometry.

The Copy SOP is also one of what I identify as the four key operators to master Houdini SOPs. It's used quite often.
There's at least one school like the old school!
User Avatar
Member
2624 posts
Joined: Aug. 2006
Offline
Great Scene file ! . Already hacking away at it I have a question. I have created a nice cone shaping for the flame coming out the back but , no matter what I do I cannot get a ramp of colour to spread through from the pyro shader.

The docs mention that the fire colour is controlled by temperature, yet I dont see temperature mapped anywhere in your set up. Yet there is still colour in the render from part of the ramp ? . How is this controlled ?

Attached for my hacked file

Attachments:
flame.jpg (83.0 KB)
thrusters_test_v02.hip (1.8 MB)

Gone fishing
  • Quick Links