2D-Grafik schlecht für 3D-Performance??

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

x-pressive

Betreff: 2D-Grafik schlecht für 3D-Performance??

BeitragDi, Dez 16, 2003 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe gerade einen Thread im englischen Forum gelesen, in dem über diverse Window-GUIs diskutiert wird, die man unter B3D nutzen kann. Einige meinen aber, das es die Performance negativ beeinflusst, da die Windows mittels 2D-Befehlen gezeichnet werden.

Ist da was dran? Sollte man 2D-Grafik und 3D-Grafik nicht mischen? Und wenn dem so ist, wie würde mann dann beispielsweise ein HUD-Display oder eine Score-Anzeige in einem 3D Game realisieren? Question
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
 

INpac

BeitragDi, Dez 16, 2003 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
klar, wenn du eine sehr komplexe (aber wahrscheinlich dann eine sehr genaue und leistungsestarke, flexible) Gui verwendest, die ja ständig alle Gadgets auf MouseOever tec. überprüfen muss, zieht dass schon manchmal deine fps ein bischen nach unten. Aber damit muss man leben - im Moment gibt es auch noch keine Gui die etwa auf 3D-Sprites basiert, wobei die dann sicherlich genauso lahmen würden. Befehle wie Plot, Line, und Oval sind lahm. Als Ersetz kannst du bei geradeverlaufenden Linien zB mit Rect ein 1pixel breites/hohes rechteckt zeichnen, denn rect arbeitet schneller als Line, da es keinen Vektor gibt.
Images werden schneller als Rects , Ovals, Lines, Punkte etc eingezeichnet.

Also, wenn du ein HUD in deinem Egoshooter zB mit Image einzeichnest wird das sicher keinen Speed kosten, das ist Quatsch, es sei denn du machst zB. 2D-transparenz.
Wenn du trotzdem transparenz haben willst, benutze dann 3D-sprites die du an die Kamera hängst (setze als parent die Kamera!), und die Renderorder auf -1 setzt (Entityorder muman,-1), dann wird es immer als letztes gerendert, sonst kann das Sprite hinter andren Objekten verschwinden. Dann musst du noch das sprite etwas nach vorne bewegen, so zB um 1.01 - fertig.
Dazu gibts dann ganze Libs, zB. SpriteControl, die dir 2D-Images automatisch in 3D-Sprites beliebig wie mit DrawImage in dein Bidl zeichnen, musste mal auf www.blitzbasic.com gucken.

TheShadow

Moderator

BeitragDi, Dez 16, 2003 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe selbst eine GUI gecodet... Das läuft gleichschnell unter BB2D und BB3D

http://www.blitzbasic.com/gallery/pics/94.jpg

Da kann man sogar eine 3D-Kamera in ein Fenster setzen (oder sogar mehrere Kameras) - wärend z.B. ein Fenster im Hintergrund 3D-Animationen macht, kanns du im vorderen Fenster sich frei bewegen, Menüs aufklappen, Fenster bewegen etc...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

x-pressive

BeitragDi, Dez 16, 2003 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht cool aus! Kann man sich den Code ansehen, oder ist das 'Geheimsache'? Wink
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

Vertex

BeitragMi, Dez 17, 2003 18:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Das liegt einzich und allein am Windows GDI. GDI ist sehr lahm, deswegen
wurde früher fast ausschließlich unter DOS Spiele programmiert, da es noch kein
DirectX gab. Blitz holt sich vom Surface den Devicecontext, nimmt bei
Text z.B. die API-Funktion TextOutA von der GDI32 Library, und zeichnet
damit in das Surface sprich Back-, Front-, Image-, oder Texturbuffer ein.
Folge das ist sau lahm. Deswegen soll man Bitmapfonts bevorzugt einsetzen,
da diese diese von der Grafikkarte und nicht von dem GDI eingezeichnet
werden.
mfg olli

x-pressive

BeitragMi, Dez 17, 2003 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Zwei Fragen dazu:

1. Für welche 2D-Befehle trifft denn das ausser Text noch zu? Wenigstens könnte man diese dann nach Möglichkeit vermeiden.

2. Gibt es ein Tutorial über Bitmap Fonts und wie man diese nutzt?
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

TheShadow

Moderator

BeitragMi, Dez 17, 2003 19:38
Antworten mit Zitat
Benutzer-Profile anzeigen
also bei mir ist text schnell - habe testweise eine liste mit 100000 einträgen gemacht - konnte butterweich scrollen - verständlicherweise soll man nur sichtbaren bereich zeichnen - und auf die paar texte kommt es nicht drauf an...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group