Comme devoir à la maison, nous écrivons un logiciel de tramage. J'ai remarqué que ma mise en mémoire tampon z ne fonctionne pas aussi bien qu'elle le devrait, alors j'essaie de la déboguer en l'affichant à l'écran. (Le noir est proche, le blanc est éloigné).
Cependant, j'obtiens des valeurs particulières pour le z par vertex. C'est ce que j'utilise pour transformer les points :
float Camera::GetZToPoint(Vec3 a_Point)
{
Vec3 camera_new = (m_MatRotation * a_Point) - m_Position;
return (HALFSCREEN / tanf(_RadToDeg(60.f * 0.5f)) / camera_new.z);
}
m_MatRotation
est une matrice 3x3. En la multipliant par un vecteur, on obtient un vecteur transformé.
J'obtiens des valeurs maximales et minimales comprises entre 0 et x, où x est un nombre apparemment aléatoire.
Est-ce que je fais bien cette transformation ? Si oui, comment puis-je normaliser mes valeurs Z pour qu'elles se situent entre deux points de référence ?
Merci d'avance.