JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
test_render_culling.cpp File Reference

Tests unitaires du culling par cadrage caméra (LOT-40, EX-NFR-005, EX-REN-015). More...

Functions

 TEST (RenderCullingTest, SansCadrageAucunRejet)
 Sans cadrage fixé, aucune primitive n'est écartée : le culling est une décision explicite de l'appelant.
 TEST (RenderCullingTest, HorsCadrageEcarte)
 Une primitive hors du cadrage est écartée ; la même primitive dans le cadrage est conservée.
 TEST (RenderCullingTest, AChevalSurLaFrontiereConserve)
 Une primitive à cheval sur la frontière du cadrage est conservée : la marge évite qu'une entité partiellement visible disparaisse prématurément.
 TEST (RenderCullingTest, SegmentHorizontalConserve)
 Un segment horizontal (boîte d'aire nulle sans son épaisseur) traversant le cadrage est conservé : la boîte englobante tient compte de l'épaisseur.
 TEST (RenderCullingTest, PrimitiveEtireeConservee)
 La boîte englobante réelle est testée, pas la position d'ancrage : une primitive très étirée dont le coin est hors cadrage reste soumise (cas du fond de niveau, LOT-44).
 TEST (RenderCullingTest, SpriteQuadBoundsSansRotationEstLeRectangleBrut)
 Un quad texturé sans rotation a la même boîte englobante que le rectangle brut (x, y, width, height) : la rotation nulle ne coûte rien et ne change rien.
 TEST (RenderCullingTest, SpriteQuadBoundsA90DegresPermuteLargeurEtHauteur)
 Un quad texturé tourné d'un quart de tour (90°) a une boîte englobante correspondant à ses dimensions permutées (large devient haut), centrée au même endroit que le rectangle non tourné — le culling doit juger ce rectangle-là, jamais (x, y, width, height) brut (LOT-50 TACHE-02).
 TEST (RenderCullingTest, QuadTourneChevauchantLeCadrageResteSoumis)
 Un décor tourné près du bord du cadrage, dont le rectangle non tourné serait hors champ mais dont la boîte englobante réelle (élargie par la rotation) chevauche le cadrage, reste soumis : un culling naïf sur (x, y, width, height) l'écarterait à tort.
 TEST (RenderCullingTest, VolumeProportionnelALaSalleVisible)
 Sur un niveau de trois salles, le nombre de primitives composées dépend du contenu de la salle visible, pas de la taille du niveau.
 TEST (RenderCullingTest, MargeAppliqueeSurLesQuatreCotes)
 Le cadrage utilisé pour le culling est le cadrage visible élargi de la marge, sur les quatre côtés.
 TEST (RenderCullingTest, CadrageDeLaCamera)
 La caméra fournit le rectangle monde qu'elle cadre, base du culling.

Detailed Description

Tests unitaires du culling par cadrage caméra (LOT-40, EX-NFR-005, EX-REN-015).

Function Documentation

◆ TEST() [1/11]

TEST ( RenderCullingTest ,
AChevalSurLaFrontiereConserve  )

Une primitive à cheval sur la frontière du cadrage est conservée : la marge évite qu'une entité partiellement visible disparaisse prématurément.

Cas de test : Une primitive a cheval sur la frontiere du cadrage est conservee.
Categorie : Unitaire · Render Culling
Criticite : Critique
Etapes :
1. Fixer le cadrage de reference.
2. Composer un quad chevauchant le bord droit, puis un quad entierement dans la marge.
Resultat attendu : Les deux quads sont conserves.

◆ TEST() [2/11]

TEST ( RenderCullingTest ,
CadrageDeLaCamera  )

La caméra fournit le rectangle monde qu'elle cadre, base du culling.

Cas de test : La camera fournit le rectangle monde qu'elle cadre.
Categorie : Unitaire · Render Culling
Criticite : Majeur
Etapes :
1. Centrer une camera 320x160 sur (10, 5) au zoom 1.
2. Lire son cadrage.
Resultat attendu : Le cadrage couvre 20x10 unites a partir de l'origine.

◆ TEST() [3/11]

TEST ( RenderCullingTest ,
HorsCadrageEcarte  )

Une primitive hors du cadrage est écartée ; la même primitive dans le cadrage est conservée.

Cas de test : Une primitive hors cadrage est ecartee, la meme dans le cadrage est conservee.
Categorie : Unitaire · Render Culling
Criticite : Critique
Etapes :
1. Fixer le cadrage de reference.
2. Composer un quad dedans, puis un quad loin dehors.
Resultat attendu : Seul le quad interieur est conserve, et les compteurs le refletent.

◆ TEST() [4/11]

TEST ( RenderCullingTest ,
MargeAppliqueeSurLesQuatreCotes  )

Le cadrage utilisé pour le culling est le cadrage visible élargi de la marge, sur les quatre côtés.

Cas de test : Le cadrage de culling est le cadrage visible elargi de la marge.
Categorie : Unitaire · Render Culling
Criticite : Mineur
Etapes :
1. Fixer le cadrage de reference.
2. Lire le rectangle de culling.
Resultat attendu : Il deborde d'une marge de chaque cote.

◆ TEST() [5/11]

TEST ( RenderCullingTest ,
PrimitiveEtireeConservee  )

La boîte englobante réelle est testée, pas la position d'ancrage : une primitive très étirée dont le coin est hors cadrage reste soumise (cas du fond de niveau, LOT-44).

Cas de test : Une primitive etiree dont l'ancrage est hors cadrage reste soumise.
Categorie : Unitaire · Render Culling
Criticite : Critique
Etapes :
1. Fixer le cadrage de reference.
2. Composer un quad ancre en (0, 0) et large de 200 unites.
Resultat attendu : Le quad est conserve.

◆ TEST() [6/11]

TEST ( RenderCullingTest ,
QuadTourneChevauchantLeCadrageResteSoumis  )

Un décor tourné près du bord du cadrage, dont le rectangle non tourné serait hors champ mais dont la boîte englobante réelle (élargie par la rotation) chevauche le cadrage, reste soumis : un culling naïf sur (x, y, width, height) l'écarterait à tort.

Cas de test : Un quad tourne dont la boite reelle chevauche le cadrage reste soumis.
Categorie : Unitaire · Render Culling
Criticite : Critique
Etapes :
1. Fixer un cadrage de reference.
2. Composer un quad tourne de 45 degres juste a l'exterieur du rectangle non tourne, mais dont la diagonale rentre dans le cadrage.
Resultat attendu : Le quad est conserve.

◆ TEST() [7/11]

TEST ( RenderCullingTest ,
SansCadrageAucunRejet  )

Sans cadrage fixé, aucune primitive n'est écartée : le culling est une décision explicite de l'appelant.

Cas de test : Sans cadrage fixe, aucune primitive n'est ecartee.
Categorie : Unitaire · Render Culling
Criticite : Majeur
Etapes :
1. Composer un quad tres eloigne dans une scene sans cadrage.
Resultat attendu : Le quad est conserve.

◆ TEST() [8/11]

TEST ( RenderCullingTest ,
SegmentHorizontalConserve  )

Un segment horizontal (boîte d'aire nulle sans son épaisseur) traversant le cadrage est conservé : la boîte englobante tient compte de l'épaisseur.

Cas de test : Un segment horizontal traversant le cadrage est conserve.
Categorie : Unitaire · Render Culling
Criticite : Majeur
Etapes :
1. Fixer le cadrage de reference.
2. Composer un segment horizontal a l'interieur, puis un segment horizontal tres au-dessus.
Resultat attendu : Seul le segment interieur est conserve.

◆ TEST() [9/11]

TEST ( RenderCullingTest ,
SpriteQuadBoundsA90DegresPermuteLargeurEtHauteur  )

Un quad texturé tourné d'un quart de tour (90°) a une boîte englobante correspondant à ses dimensions permutées (large devient haut), centrée au même endroit que le rectangle non tourné — le culling doit juger ce rectangle-là, jamais (x, y, width, height) brut (LOT-50 TACHE-02).

Cas de test : spriteQuadBounds a 90 degres permute largeur et hauteur.
Categorie : Unitaire · Render Culling
Criticite : Critique
Etapes :
1. Calculer la boite englobante d'un quad large tourne de 90 degres.
Resultat attendu : La boite est haute (largeur/hauteur permutees), centree au meme endroit.

◆ TEST() [10/11]

TEST ( RenderCullingTest ,
SpriteQuadBoundsSansRotationEstLeRectangleBrut  )

Un quad texturé sans rotation a la même boîte englobante que le rectangle brut (x, y, width, height) : la rotation nulle ne coûte rien et ne change rien.

Cas de test : spriteQuadBounds sans rotation vaut le rectangle brut.
Categorie : Unitaire · Render Culling
Criticite : Majeur
Etapes :
1. Calculer la boite englobante d'un quad de rotation nulle.
Resultat attendu : La boite correspond exactement a (x, y, width, height).

◆ TEST() [11/11]

TEST ( RenderCullingTest ,
VolumeProportionnelALaSalleVisible  )

Sur un niveau de trois salles, le nombre de primitives composées dépend du contenu de la salle visible, pas de la taille du niveau.

Cas de test : Le volume compose depend de la salle visible, pas de la taille du niveau.
Categorie : Unitaire · Render Culling
Criticite : Critique
Etapes :
1. Peupler une ligne de tuiles couvrant trois salles.
2. Cadrer la premiere salle.
3. Composer la scene.
Resultat attendu : Seules les tuiles de la salle visible (marge comprise) sont soumises.