1&1 DSL
Flashhilfe.de - Flash Community

Migration von Papervision3D 1.7 auf 2.0b [Flash 9]

Forum > Flash 3D > Migration von Papervision3D 1.7 auf 2.0b

 


AntwortenRegistrieren Seite1

 08.09.2008, 13:41 
Benutzerbild von niquito12
Beiträge: 901
Wohnort: Nether-Bavaria
Registriert: Jun 2008

Migration von Papervision3D 1.7 auf 2.0b
Grüße Gemeinde,

Ich habe hier in 1.7 MovieScene3D , dass im Konstruktor als Parameter den Container benötigt und jedes Objekt im eigenen Container rendert.

In 2.0b habe ich nur noch ein Scene3D das keinerlei Parameter benötigt. Wie bekomme ich nun die Scene3D in den beinhaltenden Container?

gruß der niquito
Qt! www.adrianslaboratory.net
 08.09.2008, 13:53Re1
Benutzerbild von niquito12
Beiträge: 901
Wohnort: Nether-Bavaria
Registriert: Jun 2008

Themenautor/in

Gerade selbst etwas dazu gefunden:

Es läuft jetzt über einen Renderer der über die Methode renderScene() die Szene , Kamera und den Viewport rendert.
renderer.renderScene(current_scene, current_camera, current_viewport);

Es wird nicht mehr die Kamera gerendert.

Meine 2. Frage wirft sich nun auf. Wie erstelle ich eine Kamera die auf ein Ziel (TARGET) zeigt? Wo übergebe ich den Punkt / das Objekt worauf es zeigt?
Qt! www.adrianslaboratory.net
 08.09.2008, 13:55Re2
Benutzerbild von derFloh
Beiträge: 981
Wohnort: ..::LAGE::..
Registriert: Apr 2006

hi

ActionScript:
1
2
3
scene = new Scene3D();
scene.addChild(meinObject);
renderer.renderScene(scene, camera, viewport);

oder was meinst du?

edit: da warst du schneller...


gruß
flo
www.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring
Geändert von derFloh am 08.09.08 um 13:57 Uhr

 
nicht sichtbar bei eingeloggten Mitgliedern
 08.09.2008, 14:54Re3
Benutzerbild von niquito12
Beiträge: 901
Wohnort: Nether-Bavaria
Registriert: Jun 2008

Themenautor/in

Du hast recht Flo, genau das hatte ich gesucht.

Recht starkes anderes Konzept in 2.0 aber der Renderer klingt gut.
Qt! www.adrianslaboratory.net
 08.09.2008, 15:05Re4
Benutzerbild von niquito12
Beiträge: 901
Wohnort: Nether-Bavaria
Registriert: Jun 2008

Themenautor/in

Ich habe vor 2.0b auf die Container ( also Sprites ) der Objekte Filter und ähnliches gelegt.
ActionScript:
1_pv3ditem.container.transform.colorTransform ...


Da jetzt in der Scene3D alles in einem Container gerendert wird habe ich das problem auf einzelne Objekte keinen Blur oder Colortransform mehr legen zu können. Gibt es da Abhilfe?
Qt! www.adrianslaboratory.net
 08.09.2008, 15:10Re5
Benutzerbild von niquito12
Beiträge: 901
Wohnort: Nether-Bavaria
Registriert: Jun 2008

Themenautor/in

Verflixt! Immer 5 Minuten nachdem ich verzweifelt gesucht habe finde ich es selbst heraus.

Gerade selbst rausgefunden, dass man nun für jedes DisplayObject3D "useOwnContainer" auf true setzen kann.
Qt! www.adrianslaboratory.net
 
nicht sichtbar bei eingeloggten Mitgliedern1&1 Webhosting
 08.09.2008, 15:24Re6
Benutzerbild von niquito12
Beiträge: 901
Wohnort: Nether-Bavaria
Registriert: Jun 2008

Themenautor/in

Und schon wieder der nächste Post.

Wenn ich bei meinem Objekt useOwnContainer  auf true setze und debugge sehe ich dass das container-Attribut immer noch auf "null" steht und ich deshalb ne nullpointer exception bekomme. Warum hat er obwohl uswOwnContainer auf true gesetzt ist immer noch keinen container?

ActionScript:
1
2
3
4
5
6
_item = new Plane( _material, 100, 100 );
            _item.useOwnContainer = true;
            _item.name = 'item'+i;
            _scene.addChild ( _item );            

            _item.container.transform.colorTransform = new ColorTransform(1,1,1,1,Math.random()*200,0,0);
