Hey everyone,
do you have a tip on how to create those airplane swirls as seen in the screenshot? Or maybe a link to a file or tutorial?
Thanks!
Airplane swirls
768 4 0- D4uerrenner
- Member
- 16 posts
- Joined: Nov. 2022
- Online
- Enivob
- Member
- 2544 posts
- Joined: June 2008
- Offline
This is kind of old but there is some information here:
https://forums.odforce.net/topic/28509-how-to-simulate-helicopter-field/#comment-162029 [forums.odforce.net]
https://forums.odforce.net/topic/28509-how-to-simulate-helicopter-field/#comment-162029 [forums.odforce.net]
Using Houdini Indie 20.0
Windows 11 64GB Ryzen 16 core.
nVidia 3050RTX 8BG RAM.
Windows 11 64GB Ryzen 16 core.
nVidia 3050RTX 8BG RAM.
- Getyamamout
- Member
- 37 posts
- Joined: Dec. 2020
- Offline
what your after are called Wake vortices they are bigger when the plane is slow and heavy
you could make a spiral size it accordingly and stretch it out. carve the spiral to nothing and (un-carve it by frame and rotate when animating). then sweep a circle along it scale it by point number / curve length. optional mountain sop, and convert to a vdb fog or pyro sim or scatter points inside the tube for fog cards
///////////////////////////////////////////////////
(spiral)
float angle;
vector pos = {0,0,0};
int npoints = chi('number_of_points');
float step = radians(ch('sweep'))/npoints;
for (int n=0; n<npoints; n++) {
angle = step * n; // Or: angle += step;
pos.x = cos(angle);
pos.y = angle/10 ;
pos.z = sin(angle);
addpoint(0, pos);
}
//////////////////////////////////////////////////////////////////////////
(spiral grow)
float angle;
vector pos = {0,0,0};
int npoints = chi('number_of_points');
float step = radians(ch('sweep'))/npoints;
for (int n=0; n<npoints; n++) {
angle = step * n;
pos.x = sin(angle) * angle;
pos.y = angle;
pos.z = cos(angle) * angle;
addpoint(0, pos);
}
/////////////////////////////////////////////////////////////////////////////
you could make a spiral size it accordingly and stretch it out. carve the spiral to nothing and (un-carve it by frame and rotate when animating). then sweep a circle along it scale it by point number / curve length. optional mountain sop, and convert to a vdb fog or pyro sim or scatter points inside the tube for fog cards
///////////////////////////////////////////////////
(spiral)
float angle;
vector pos = {0,0,0};
int npoints = chi('number_of_points');
float step = radians(ch('sweep'))/npoints;
for (int n=0; n<npoints; n++) {
angle = step * n; // Or: angle += step;
pos.x = cos(angle);
pos.y = angle/10 ;
pos.z = sin(angle);
addpoint(0, pos);
}
//////////////////////////////////////////////////////////////////////////
(spiral grow)
float angle;
vector pos = {0,0,0};
int npoints = chi('number_of_points');
float step = radians(ch('sweep'))/npoints;
for (int n=0; n<npoints; n++) {
angle = step * n;
pos.x = sin(angle) * angle;
pos.y = angle;
pos.z = cos(angle) * angle;
addpoint(0, pos);
}
/////////////////////////////////////////////////////////////////////////////
Edited by Getyamamout - Jan. 18, 2024 17:28:58
- liberalarts
- Member
- 37 posts
- Joined: Feb. 2017
- Offline
Wake Wash Turbulence tutorial using Axiom:
https://www.youtube.com/watch?v=V4hwPsmALJI [www.youtube.com]
https://www.youtube.com/watch?v=V4hwPsmALJI [www.youtube.com]
- cncverkstad
- Member
- 118 posts
- Joined: Aug. 2017
- Offline
Make v from this.. on your object just make 2 point of that airplane that represent wings left right feed these with two compute velocity (first only preserve original and second one compute velocity, then add point and use this.
int prim; vector primuv; float dist = xyzdist(1, @P, prim, primuv); vector pos_p = primuv(1, "P", prim, primuv); vector pos_v = primuv(1, "v", prim, primuv); float class = primuv(1, "class", prim, primuv); vector indir = normalize(pos_p - @P); vector vortexdir = normalize(cross(indir, normalize(pos_v))); if(class == 1 ) vortexdir=-vortexdir; float inspeed = exp(-dist * ch("dacale")); vector winddir = normalize(lerp(vortexdir, indir, inspeed)); float length = fit(length(pos_v), 0, 1, 0, 1); v@v = winddir * length ; v@v = lerp(v@v, set(0, 0, 0), fit(dist, 0, chf("dist_max"), 0, 1));
Edited by cncverkstad - Jan. 19, 2024 10:05:45
Conservation of Momentum
-
- Quick Links