3D GUI mit Sprites

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

KyroMaster

Betreff: 3D GUI mit Sprites

BeitragMo, Nov 01, 2004 15:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich überlege mir ob ich mein Menüsystem und HUD mit 2D oder mit 3D über Sprites realisieren soll. Für die 3D Variante brauche ich jedoch noch ein paar Infos.

Wenn ich meine Menüelemente als Sprites lade, wo soll ich diese denn dann auf der Z-Achse positionieren.D.h. wenn ich meine Kamera auf 0,0,0 habe müssen die Sprites dann auf 0,0,1 sein oder wie?Oder ist das egal wenn ich den Z-Order auf -1 setze.

Wenn ich ein Sprite dann genau so groß haben möchte wie der Bildschirm muss ich ihn ja auch entsprechend der Kamerasicht skalieren.Wie rechnet man das dann aus (mit Kamerawinkeln?).

Danke für Eure Hilfe, ich bin aber nicht(!) an vorgefertigten bibliotheken interessiert, weil ich es einfach besser finde die Materie selbst zu verstehen 8)
Vielen Dank für Eure Hilfe!!!
 

INpac

BeitragMo, Nov 01, 2004 17:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst das Sprite an die Position 0,0,graphicsWidth() setzen und das Sprite auf Breite in ixel und Höhe in Pixel skalieren.
Das wäre des 1. Schritt, die Positionierung an 2dX und 2dY hängt davon ab, wo der Mittelpunkt des Sprites liegt, musste dir dann selbst herleiten, ist ganz einfach Smile
 

KyroMaster

BeitragMo, Nov 01, 2004 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Edit: Hat sich erledigt, ich hab ein bisschen überlegt und es verstanden Smile
Vielen Dank für Eure Hilfe!!!
 

KyroMaster

BeitragMo, Nov 01, 2004 19:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mir gerade ein kleines Testprogramm geschrieben:

; Sprite-Testprogramm


Graphics3D 1024,768
SetBuffer BackBuffer()

Global Camera = CreateCamera()
CameraRange Camera,1,GraphicsWidth()

Global Sprite = LoadSprite("sprite.bmp",1)
If Sprite = 0 Then RuntimeError "Konnte Sprite nicht laden"

PositionEntity Sprite,0,0,GraphicsWidth()
ScaleEntity Sprite,1024,768,1
EntityOrder Sprite,-1

While Not KeyHit(1)
UpdateWorld
RenderWorld
Flip
Wend

leider wird auf dem Bildschirm nichts angezeigt Sad
An was könnte das liegen?
Vielen Dank für Eure Hilfe!!!

Thoem

BeitragMo, Nov 01, 2004 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil PositionEntity sprite,0,0,GraphicsWidth() das Sprite an die 3D-Position 0,0,768 positioniert. Probier mal Positionentity sprite,0,0,10, oder kleinere Werte.

Zitat:
Du musst das Sprite an die Position 0,0,graphicsWidth() setzen und das Sprite auf Breite in ixel und Höhe in Pixel skalieren.


Diese Aussage ist totaler Quatsch...
Thoem...
 

Ava

Gast

BeitragMo, Nov 01, 2004 20:12
Antworten mit Zitat
Thoem hat Folgendes geschrieben:
Zitat:
Du musst das Sprite an die Position 0,0,graphicsWidth() setzen und das Sprite auf Breite in ixel und Höhe in Pixel skalieren.


Diese Aussage ist totaler Quatsch...


lol ? ... warum soll diese Aussage totaler Quatsch sein ?!
Natürlich kann man sich auch andere Werte errechnen mit denen das klappt, aber so klappt das auf jedenfall auch! Exclamation Rolling Eyes
 

KyroMaster

BeitragMo, Nov 01, 2004 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok ich hab aus Versehen SlaceEntity mit ScaleSprite verwechselt.

Mittlerweise hab ich es verstanden, man kann ja jeden beliebigen Z-Wert setzen, muss das Sprite jedoch entsprechend dem Kamerawinkel und Seitenverhältnis der Auflösung skalieren.
Vielen Dank für Eure Hilfe!!!
 

INpac

BeitragDi, Nov 02, 2004 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Thoem hat Folgendes geschrieben:

Diese Aussage ist totaler Quatsch...


lol ... kein kommentar

PS: wichtig ist auch, dass wenn höhere auflösung als 800x600 verwendet werden, das Sprite außerhalb der CameraRange gesetzt werden kann!

Thoem

BeitragDi, Nov 02, 2004 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Im Grunde, ist die Aussage
Zitat:
Du musst das Sprite an die Position 0,0,graphicsWidth() setzen und das Sprite auf Breite in ixel und Höhe in Pixel skalieren.

ja korrekt. Aber es wird fälschlicherweise der Eindruck erweckt, das die Positionentity-Koordinaten irgendetwas mit 2D-Bildschirmkoordinaten zu tun haben. Welchen Grund sollte es geben, die Z-Position eines Sprites derartig weit in den Raum zu verlegen?
Was ist, wenn die Bildschirmauflösung auf 1280x1024 Pixel gestellt wird?? Dann hängt das Sprite ziemlich weit von der Kamera entfernt im Raum herum, oder? Was ist nun weiter, wenn die Kamerareichweite z.B.nur 100 betragen soll? Schätze, dann gibt's bald neue Themen mit dem Titel: Mein Sprite ist nicht mehr zu sehen Smile
Thoem...

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group