seasonal asm-tweaking example (fs2002sdk)

Da das Beispiel im FSDeveloper-Forum zwar sehr hilfreich ist, aber leider nicht ganz komplett, hab ich hier mal ein Beispiel des asm-Tweaking des LOWG-Ortho-Polygons, mit Base-Textur, HW-Textur (hard-winter = snow) und LM-Textur (Nachttextur). Dabei wird die gleiche Nachttextur für alle Base-Texturen verwendet, was man auch anders machen könnte.

Die Texture-List lass ich hier mal außen vor, das wird bei FSDevelopers ohnehin erklärt und ist nicht der komplizierte Teil des Tweaken.

So sieht der automatisch generierte Code nach dem gmax-Export aus:

lowg_ortho_v2_NonAlpha label BGLCODE
MATERIAL 0,0 ; <255,255,255,255> POLYV2_01.BMP;POLYV2_01_LM.BMP;;
DRAW_TRI_BEGIN 0, 4
DRAW_TRI    2,   0,   1 ; poly=2 part=0
DRAW_TRI    1,   3,   2 ; poly=1 part=0
DRAW_TRI_END
MATERIAL 0,2 ; <255,255,255,255> POLYV2_02.BMP;POLYV2_02_LM.BMP;;
DRAW_TRI_BEGIN 4, 4
DRAW_TRI    2,   0,   1 ; poly=4 part=0
DRAW_TRI    1,   3,   2 ; poly=3 part=0
DRAW_TRI_END

für die 3 Texturen brauchen wir also die Abfrage der Jahreszeit für die Winter-Textur, als „else“ wird die Base-Textur verwendet und beide bekommen den Verweis zur Lightmap-Textur lt. Texturliste. Aus 1 Textur-Entry werden somit 4 und der Code wächst dadurch ziemlich. Leider gibt es noch kein Programm, das einen diese Arbeit abnimmt (zumindest nicht am freien Markt) und somit ist bei dieser Menge Code ein Vertippen sehr wahrscheinlich.

Aber langer Rede kurzer Sinn, so sieht der geänderte Code für den ersten Texture-Eintrag aus:

IFIN1 tex_01, 038Ah, 0, 59
   MATERIAL 0,1; <255,255,255,255> POLYV2_1_hw.BMP
    DRAW_TRI_BEGIN 0, 4
DRAW_TRI    2,   0,   1 ; poly=2 part=0
DRAW_TRI    1,   3,   2 ; poly=1 part=0
DRAW_TRI_END
    MATERIAL 0,1; <255,255,255,255> POLYV2_1_lm.BMP
    DRAW_TRI_BEGIN 0, 4
DRAW_TRI    2,   0,   1 ; poly=2 part=0
DRAW_TRI    1,   3,   2 ; poly=1 part=0
DRAW_TRI_END
JUMP tex_continue
tex_01 label word
MATERIAL 0,0; <255,255,255,255> POLYV2_1.BMP
    DRAW_TRI_BEGIN 0, 4
DRAW_TRI    2,   0,   1 ; poly=2 part=0
DRAW_TRI    1,   3,   2 ; poly=1 part=0
DRAW_TRI_END
    MATERIAL 0,1; <255,255,255,255> POLYV2_1_lm.BMP
DRAW_TRI_BEGIN 0, 4
DRAW_TRI    2,   0,   1 ; poly=2 part=0
DRAW_TRI    1,   3,   2 ; poly=1 part=0
DRAW_TRI_END
tex_continue label word

Zuerst erfolgt die Abfrage der 038Ah-Variable für gezielte Jahreszeitentexturen, die verweist auf die _hw-Textur und auf die _lm-Textur, beide mit dem identischen Tri-Draw Befehl. Als else kommt ohne Bedingung die Base-Textur mit der _lm-Textur zum Einsatz.
(Dadurch auch der Unterschied zw. 0,0 und 0,1, da für 0,0 auch eine eigene _lm-Textur verwendet werden könnte.)

Also eigentlich ganz einfach, wären da nicht so viele Zahlen und bei meinem Poly im Ausgangszustand schon 18 Texturen. Macht getweaked in Summe 72 Textur-Zuordnungen à 24 Zeilen – Also 1728 Zeilen Code zu schreiben…

Happy Tweaking!

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.