Author Topic: Orienter un quad selon un vecteur  (Read 5173 times)

0 Members and 1 Guest are viewing this topic.

Offline phaazon

Re : Orienter un quad selon un vecteur
« Reply #15 on: 11 June 2013 à 11:10:14 »
Quand tu utilises des triangles, pourquoi tu envoies autant de points ? 4 suffisent (triangle strip).

Offline flure

  • Base
    • Pouet.net
    • View Profile
  • Ancienneté: 1998
  • Groupe: PoPsY TeAm
  • Rôle: Codeur Linux
  • Ville: Lyon
Re : Orienter un quad selon un vecteur
« Reply #16 on: 11 June 2013 à 11:30:20 »
Je voulais mettre l'option de faire des strips mais je me suis foiré en générant les triangles dégénérés alors je l'ai enlevée... J'avais pas envie d'y passer trop de temps, je les remettrai plus tard quand j'aurai du temps pour ça...

Offline Ziple

  • Base
    • View Profile
  • Ancienneté: 2013
  • Ville: Paris
Re : Orienter un quad selon un vecteur
« Reply #17 on: 13 June 2013 à 11:11:05 »
Je mets mon code, au cas où quelqu'un voudrait faire pareil:
Code: [Select]
// Returns a rotation matrix that transforms the (0,1,0) axis to N.
kT::Matrix4f32 GetRotation( const kT::Vector3f32& N )
{
    float cosp = N.y;
    float sinp = sqrt( 1.0f - cosp * cosp );
    float coso = 1.f;
    float sino = 0.f;

    float l = sqrt(N.z * N.z + N.x * N.x);
    if( l > 0.f )
    {
        coso = N.z / l;
        sino = sqrt( 1.0f - coso * coso );
        if( N.x < 0 )
            sino *= -1.0f;
    }

    // column-major
    kT::Matrix4f32 m;
    m.LoadIdentity();
    m._11 = coso;
    m._21 = sino*sinp;
    m._31 = sino*cosp;
    m._22 = cosp;
    m._32 = -sinp;
    m._13 = -sino;
    m._23 = coso*sinp;
    m._33 = coso*cosp;
    return m;
}

Offline phaazon

Re : Orienter un quad selon un vecteur
« Reply #18 on: 13 June 2013 à 11:57:56 »
Tu as un groupe Ziple ? Tu as déjà proddé ?

Offline Ziple

  • Base
    • View Profile
  • Ancienneté: 2013
  • Ville: Paris
Re : Orienter un quad selon un vecteur
« Reply #19 on: 13 June 2013 à 12:41:08 »
Non, jamais :/