Hilfe

LoadTexture

B3D

Aufruf

textur% = LoadTexture (datei$, modus%)

Parameter

datei$ Name der Grafikdatei (evtl. mit Pfad)
modus% Optionale Textur-Einstellungen:
+1=Color
+2=Alpha
+4=Masked
+8=Mipmapped
+16=Clamp U
+32=Clamp V
+64=Spherical Reflection Map
+128=Cubic Environment Mapping
+256=Speichert Textur in VRAM
+512=HighColor-Textur


Rückgabewert

Identität der geladenen Textur. Wenn eine Null zurückgeliefert wird, dann konnte die Grafikdatei nicht geladen werden.


Beschreibung

Diese Anweisung lädt eine Textur und liefert danach die Identität zurück. Diese Textur kann danach auf beliebige Objekte mit dem Befehl EntityTexture gezogen werden.

BlitzBasic kann BMP-, JPG- und PNG-Bilder laden. Außerdem können seit V 1.97 DDS-Texturen geladen werden.

Der optionale Parameter "modus%" stellt Textureffekte ein. Mehrere Effekte können kombiniert werden, indem die Zahlen addiert werden.

Hier eine kurze Beschreibung:
[1] Color Map = Die Textur wird so eingezeichnet wie man die sieht
[2] Alpha Map = Die Textur benutzt Alpha Map für Transparenz. Wenn Alpha Map nicht vorhanden ist, dann erscheinen dunkle Stellen transparenter.
[4] Masked = Schwarze Flächen werden nicht eingezeichnet.
[8] Mipmapped = für weite Entfernungen wird eine Textur mit weniger Details benutzt.
[16] Clamp U = Textur-Koordinate U wird fixiert.
[32] Clamp V = Textur-Koordinate V wird fixiert.
[64] Spherical Reflection Map = Reflektionseffekt
[128] Cubic Environment Mapping = Echtzeitreflektion
[256] Speichert Textur in VRAM = schneller
[512] Erstellt HighColor-Textur. So kann die Textur auch bei 16-Bit Farbtiefe weiterhin Alpha-Informationen enthalten.

Die Grafikkarte kann nur Texturen mit folgender Breite/Höhe verarbeiten: 1,2,4,8,16,32,64,128,256,512,1024. Wenn ein Bild eine andere Größe hat, dann wird es von BlitzBasic automatisch gestreckt. Dies bedeutet dann:
-Geschwindigkeitsverlust
-Unnötiger Speicherverbrauch
-Qualitätsverlust


Jede geladene Textur kostet ein Stückchen Grafikspeicher. Besonders ältere Rechner mit wenig Speicher können nicht so viele Texturen auf einmal im Speicher behalten. Das Bild kann auch nicht einfach in 16 oder 256 Farben abgespeichert werden - beim Laden wird es der Farbtiefe automatisch angepasst.



Zusatzinformation

Wenn eine Textur mit Flag 2 (Alpha) geladen wird, kommt es zu Problemen mit dem Z-Buffer. Die Texturen werden nicht mehr nach Kameraentfernung gezeichnet, sondern in der Erstellreihenfolge, wodurch eigentlich verdeckte Texturen sichtbar seien können.


Beispiel

Standardbeispiel:

Graphics3D 640, 480
SetBuffer BackBuffer()
camera = CreateCamera()
light = CreateLight()
RotateEntity light, 90, 0, 0
cube = CreateCube()
PositionEntity cube, 0, 0, 5
tex = LoadTexture("../media/b3dlogo.jpg")
EntityTexture cube, tex

While Not KeyHit(1)
   pitch# = 0
   yaw# = 0
   roll# = 0
   If KeyDown(208) = 1 Then pitch# = - 1
   If KeyDown(200) = 1 Then pitch# = 1
   If KeyDown(203) = 1 Then yaw# = - 1
   If KeyDown(205) = 1 Then yaw# = 1
   If KeyDown(45) = 1 Then roll# = - 1
   If KeyDown(44) = 1 Then roll# = 1
   TurnEntity cube, pitch#, yaw#, roll#
   RenderWorld
   Flip
Wend
End


Siehe auch

CreateTexture, EntityTexture, FreeTexture, LoadAnimTexture, RotateTexture, ScaleTexture, TextureBlend, TextureBuffer, TextureHeight, TextureName, TextureWidth

Übersicht 3D Grafik Texturen