Aller au contenu principal

Session 72 — Outil VectObj Viewer + TODO textures

Ajout : viewer 3D pour les modeles vectobj

Outil standalone pour inspecter interactivement les modeles .j3o convertis
depuis les vectobj Amiga, avec leurs animations de frames.

Lancement :

./gradlew viewVectObj                  # premier modele de la liste
./gradlew viewVectObj -Pmodel=rifle    # modele specifique

Controles :
<- / -> : modele precedent/suivant (19 au total : blaster, charger,
crab, generator, glarebox, grenadelauncher, jetpack, laser, mantis,
passkey, plink, rifle, rocketlauncher, scenery, shotgun, snake, switch,
ventfan, wasp)
Space : play/pause animation
+ / - : accelerer / ralentir FPS (pas de 1)
N / B : frame suivante / precedente (en pause)
R : reset camera
G : toggle grille au sol
W : toggle wireframe
A : toggle auto-rotation du modele
– Drag souris gauche : orbit autour du modele
– Molette : zoom
Esc : quitter

HUD :
– Titre : nom du modele + index + FPS courante + etat PAUSED
– Info : nb geometries, vertices, frames d’animation
– Controles en bas

Modifications

VectObjFrameAnimControl.java :
– Ajout methode publique stepFrame(int delta) : avance/recule d’une
frame et force le rafraichissement du mesh (indispensable en pause)
– Ajout getCurrentFrameIndex() et helper prive applyCurrentFrameToMesh()
– Refactor : la mise a jour du mesh est factorisee dans
applyCurrentFrameToMesh() (reutilise par stepFrame et controlUpdate)

VectObjViewer.java (nouveau, 500+ lignes) :
– SimpleApplication standalone avec camera orbit spherique
– Auto-scan des .j3o dans assets/Scenes/vectobj
– Normalisation automatique de l’echelle du modele (tient dans une sphere
de 1.5 unites, centre au sol)
– Eclairage 3-points (ambient + sun + fill) pour visualiser le shading
– Grille 10×10 + axes XYZ colores comme reference spatiale
– Integration avec VectObjFrameAnimControl.attachIfAnimated() pour
declencher les anims au chargement

build.gradle :
– Nouvelle tache viewVectObj (group ab3d2)
-XstartOnFirstThread sur macOS
– Verifie la presence de .j3o avant de lancer (message d’erreur explicite
renvoyant vers convertVectObj)

TODO note : bug decodage textures

L’utilisateur signale que certaines textures murales ont 2 pixels en
trop en largeur
apres conversion .256wad -> PNG. A investiguer plus
tard dans WallTextureExtractor (stride, padding, ou offset de header).
Peut potentiellement expliquer certains decalages UV residuels sur les
portes. Tag pour session future.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *