Dear Houdiniers,
I am attempting to simulate contrails coming from the wing tips of my 3 winged “aircraft”.
First I thought to use a smoke pyro container but the size of the container had to be too huge as my “aircraft” is going VERY fast and my computer would not handle such a big container.
Instead I am using particles sourced from 3 small spheres parented to the wing tips. I am instancing these particles with metaballs and rendering the metaballs with basic smoke with the smoke colour RGB channels all set to 3.
Getting nice results with small metaballs at the beginning of the trail but need the balls to be bigger at the older part of the trail to look good.
How can I grow my metaballs that are instanced with particle age?
My .hip is attached (without the “aircraft” .abc or the environment light map), but I also wondered if anyone has any suggestions for a better workflow for contrails?
Cheers,
Nick.
"AIRCRAFT" con trail.....
7071 6 2-
- 5DN
- Member
- 152 posts
- Joined: 1月 2014
- Offline
-
- edward
- Member
- 8024 posts
- Joined: 7月 2005
- Online
-
- 5DN
- Member
- 152 posts
- Joined: 1月 2014
- Offline
-
- stouffle
- Member
- 12 posts
- Joined: 10月 2012
- Offline
-
- old_school
- スタッフ
- 2540 posts
- Joined: 7月 2005
- Offline
Generating particles and converting to vdb density grid is the right idea. I would not use the VDB From Particle Fluid SOP as it is intended to construct an actual surface from particles generated from a FLIP simulation.
Rendering instance meatballs as volumes is not recommended any more either. Any render engine capable of rendering volumes really doesn't like being fed tens or hundreds of thousands of volumes that may overlap. You also might find some older threads where users are going to cvex to render volumes from points. Also a technique that is made obsolete by vdb grids. Only on rare cases do you still want to do gridless advection at render time.
There are three SOPs you need to look at to construct a vdb grid for rendering and it is all visualized in the viewport too:
Rendering instance meatballs as volumes is not recommended any more either. Any render engine capable of rendering volumes really doesn't like being fed tens or hundreds of thousands of volumes that may overlap. You also might find some older threads where users are going to cvex to render volumes from points. Also a technique that is made obsolete by vdb grids. Only on rare cases do you still want to do gridless advection at render time.
There are three SOPs you need to look at to construct a vdb grid for rendering and it is all visualized in the viewport too:
- Volume Rasterize Particles
Volume Rasterize Points
VDB From Particles
Volume Rasterize Particles is way fast and can work with millions of particles with reasonable pscale sizes. It also supports sub-voxel filtering. It is your go-to SOP for converting points to volumes.
Volume Rasterize Points is also quite fast at taking points and constructing vdb surface volumes. It has additional options for reading temperature and other attributes, adding noise to the surface volume and more.
Both of the Volume Rasterize SOPs take a VDB SOP as the left input. You can set the VDB SOP to create a regular volume, good for your set-up or even create a frustum volume from a camera for volumes that occupy much more of the view.
The VDB From Particles SOP is the third option to take points and create a surface vdb volume. It has the benefit of creating additional vdb grids from any input point attribute. I use this frequently for creating additional vel vector vdb grids and a scalar age grid for controlling shading based on age in any volume surface shader.
You can even append a Cloud Noise SOP to add noise for hero contrails close to the camera. Adding noise for mid-ground contrails, I'd opt for the Volume Rasterize Points SOP with it's own noise settings. For your contrails, just rendering blobs works very well as they are pretty small in-frame.
I cleaned up your file ripping out all that instance meatball stuff and simplifying things for vdb surface rendering. I also added a VOP SOP that calculates a pscale attribute from input age for you. Turn it in to an HDA for re-use if you want.
There's at least one school like the old school!
-
- 5DN
- Member
- 152 posts
- Joined: 1月 2014
- Offline
-
- 5DN
- Member
- 152 posts
- Joined: 1月 2014
- Offline
yeh. been playing about. thanks for the help. i have used the volume rasterize particles method and added a cloud noise which really brings about the final effect of the trails. however the noise amplitude i am using to make the end of the trails look good doesn't work for the trails just leaving the aircraft, it is “noised” out too much and you cannot see it.
how would i connect the amplitude of the cloud noise to the ages of the particles? using a VOPSOP similar to the pscale one?
how would i connect the amplitude of the cloud noise to the ages of the particles? using a VOPSOP similar to the pscale one?
-
- Quick Links