Qt! www.adrianslaboratory.net
 08.09.2008, 15:33Re7
Benutzerbild von derFloh
Beiträge: 981
Wohnort: ..::LAGE::..
Registriert: Apr 2006

uff...
ich hoffe ja, dass du es gleich rausfindest... :)
das was du gerde machst, hab ich noch nicht probiert...
könnte es sein, dass dein plane nicht in der displayList ist, und du deswegen nicht drauf zugreifen kannst??? immerhin hast du es ja nur der scene angehangen...

mehr fällt mir gerade nicht ein...sorry

hoffe es hilft weiter
gruß
flo
www.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring
 08.09.2008, 15:43Re8
Benutzerbild von niquito12
Beiträge: 901
Wohnort: Nether-Bavaria
Registriert: Jun 2008

Themenautor/in

Diesmal fand ich keine Lösung. Der Fehlerursprung könnte schon daher kommen was du beschreibst. Nur _spritecontainer.addChild(_scene); Funktioniert nicht mehr, da _scene nun kein DisplayObject mehr ist, sondern nur noch der ViewPort3D.

Edit: Benötigt man dazu den viewportObjectFilter ? Ich bin gerade etwas sehr am verzweifeln.
Qt! www.adrianslaboratory.net
Geändert von niquito12 am 08.09.08 um 15:53 Uhr

 08.09.2008, 18:47Re9
Benutzerbild von derFloh
Beiträge: 981
Wohnort: ..::LAGE::..
Registriert: Apr 2006

tja,
viel konnte ich auch nicht rausfinden. zu dem problem spuckt google auch nix vernünftiges aus...
ich haben ein beispiel gefunden, wo jemand in einer schleife objekte rendert und je nach distanz zur camera einen blurfilter anwendet. im grunde hat er alle objekte in ein array / dictionary gehauen, um sie überall einfach ansprechen zu können und dann etwa so:

//schleife
{
   var material = objectArray[objectCount].display.material;
   blurfilter    = new BlurFilter(...);
   material.movie.filters = [blurfilter];
}

mehr sinnvolles hab ich nicht gefunden.
vielleicth hilft dir das ja weiter....

gruß
flo
www.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring
 08.09.2008, 21:22Re10
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

Hi,
der ViewportObjectFilter ist etwas anderes. Der ist dafür da um herauszufinden, ob sich ein DisplayObject3D sich innerhalb des Frustums befindet.
useOwnContainer ist auch nur bedingt zu gebrauchen, da diese während des Rendervorgangs immer wieder neu gezeichnet wird und so die Performance leidet.
Was du brauchst sind die ViewportLayer. Du kannst dir das so vorstellen, dass diese Layer nichts weiter sind als seperate Container (Sprites) innerhalb des Viewport3D und diese dir die Möglichkeit bieten, einzelne oder aber auch mehrere Objekte in diesen Layern hinzuzufügen. Dadurch dass ein ViewportLayer ein Sprite ist, kannst du z.B. BitmapFilter oder auch Farbtransformationen (ColorTransform) drauf anwenden.
Ok, genug Theorie:
ActionScript:
1
2
3
4
5
6
7
8
import org.papervision3d.view.layer.ViewportLayer;
...
private var _layer : ViewportLayer;
...
_layer = do3d.createViewportLayer( viewport );
_layer.filters = new Array( new GlowFilter() );
   
_layer.transform.colorTransform = new ColorTransform( 2, 2, 2 );

Mit den Layern kann man noch mehr anstellen, für den Anfang reicht es aber erstmal.
Viel Spass damit.
 15.09.2008, 09:35Re11
Benutzerbild von niquito12
Beiträge: 901
Wohnort: Nether-Bavaria
Registriert: Jun 2008

Themenautor/in

Oh vielen Dank! Den Spass werde ich sicher haben!

Nachtrag: Was macht dieses IsDynamic beim Konstruktor des Viewport Layers?
Qt! www.adrianslaboratory.net
Geändert von niquito12 am 15.09.08 um 09:51 Uhr

 15.09.2008, 10:07Re12
Benutzerbild von niquito12
Beiträge: 901
Wohnort: Nether-Bavaria
Registriert: Jun 2008

Themenautor/in

Selbstantwort: Beim Durchsteppen habe ich gesehen, dass er bei IsDynamic die Filter Alpha ... des PV3DObjects annimmt.
Qt! www.adrianslaboratory.net
 
Themen
Ähnliche Beiträge zum Thema
 
AntwortenRegistrieren Seite1

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de