Toujours sur la rentrée de la capsule du CTV, j'ai réussi à changer les textures (merci à ceux qui se reconnaissent
).
J'essaie maintenant de faire un effet de bouclier rougeoyant à cause de la chaleur.
L'idée est de rajouter un mesh, un peu la même méthode que le DGIV mais pas exactement car j'espérais me passer
de couche alpha.
En gros voilà, l'histoire en c++ avec un résultat qui me surprend un peu:
In the PostStep: if (GetAltitude()<54000)
{SetMeshVisibilityMode (InsertMesh (bouclier,3,&ofsr),MESHVIS_EXTERNAL);}
if ((ReentryShieldMeshVisual != 0) & (54000>GetAltitude()) & (GetAltitude()>40000))
{
oapiSetMeshProperty (ReentryShieldMeshVisual,MESHPROPERTY_MODULATEMATALPHA,1);
double opacity = myformula ;
MATERIAL *mat = oapiMeshMaterial (ReentryShieldMeshVisual, 0);
mat->diffuse.a *= opacity;
mat->ambient.a *= opacity;
mat->specular.a *= opacity;
mat->emissive.a *= opacity;
}
if (GetAltitude()<30000)
{DelMesh(3);}
dans VisualCreated:ReentryShieldMeshVisual= GetMesh(vis,3);
et dans le DestroyedReentryShieldMeshVisual=0;
Les VISHANDLE et MESHHANDLE sont bien présents dans le .h.
myformula passe de 0.0 à 1.0 entre 54 et 40Km et evidemment les GetAltitude() sont à remplacer (y'a une formule
pour détecter la phase "enflammée" de la rentrée dans un des pdf du SDK il me semble...),
là c'est total WIP, mal
écrit et en cours de.....
Le résultat est bien mitigé vu qu'il ne se passe rien
(si je change le focus afin de détruire puis recréer le
visuel, la capsule réapparait mais sans son bouclier signe que les .a sont passés à zéro ????)
J'ai eu l'idée de passer la modif des
alpha (edité) de clbkPoststep à clbkVisualcreated. Il ne se passe rien bien sûr mais si je change le focus et que je reviens sur ma capsule, le bouclier réapparait et si je répète l'opération il est à chaque fois de plus en plus "chaud" (signe que les .a sont bien passés de 0 à +).
Peut-être vaudrait-il mieux que je charge le mesh dans la clbkSetClassCaps (MESHVIS_NEVER) et que je change juste
le NEVER en EXTERNAL dans clbkPostStep.
Me serai-je engagé sur une voie futile? clbkPreStep peut-être? J'suis perdu
Message modifié ( 31-08-2007 15:50 )