devNotes 5-4-2017 Radial Adjust – Tang – Prep Luke Visit

 

To Early Access Release:

  • Attractor – Load Rotations
  • Compute Shader – Lock Down
  • 2 Geometry Shaders
  • Save Viewer Transform
  • Presets
  • Background Music Selection
  • Lobby
  • Transition to VU – Camera Plate Transition
  • Intro
  • Preset Panel – Differentiate between – Free and Paid
  • Detail – Hone – Review

————————————————

  • Performance Analysis – Profiling
  • Group of Early Access Testers
  • Bug Tracking
  • The.Vu Website – Could be on Argos.VU root – Move Dev – Site
  • Usage Documentation

 

    if(app_mode == 0) //Platonics Mode  MONAD
    {
        velDeref = particles[index].velocity;
           
        att_Dir  = normalize(att_0 - particles[index].position);

        att_Perp = normalize(cross(att_Dir, att_0_axis));
        att_Dist = distance(att_0, particles[index].position);
        
        att_A = att_0 + att_0_split_dist*att_Perp;
        att_B = att_0 - att_0_split_dist*att_Perp;

        att_A_Dir = normalize(att_A - particles[index].position);
        att_B_Dir = normalize(att_B - particles[index].position);

        //Radial
        coeff = targetStrength * att_0_radial_amount * att_0_strength;
        velDeref += 0.5 * coeff * att_A_Dir * deltaTime / att_Dist; 
        velDeref += 0.5 * coeff * att_B_Dir * deltaTime / att_Dist;
        
        Step_incline = 1;
        if(att_Dist > att_0_inner_Radius && att_Dist < att_0_outer_Radius)
        {
            float L = att_0_outer_Radius - att_0_inner_Radius;
            float pos = att_Dist - att_0_inner_Radius;
            Step_incline = (L-pos)/L;

            Step_incline = Step_incline * Step_incline * (3.0 - 2.0 * Step_incline);//Smooth Step

        }
        else if(att_Dist > att_0_outer_Radius)
        {
            Step_incline = 0;
        }   
         
        //Linear
        velDeref += Step_incline * targetStrength * att_0_linear_amount * att_0_strength * att_0_axis * deltaTime;
        
        //Tangential
        tang = Step_incline * targetStrength * att_0_tangential_amount * att_0_strength * att_Perp * deltaTime * att_Dist;

        float tangMag = length(tang);

        velDeref += tang;

        //Centripetal
        velDeref += tangMag * att_0_axis * att_0_centripetal_amount;

 

radial_balance