TEXTUREBLEND für .b3d maps

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

rctuner

Betreff: TEXTUREBLEND für .b3d maps

BeitragMi, Feb 28, 2007 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo,

ich verwende 3d world studio von leadwerks für meine maps und speichere sie dann in das format *.b3d. Die Texturen werden dann automatisch beim Laden der map mit Blitz3D gleich mitgeladen und angezeigt.

Nun möchte ich für die Textur TEXTUREBLEND (für Dot3) einstellen. Das Problem ist, dass ich hier direkt die Variable für die Textur angeben muss und es nicht so machen kann wie mit TEXTUREFILTER, bei dem ich einen Suchtext angeben kann.
Ich habe aber keine Variable, da wie schon erwähnt die Texturen gleich mitgeladen werden.

Wie könnte ich das noch machen?
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu

[AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB]
 

coldie

BeitragMi, Feb 28, 2007 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest die in Frage kommenden Texturen in ein Array speichern. Dann kannst du in einer Variable die Arraynummer der betroffenen Textur speichern und das Problem so umgehen.
 

antome

!!! gesperrt !!!

BeitragMi, Feb 28, 2007 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Surface=GETSURFACE (Mesh, Index)
Brush=GETSURFACEBRUSH (Surface)
Textur=GETBRUSHTEXTURE (Brush [,Index])

mit
Name$=TEXTURENAME$ (Textur)

herausfinden ob es die richtige Textur ist
und dann hast du das Texturhandle zur passenden Textur.
antome

rctuner

BeitragMi, Feb 28, 2007 21:17
Antworten mit Zitat
Benutzer-Profile anzeigen
danke, aber woher soll ich wissen welches surface oder brush ich brauche?
meine map hat so um die tausend surfaces...
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu

[AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB]
 

antome

!!! gesperrt !!!

BeitragMi, Feb 28, 2007 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du evtl. einzelne Meshes ?
Oder ist die ganze MAP ein einziger Mesh ?

Egal auf jeden Fall.

Wenn ja, mit CountSurfaces die Anzahl bestimmen, dann die einzelnen Surfaces durchackern bis der Texturnamen übereinstimmt.
Leider nützt es nichts sich die Surfacenummer zu merken, die ändert sich bei erneutem Aufruf unter Umständen.
antome

rctuner

BeitragMi, Feb 28, 2007 22:33
Antworten mit Zitat
Benutzer-Profile anzeigen
die ganze map ist ein mesh. lässt sich auch nur schlecht vermeiden, da dass spiel so ähnlich wie GTA ist und alle wege offen sind.

würde sowas gehen?



mit

if
TEXTURENAME$ (Textur) <> "bump.jpg"
surf=surf+1
endif

Surface=GETSURFACE (Mesh, surf)
Brush=GETSURFACEBRUSH (Surface)
Textur=GETBRUSHTEXTURE (Brush)
[Y[our Film, Game ]M[akers and more [F]un!
www.Master-Entertainment.de.vu

[AMD 6000+ X2 @ 6400+][2GB RAM][NVidia 8800GT 512 MB]
 

antome

!!! gesperrt !!!

BeitragMi, Feb 28, 2007 22:51
Antworten mit Zitat
Benutzer-Profile anzeigen
TEXTURENAME$ (Textur) <> "bump.jpg"

Da du ja das/den Handle/Zeiger von der Textur noch nicht hast wird dir nichts anderes übrig beliben als mit CountSurfaces die Anzahl der Surfaces im Großen Mesh zu bestimmen und dan Surface für Surface durchtesten ob der
zurück gegebene Handle/Zeiger zu der Textur mit dem Namen gehört.

Kann 3d world studio kein TextureBlend setzen ?

Denn wenn du diese Operation jedes mal bei Programmstart oder Level wechsel machen musst ist das schon eine zu zeitaufwändige Sache.

Schreib doch mal den Hersteller an ob er die Funktion nicht integrieren kann.
Oder schreib dir ein Tool welches TextureBlend Werte in dein B3D File einbindet, SaveB3D Routinen gibt es auf der offiziellen Seite.
antome

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group