Toy Rocket with adjustable wings

calendar_today

02.12.2023

label

Modeling, VEX

mouse

Houdini 20

Description

Modeling a toy rocket with adjustable wings.

1 Code discussion

This VEX code is used to transform a box into a wing and adjust it to the body of the rocket.

C
        // PARAMETERS
float a = chf('amount_body');
float b = chf('amount_ground');
float in = chf('in');
float out = chf('out');
float start = chf('start');
float end = chf('end');
float t_start = chf('thickness_start');
float t_end = chf('thickness_end');

// REMAPPING BOUNDING BOX 
vector bb = relbbox(0, v@P);
vector uvw = set(bb.x, bb.z, bb.y);
uvw[0] = (uvw[0] * t_start - t_start / 2.0) % 1.0;
uvw[1] = fit01(uvw[1], start, end);

// SAMPLING POSITIONS AND NORMALS FROM THE BODY
vector pos_0 = uvsample(1, 'P', 'uv', uvw);
vector nml_0 = uvsample(1, 'N', 'uv', uvw);

// GROUND POSITIONS AND NORMALS
vector pos_1 = set(bb.x * t_end - t_end / 2.0, 0.0, fit01(bb.z, in, out));
vector nml_1 = {0,1,0};

// INTERPOLATING POSITIONS BTW. BODY AND GROUND
vector pos_a = lerp(pos_0 + nml_0 * 2e-3, pos_0 + nml_0 * a, bb.y);
vector pos_b = lerp(pos_1 + nml_1 * b, pos_1, bb.y);
vector pos = lerp(pos_a, pos_b, bb.y);

v@P = pos;
    
download

Downloads

link

Related articles

favorite

169

label

Modeling

Adaptive Resampling of Curves

favorite

317

label

Modeling

Applying Scales to Mesh Surfaces

favorite

272

label

Modeling

Approximating subdivision surfaces

favorite

216

label

Modeling

Blending COPs SDFs into 3D Volume

favorite

308

label

Modeling

Branching Subdivision Curves

favorite

160

label

Modeling

Circuit Networks