Text auf Textur
Übersicht

StephanBetreff: Text auf Textur |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie zeichnest du den text den ein? | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. ![]() Einzeichnen tu ich den Text mit Setbuffer Texturebuffer(Handle) und dann Text X,Y,Txt$,1,1. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gibts da vielleicht eine lib (OpenGL, etc.) mit der sich das umgehen lässt? | ||
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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_1Betreff: Ich habe das so gelöst |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kann man die Transparenz nicht in dem Image speichern, sodass sie bei Copyrect immer mit kopiert wird? | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group