| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| in the boondocks Registriert seit: Feb 2006 Ort: Augsburg
Beiträge: 3.496
| Stage3D und Auflösung (fullScreenRect)
Hi, ich bastel gerade etwas mit Away3d herum und da ist mir folgendes aufgefallen: Weil mir die Framerate jetzt schon fällt hab ich mir mal gedacht ich benutze stage.fullScreenRect (sollte wegen mouseLock ohnehin im Vollbild laufen) um die Fläche zu reduzieren und damit hoffentlich die Last zu verringern. Setz ich so die Auflösung auf 800x600 runter und wende das auch auf den view an, CHAOS!
Noch kurioser: Wenn ich die Auflösung des Systems von Hand mal wirklich auf 800x600 herunterstelle ist die Performance weit schlechter als bei voller Auflösung. Kann jemand was davon bestätigen? mfg sx //"broomstick" away3d 4 alpha, FP11.2 beta |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: May 2008
Beiträge: 109
|
Zum fullScreenSourceRect Problem kann ich nun nichts sagen, wenn du nur den Backbuffer beschneiden willst könnte setScissorRectangle helfen. Läuft Stage3D im Hard- oder Softwaremode und hast du enableErrorChecking in core.managers.Stage3DProxy auf false gesetzt? Das ErrorChecking zieht auch ganz gut an der Performance, in away4 von Haus aus aktiviert :-) |
| | |
| | #3 (permalink) | |
| in the boondocks Registriert seit: Feb 2006 Ort: Augsburg
Beiträge: 3.496
| Zitat:
( bringt da ein update auf die 11er auch was? ... eigentlich sollte der schon drauf sein is der 11er doppelconfused) - aber das errorChecking war tatsächlich an. Danke für den Tip. Damit hab ich nicht gerechnet. Das macht schon mal ein gutes Stück Luft nach oben. ![]() setScissorRectangle hat bei meinen ersten Experimenten ohne Framework eigentlich kaum was gebracht. Hattest du schon einen Fall, bei dem das von Vorteil war? Was die performance angeht hätte ich da noch ein paar Fragen. Hast du dich mit Away3D näher befasst? Ich hab zuvor noch keine Version verwendet und die Referenz ist ausgesprochen spärlich ... ich fürchte fast ich muss mich da anders ans Werk machen. Geändert von shin10 (28-01-2012 um 11:44 Uhr) | |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Mar 2004 Ort: Hamburg
Beiträge: 77
|
Stage3D (auch im Fullscreen) ändert nie deine Bildschirmauflösung. Sprich du hast nie gezoomte Pixel, so wie du es vom normalen Flash Fullscreen gewohnt bist. Wenn du jetzt Stage3D auf 800x600 setzt, hast du eben nur einen Teil deines Bildschirms benutzt... Die GPU ist auch ziehmlich mächtig, d.h. Auflösung runterschrauben bringt nur bedingt etwas. Reduzier lieber die Anzahl der Polygone, bzw. die drawCalls. |
| | |
| | #5 (permalink) |
| in the boondocks Registriert seit: Feb 2006 Ort: Augsburg
Beiträge: 3.496
|
Hi Lars, ja das hab ich soweit auch festgestellt. Ich wunder mich nur drüber, denn ich meine, dass ich vor ein paar Jahren bei fullScreenRect am analogen Bildschirm immer das typische "kaTSCHLUNG"-Umschalten der Auflösung hören konnte. Wahrscheinlich spielt mir da nur meine Erinnerung Streiche, aber sei es drum. Was die drawcalls betrifft hab ich da noch keine Ahnung, wie das intern von Away3D geregelt wird. Ich weiß nur, dass ich vermutlich eher mehr als weniger brauche. So was ich bisher gelesen habe ist es ja bspw. nicht von Haus aus möglich einzelne Objekte mit einem Glow auszustatten. Aus meiner 3DS Max-Phase vor über einem Jahrzehnt weiß ich noch, dass das alles über Postprocessing funktioniert und ich daher die Szene mehrfach rendern muss. (Nur wo hack ich mich da am geschicktesten rein? )Dann sind da noch andere Sachen - wie siehts zum Bsp. mit Lens Flare und Streak etc. aus. Cockpit Scheibe mit Staub, Kratzern und Dreck nur im Gegenlicht? Render ich ein HUD über GPU oder der Einfachheit halber besser über die normale DisplayList? Dann sind da noch viel simplere Sachen. Erwähnt seien da mal animierte Texturen z. B. bei Explosionen. VideoMaterial ist ein voller Griff ins Klo. Ich denke mal, dass man das auch am Besten mit einem Spritemap löst. Ob AnimatedBitmapMaterial das so macht, oder auch wieder Map um Map auf die GPU lädt und damit alles zum Stocken bringt weiß ich aber gerade noch nicht. Die Refernz wie gesagt ist ja sehr mager - vielleicht kennt da einer von euch aussagekräftigere Quellen oder weiß schon Bescheid. mfg Michael Hab mich schon lange gefragt ob du hier im Forum rumrennst. Tausend Dank für ND2D. Wollte ich dir schon laaaaange sagen! |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Mar 2004 Ort: Hamburg
Beiträge: 77
|
Es gibt Filter für Away3D, schau dir mal den hier an: https://github.com/away3d/away3d-cor...oomFilter3D.as Und: Danke! Freut mich immer, wenn die engine jemand benutzt |
| | |
| | #7 (permalink) | |
| in the boondocks Registriert seit: Feb 2006 Ort: Augsburg
Beiträge: 3.496
| Zitat:
Oder irgendwie die Möglichkeit den vertex shader Werte objekt/material-abhängig in ein attribut register schreiben zu lassen... Zumindest hab ich das so verstanden, was ich bisher über AGAL gelesen habe. Aber ich versteh momentan noch nicht wirklich, wie Away3D das alles durchläuft. Geändert von shin10 (01-02-2012 um 06:13 Uhr) | |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Mar 2004 Ort: Hamburg
Beiträge: 77
|
Das müsstest du in mehreren Render-Passes machen. Standardmäßig hat Away3D nur einen meine ich. 1. Schalte alle Lichter aus, alle Texturen auf schwarz, bis auf die Objekte die glühen sollen. Das ganze renderst du auf eine Textur #1. 2. Lichter wieder an, Texturen auch wieder. Szene auf eine andere Textur #2 rendern. 3. Im letzten Schritt Textur #1 und #2 in einen Shader packen und rendern. Dabei kannst du Textur #1 blurren und additiv drüberlegen. Hier ist ein guter Artikel dazu: Gamasutra - Features - Real-Time Glow Away3D hat bestimmt eine renderToTexture Methode und den Shader für Step 3 müsstest du wohl schreiben. |
| | |
| | #9 (permalink) |
| in the boondocks Registriert seit: Feb 2006 Ort: Augsburg
Beiträge: 3.496
|
Ja, so in der Art dachte ich mir das. Allerdings rechnet man so natürlich das doppelte an Geometrie (weshalb mir das mit Attribut Registern lieber wäre, sofern das überhaupt möglich ist). Naja mal sehen. Ich find mich in Away3D einfach noch nicht zurecht. renderToTexture gibt es soweit ich bisher weiß nicht direkt. Das wird auch irgendwie über die Materialien gemacht ... ansonsten müsste ich das einfach so über den Stage3DProxy machen schätze ich ... ![]() Würde auch gar nicht so sehr hier rumnölen, aber ich bekomm keine Anmelde-mail vom Away3D Forum zurück. |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Mar 2004 Ort: Hamburg
Beiträge: 77
|
Du kannst ja mal nach Single-Pass-Glow suchen, evtl. gibt's da eine Möglichkeit. Ich kenne leider keine. Für einen ordentlichen Glow, wirst du glaube ich nicht drumherum kommen die Szene zwei mal zu rendern. Der Schlüssel zu deinem Glow liegt in dem BloomFilter3D. Schau dir das dort mal genau an. Es werden dort auch mehrere Rendertargets benutzt. Erst blur, dann brighten und compositing: private var _blurTask : Filter3DBlurTask; private var _brightPassTask : Filter3DBrightPassTask; private var _compositeTask : Filter3DBloomCompositeTask; |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| FDT5 und Stage3D | Ouroborus23 | Zusatzprodukte | 3 | 21-11-2011 10:13 |
| FlashDevelop, Flex SDK 4.5.1, Flash Player 11, Starling bzw Stage3D | szylla | Flex programmieren | 7 | 03-11-2011 15:13 |
| Flash11 (Stage3D) - 3D-Editor? | PF-Consulting | 3D | 1 | 02-11-2011 09:31 |
| playerglobal11_0.swc enthält kein Stage3D ...? | Mr.Twister | Flex allgemein | 4 | 08-10-2011 19:07 |
| auflösung ??? | chriss | HTML und CSS | 4 | 10-10-2002 11:11 |