| |||||||
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) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 1.197
| Away3D: Plane Material wird nicht geupdated
Das Problem: Plane bekommt ein neues Material, das wird aber nicht sofort angezeigt, sondern erst, wenn sich irgendwas am View3D ändert, sei es die Position der Camera, oder die Fenstergröße des Flash Players. Der Aufbau ist wie folgt: View3D <- ObjectContainer3D <- Plane View3D wird mit ENTER_FRAME gerendert. Ich vermute, daß ich irgendwie manuell updaten muß, damit das Material gleich angezeigt wird?
__________________ EDV = Ende Der Vernunft |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 1.197
|
Naja, ich gehe eigentlich davon aus, daß die Problembeschreibung so allgemein und einfach ist, daß es ohne Code Hinweise geben kann. "Ne, muß man grundsätzlich nicht extra updaten." Wäre z.B. schon eine brauchbare Antwort. Wenn ich den ganzen Code poste, liest sich das hier eh keiner mehr durch. Ich habe inzwischen auch folgendes gefunden: forceUpdate : Boolean Defines whether the view always redraws on a render, or just redraws what 3d objects change. Möglicherweise wird der view nicht neu gezeichnet, weil das MaterialEvent nicht über das DisplayObject3D hinausgeht? Probiere ich heute abend mal aus.
__________________ EDV = Ende Der Vernunft |
| | |
| | #4 (permalink) |
| Flasher Registriert seit: Aug 2010 Ort: Stuttgart
Beiträge: 360
|
Eine allgemeine Problembeschreibung kann man nur schlecht lösen! Und wenn ich sage: "Ne, muss man nicht extra updaten", löst das ja noch lange nicht dein Problem... Aber nun gut... -.- Noch eine Zwischenfrage, da die auch etwas zur Sache tut: Welche Version von Away3D nutzt du? In meiner aktuellen App (Away3D 4.0) wird das Zuweisen des Materials problemlos durchgeführt, auch ohne forceUpdate oder Änderung des 3D-Objekts. Wenn du eine ältere Version verwendest, die noch Software-Rendering nutzt, schätze ich dass du das Problem schon selbst erfasst hast. Dort wird nämlich wirklich nur neu gerendert, wenn es notwendig ist. Und das Zuweisen eines Materials stellt allein scheinbar noch nicht diese Notwendigkeit dar. Liebe Grüße!
__________________ Erwähne NIEWIEDER das Wort "Klickdummy"! |
| | |
| | #5 (permalink) | |
| Neuer User Registriert seit: Jul 2003
Beiträge: 1.197
| Das kommt ganz auf das Problem an... mit meinem Problem ging es - wie vermutet. forceUpdate ist erstmal die Lösung. Danach hatte ich ja schon in der Problembeschreibung gefragt, es war schon eine Frage, die nicht unbedingt von Code unterstützt werden musste. Zitat:
![]() Hm... bin mir gar nicht sicher. In den .as Dateien finde ich keinen Versionshinweis. Ich werde mir nachher einfach mal die aktuelle Version besorgen. 4.0 ist aber noch nicht stabil? Kann man die einfach in der Bibliothek updaten oder sind dafür auch Änderungen im Code notwendig (mal abgesehen von Erweiterungen, die man ja eh nicht benutzt hat)?
__________________ EDV = Ende Der Vernunft | |
| | |
| | #6 (permalink) |
| Flasher Registriert seit: Aug 2010 Ort: Stuttgart
Beiträge: 360
|
Ja, Away3d 4.0 unterscheidet sich recht stark zu der 3.6er Version, es wird also sicherlich Umstellungen im Code geben müssen - deswegen glaube ich kaum, dass es geschickt wäre, mitten in einem Projekt umzuschwenken... Unmöglich ist es deswegen aber nicht ![]() Was heißt "stabil"... ist nicht mehr alpha! Ich render hier 120.000 Dreiecke bei vierfachem Antialiasing mit konstanten 60 FPS inklusive Umfärben, Environment-Mapping, etc. Bisher nie Probleme bekommen. An einigen Stellen erscheint mir die API jedoch als "unfertig", ich habe es bis heute nicht hinbekommen, einem ColorMaterial ne normalMap hinzuzufügen und bekomme auch im Away3D-Forum prompt keine Antwort darauf. Ansonsten ist die 4.0 schon richtig fett!
__________________ Erwähne NIEWIEDER das Wort "Klickdummy"! |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 1.197
|
Also mein Projekt ist nicht so komplex. Bisher gibt es nur ein View3D, Planes und natürlich Camera. Ich werde es einfach mal ausprobieren. Eine Frage noch: Scene3D hat keine richtige DisplayList, richtig? D.h. Events von darin enthaltenen Objekten bubblen nicht nach oben durch... Ist es für die Performance egal, ob ich ganz oben einen EventListener setze, oder einen an jedes einzelne Object3D? Wird bei mir wohl nicht so ausschlaggebend sein, interessiert mich nur...
__________________ EDV = Ende Der Vernunft |
| | |
| | #8 (permalink) |
| Flasher Registriert seit: Aug 2010 Ort: Stuttgart
Beiträge: 360
|
Hey. Prinzipiell ermöglicht jeder ObjectContainer3D (also auch die Scene3D) die Nutzung klarer Hierarchien. (Nicht verwechseln mit DisplayList, das ist eine Anzeigeebene des Flash-Players, darauf wird in der 4.0er Version gar nicht mehr zugegriffen zum Rendern) Wie es sich genau mit dem EventBubbling verhält kann ich dir nicht sagen, da ich bisher (aufgrund der Anwesenheit von nur einem Objekt), meine Eventlistener direkt auf die Stage gelegt habe (Aber pssst!) Zum Thema EventListener hinzufügen vertrete ich allerdings sowieso die Meinung - und die ist unabhängig von Scene3D oder ähnlichem - eine Listener gehört nur an ein Objekt, welches auch wirklich Events erwartet. Auch wenn man mit einem Listener auf einen Container vielleicht ein paar Listener spart und stattdessen eben eine target-Abfrage macht, ich finde das ist ein ganz schlimmer unlesbarer Programmierstiel. Dann lieber ein Listener mehr, dafür sauberen Code, und wenig böse Überaschungen ![]() Was die Performance angeht, sind die EventListener bei 3D-Anwendungen sowieso eher das geringere übel, natürlich aber nie zu vernachlässigen. Vielleicht probier ich das mit dem Bubbling kommende Woche mal nach Feierabend aus irgendwann Liebe Grüße!
__________________ Erwähne NIEWIEDER das Wort "Klickdummy"! |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Away3D - MouseEvent über einer Plane (beinhaltet ein TextFiled als Material)?? | JoeS | ActionScript 3 | 3 | 10-01-2011 15:11 |
| Away3d - Rahmen wird in der Rückansicht nicht angezeigt | denniz | ActionScript 3 | 1 | 15-12-2010 01:16 |
| Away3D - Model nimmt Material nicht | denniz | ActionScript 3 | 4 | 01-12-2010 19:03 |
| viewport.containerSprite als Material für plane | MisterDan | 3D | 0 | 27-09-2009 22:56 |
| away3D: Material zur Laufzeit ändern | jacquesr | 3D | 0 | 02-09-2008 07:59 |