2D-Grafik schlecht für 3D-Performance??
Übersicht BlitzBasic Blitz3D
x-pressiveBetreff: 2D-Grafik schlecht für 3D-Performance?? |
Di, Dez 16, 2003 20:27 Antworten mit Zitat |
|
---|---|---|
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? |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
INpac |
Di, Dez 16, 2003 20:48 Antworten mit Zitat |
|
---|---|---|
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. |
||
TheShadowModerator |
Di, Dez 16, 2003 21:52 Antworten mit Zitat |
|
---|---|---|
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 |
Di, Dez 16, 2003 22:09 Antworten mit Zitat |
|
---|---|---|
Sieht cool aus! Kann man sich den Code ansehen, oder ist das 'Geheimsache'? | ||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
Vertex |
Mi, Dez 17, 2003 18:23 Antworten mit Zitat |
|
---|---|---|
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 |
Mi, Dez 17, 2003 18:40 Antworten mit Zitat |
|
---|---|---|
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 |
TheShadowModerator |
Mi, Dez 17, 2003 19:38 Antworten mit Zitat |
|
---|---|---|
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 |
Übersicht BlitzBasic Blitz3D
Powered by phpBB © 2001 - 2006, phpBB Group