Sprites verschmelzen möglich ?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Omenaton_2

Betreff: Sprites verschmelzen möglich ?

BeitragMi, Jul 11, 2007 10:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Kennt jemand einen (einfachen) Weg um 2 Sprites zu Einem zu vereinen ?
2 gleich große Quadrate, die direkt, passend nebeneinander stehen sollen zu Einem werden, aber so, daß die Texturierung beibehalten werden kann.
Beispiel, Linke Sprite ist ein "1" und rechte eine "2", dann soll daraus eine "12" werden. Wichtig ist, daß es ein Entity wird.
 

Dreamora

BeitragMi, Jul 11, 2007 10:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Indem du mittels createmesh ein eigenes mesh machst, 2 quads erzeugst und das linke mit der 1 textur belegst und das rechte mit der 2 texture.
musst einfach die Texturkoordinaten beim erstellen entsprechend angeben.

Nachteil: 2 Surfaces, bringt dir also rein speedmässig nichts, speziell da du jetzt auch noch das "camera ausrichten" manuell machen musst.



Alternativ: Pivot erzeugen, an position von "1" bewegen, 1 als auch 2 an das Pivot parenten und künftig das pivot statt die sprites nutzen ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Jul 11, 2007 10:15
Antworten mit Zitat
Benutzer-Profile anzeigen
ql:AddMesh und ähnliches (steht unten angegeben) wäre zu benennen. Ansonsten kannst du dir auch die ''Sprites'' selber machen, indem du mit ql:AddVertex, ql:AddTriangle usw. hantierst. Dann hättest du nur ein Mesh und nur ein Surface... Du kannst dir dazu auch meine Draw3D (im Codearchiv) anschauen, da habe ich die Bitmapfonts auch so gemacht.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

Dreamora

BeitragMi, Jul 11, 2007 10:18
Antworten mit Zitat
Benutzer-Profile anzeigen
es wird bei 2 Texturen niemals nur 1 Surface geben.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Jul 11, 2007 10:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, ich weiß doch. Very Happy Habe ja auch ''... Ansonsten ...'' geschrieben. Ist ein zweiter Vorschlag es mit Quads zu machen. Wie du auch beschrieben hast. Sollte aber klar sein, dass dann alle Zahlen auf nur einer Textur sein müssen. Deine Beschreibung ist dabei ausführlicher wegen Texturkoordinaten angeben...
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

biggicekey

BeitragMi, Jul 11, 2007 10:24
Antworten mit Zitat
Benutzer-Profile anzeigen
nur eine schlechte idee und wohl auch nicht echtzeittauglich, aber man könnte immer noch in einem buffer die beiden texturen nebeneinander zeichnen, ein neues image machen und dieses als textur nehmen. -> 1 textur -> 1 surface
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller
Nothing more to register - you've cleaned us out![/size]

Silver_Knee

BeitragMi, Jul 11, 2007 10:30
Antworten mit Zitat
Benutzer-Profile anzeigen
soweit ich gehört habe bekommen neue grafikkarten teilweise probleme mit texturen die nicht quadratisch sind was genau dann der fall wäre....
 

Dreamora

BeitragMi, Jul 11, 2007 10:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Jepp
Drum am besten von anfang an auf Sprites verzichten, alle Zahlen 0-9 auf eine quadratische 2er Potenztextur und sich ein Singlesurface System dafür schreiben.
Je nach gewünschter Anwendung kann man aber auch gleich schauen ob man nicht ein "Bitmapfont" System (oder Texturefont system wohl in dem Falle) schreiben / nutzen will.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Omenaton_2

BeitragMi, Jul 11, 2007 12:11
Antworten mit Zitat
Benutzer-Profile anzeigen
biggicekey hat Folgendes geschrieben:
nur eine schlechte idee und wohl auch nicht echtzeittauglich, aber man könnte immer noch in einem buffer die beiden texturen nebeneinander zeichnen, ein neues image machen und dieses als textur nehmen. -> 1 textur -> 1 surface


Ja, das war das erste was ich versucht habe, noch vor mehr als 1 Monat, als ich die "Schusszahleffekte" für die getroffenen Objekte gemacht habe.
Das hat nicht richtig geklappt, wieso, steht in meinem damaligen Beitrag hier:
https://www.blitzforum.de/foru...highlight=


Wie gesagt, hat bis vorkurzem meine Lösung gut funktioniert. Die Zahlen sahen gut aus und waren genau da wo sie sein sollten und drehten sich als Sprites schön artig Richtung Kamera.
Aber seit 1 Woche habe ich meine statische Objekte (Asteroiden) auch "animiert", also sie können sich um die eigene Achse drehen und/oder auch noch vorwärtsbewegen.
Wenn sich nun so ein Asteroid plötzlich seitwärts von mir (Raumschiff, freie 3. Person Kamera) befindet, dann gibt es ein Problem. Die Zahlen die aus mehr einem Ziffer (Sprites) bestehen drehen sich zu mir, aber da ihre POsition sich wegen Drehung des Mutterobjektes (Asteroid) verdreht/verschoben hat, wird eines der Sprites etwas hinter dem Anderen gezeichnet, sie überlappen sich.

Es gibt mehrere Lösungsansätze (habe 3 gefunden), alle haben ihre Vor- und Nachteile.
Ich könnte natürlich versuchen die Positionsverschiebung der Sprites zu kompensieren, sie neu setzen.
Ich habe auch eine 2D Methode ausgearbeitet mit Kameraprojektion, wo ich mit 2D DrawImage arbeite. Ich werde heute Abend diese Sache weiterverfolgen. Dabei gibt es aber die Schwierigkeit, daß diese 3D - > 2D Kameraprojektion nur bei fest stehenden , 1 Person Kamera gut funktioniert, bei 3. Person, frei bewegbaren Kamera wo sich alles (Kamera Winkel, Entfernung, Zoom, etc) ständig ändert muß man Anpassungen machen.

Am aller, aller einfachsten wäre es für mich, wenn ich die gesamte Zahl nicht aus mehreren Sprites, sondern aus 1 bestehend hätte, dann müßte ich gar nichts ändern, meine jetztige Methode würde funktionieren. Deswegen überlege ich, ob ich nicht irgendwie doch aus den 2-4 Ziffern (zusammen ergeben sie Zahl, den Damage) die einzelne Sprites sind, eine eizige machen könnte.

Und ich möchte schon wenn es irgendwie geht bei Sprites bleiben, weil sie schön schnell, eifnach sind und sich wie gewünscht immer automatich in die Kamera drehen.
 

Omenaton_2

BeitragFr, Jul 13, 2007 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe die Schusszahleffekt Umstellung inzwischen abgeschlossen.
Ich habe die Methode der 2D Darstellung basierend auf Kameraprojektion gewählt.
Leider ist die Positionierung der Zahlen nicht mehr so genau (bei Vertikalen schon, nur bei Horizontalen paßt es icht so gut) wie bei der früheren, reinen 3D Methode, aber dafür gibt es keine Überlappungen mehr und die Ziffern sind immer gleich groß und sind immer gut zu sehen, da sie auf die 3D Grafik draufgezeichnet werden. Der dazugehörende Code ist auch deutlich kürzer.

Danke für die Tipps ! Wenn ich das nicht mit der 2D Methode gemacht hätte, dann hätte ich es wie auch Dreamora das angedeutet hatte mit Erschaffen 2 (oder mehr) Quads und dann zusammen addieren als ein Mesh machen müssen.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group