- Fausto ha scritto:
- Marco ho provato ad inserirlo ma naturalmente non funziona.. cosa intendi per mesh emissiva cioè luminosa? Devo aggiungere qualcosa al file msh?
Devi fare la mesh luminosa,come gli interni delle cabine per intenderci.
Poi nel file .h devi dichiarare la mesh-------------------------------------------
MESHHANDLE hMeshReentryShield;Mi raccomando la "h"---->
hMeshReentryShield
Poi la posizione della mesh:
const VECTOR3 offsetshield = {0,0.268,0.548};Nel file .cpp ------------------------------------------------------------------------
ShuttlePB::ShuttlePB (OBJHANDLE hVessel, int flightmodel)
: VESSEL2 (hVessel, flightmodel)
Metti in lista la mesh dello scudo insieme alle altre:
f150 = oapiLoadMeshGlobal ("beta1");
f151 = oapiLoadMeshGlobal ("betapilot1");
f152 = oapiLoadMeshGlobal ("Spiralcab1");
f153 = oapiLoadMeshGlobal ("Spiralcab2");
f154 = oapiLoadMeshGlobal ("Spiralcab3");
f155 = oapiLoadMeshGlobal ("Spiralcabdummy");
f156 = oapiLoadMeshGlobal ("mfd_1"); //right
f157 = oapiLoadMeshGlobal ("mfd_2");//left
f158 = oapiLoadMeshGlobal ("mfd1_1n");
f159 = oapiLoadMeshGlobal ("mfd2_2n");
hMeshReentryShield = oapiLoadMeshGlobal ("shield");
Poi in :
void ShuttlePB::clbkPostStep (double simt, double simdt, double mjd)
double atmTemp = 0.5*(GetAtmDensity()*(GetAirspeed()*GetAirspeed()*GetAirspeed()));
double alpha1 = ((atmTemp-40000000) / 100000000);
double f1 = ((GetAirspeed()*GetAirspeed())/2);
double alpha2 = (alpha1 / (f1*0.1));
double alpha = alpha1-alpha2;
double aspd = GetAirspeed();
if (alpha < 0)(alpha = 0);
if (alpha > 1) (alpha = 1);
if (aspd < 20) (alpha = 0);
SetMeshVisibilityMode (InsertMesh (hMeshReentryShield,10,&offsetshield),MESHVIS_EXTERNAL); //
nota 1 oapiSetMeshProperty (hMeshReentryShield,MESHPROPERTY_MODULATEMATALPHA,1);//
nota 2 MATERIAL *mat = oapiMeshMaterial (hMeshReentryShield, 0);
mat->diffuse.a = alpha;
mat->ambient.a = alpha;
mat->specular.a = alpha;
mat->emissive.a = alpha;
Attenzione a:nota 1 SetMeshVisibilityMode (InsertMesh (hMeshReentryShield,
10,&offsetsh),MESHVIS_EXTERNAL);
Il numero 10 corrisponde al numero della mesh,se la tua nave ha 5 mesh metterai lo scudo per ultimo con il numero 4 (0-1-2-3-4)
nota 2 MATERIAL *mat = oapiMeshMaterial (hMeshReentryShield,
0);
Dove il numero
0 corrisponde al numero della texture nel file .msh