Text auf Textur

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Stephan

Betreff: Text auf Textur

BeitragMi, Mai 31, 2006 13:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

warum funktioniert das nicht, wenn ich eine Textur mit Flag 2 erstelle, also das sie transparent ist, hinterher in den Texturebuffer einen Text zu zeichnen?

Ich will damit ein Sprite erstellen, was wie in der 3D-Welt herumfliegende Buchstaben aussieht.

vielen Dank im Voraus

MfG
Stephan
 

coldie

BeitragMi, Mai 31, 2006 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie zeichnest du den text den ein?
 

Dreamora

BeitragMi, Mai 31, 2006 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt da leider die verschiedensten Probleme.
Es gibt beim Zeichnen in einen Texturbuffer mit einem Text von daher keinerlei garantie das es danach geht ...

Warum wissen wir bis anhin nicht ... wir waren nicht in der lage einen sinnvollen Grund dafür zu finden, ausser das Treiber, Grafikkarte und andere Dinge einen Einfluss darauf haben ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

coldie

BeitragMi, Mai 31, 2006 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
er meinte also tatsächlich einen Text als TEXT in den Texturbuffer zu zeichnen???
Ich dachte man kann nur Pixel in einen texturbuffer zeichnen...
 

Stephan

BeitragMi, Mai 31, 2006 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist nur bei Flag 2 und Flag 4, bei Flag 1 gehts perfekt aber dann hab ich ja keine Transparentsfarbe. Habs schon auf 3 verschiedenen Rechnern getestet und es ging nirgends. Sad

Einzeichnen tu ich den Text mit Setbuffer Texturebuffer(Handle) und dann Text X,Y,Txt$,1,1.
 

Dreamora

BeitragMi, Mai 31, 2006 14:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist bekannt, das dann das Problem auftritt ...
Es gibt jedoch keine wirkliche begründung, weswegen man darauf verzichten und eine richtige Bitmap Font nutzen sollte ...

Vermutungen gehen dahingend das die Windows Schriftglättung etc einfluss nehmen und jenste andere Dinge ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Stephan

BeitragMi, Mai 31, 2006 14:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibts da vielleicht eine lib (OpenGL, etc.) mit der sich das umgehen lässt?

aMul

Sieger des Minimalist Compo 01/13

BeitragMi, Mai 31, 2006 15:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Schreibe deinen Text doch auf den Backbuffer, und copier in mit copyrect() in den Texturebuffer. Ist auch für Echtzeit schnell genug(obwohl vorberechnen sinnvoller wäre)

MfG
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver
 

Zoppo_1

Betreff: Ich habe das so gelöst

BeitragDo, Jun 01, 2006 0:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Function KW_name_setzen(ub_x,ub_y)
Local LOK_tex_buff,LOK_x,LOK_y
Local Lok_image
Local LOK_delta_x#,LOK_delta_y#

If KW_ansicht(ub_x,ub_y,8)>0 Then
FreeEntity KW_ansicht(ub_x,ub_y,8)
KW_ansicht(ub_x,ub_y,8)=0
EndIf

SetFont KW_Font1
LOK_x=StringWidth(KW_akt_bezeichnung)+2;-Len(KW_akt_bezeichnung)
LOK_y=FontHeight();+10

Lok_image=CreateImage(LOK_x,LOK_y)
SetBuffer ImageBuffer(Lok_image)

ClsColor 225,212,1
Cls
Color 150,0,0
Text 1,5,KW_akt_bezeichnung

LOK_delta_x#=512.0/Float(LOK_x)
LOK_delta_y#=64.0/Float(LOK_y)
ScaleImage Lok_image,LOK_delta_x#,LOK_delta_y#

LOK_tex_buff=CreateTexture(512,64)
SetBuffer TextureBuffer(Lok_tex_buff)

DrawImage Lok_image,0,0

SetBuffer BackBuffer()

KW_ansicht(ub_x,ub_y,8)=CreateCube()
EntityTexture KW_ansicht(ub_x,ub_y,8),Lok_tex_buff
PositionEntity KW_ansicht(ub_x,ub_y,8),KW_ansicht(ub_x,ub_y,5)+KW_ansicht_scale_x*.5,KW_ansicht(ub_x,ub_y,4)+10*KW_ansicht_scale_z ,KW_ansicht(ub_x,ub_y,6)+KW_ansicht_scale_y*.5
ScaleEntity KW_ansicht(ub_x,ub_y,8),LOK_x*5,LOK_y*5,.1

FreeTexture LOK_tex_buff
FreeImage Lok_image

End Function
 

Stephan

BeitragDo, Jun 01, 2006 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich könnte es fast etwas einfacher lösen wenn mir jemand sagt wieso die Flags 4 und 256 also 260 nicht zusammen funktionieren. Ich habe ein Image erstellt wo ich reinzeichne und dann alles mit Copyrect in die Textur kopiere. Nun ist aber das Problem, dass ich die textur immer neu masken muss nachdem das Image eingezeichnet wurde, weil die alten Alphawerte überschrieben werden. Da funktioniert es perfekt, ist aber ein Performanceproplem. (Ich erstelle sie dafür mit den Flags 2 und 256) Nun soll Flag 4 aber angeblich schwarze Flächen von allein nicht einzeichnen, was wiederum nur ohne Flag 256 funktioniert.

Was muss ich machen, dass die Textur mit Flag 256 erstellt werden kann und keine schwarzen Pixel eingezeichnet werden?
 

Dreamora

BeitragDo, Jun 01, 2006 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Kannst du nichts machen.

Die Flag 4 wird beim erzeugen auf die Pixel angewendet und ersetzt die schwarzen Pixel durch transparent. Das ist leider kein dynamischer Effekt, der darauf angewendet wird.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Stephan

BeitragDo, Jun 01, 2006 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann man die Transparenz nicht in dem Image speichern, sodass sie bei Copyrect immer mit kopiert wird?

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group