I've done this simply, with just one plane for the image, one plane for the reflected image. Then put both into a group.
I don't see why papervision makes things harder then they should be :/ It's a very simple thing. On Wed, Feb 18, 2009 at 7:37 AM, Rob Bateman <[email protected]> wrote: > Hey WIlliam > > it is possible to group objects into the same sprite container using > rendersessions. each 3d object has a property 'ownSession', and if you set > objects in your scene to have the same session for ownSession, they will all > render in teh same sprite. the default session to use is > SpriteRenderSession: > > objectA = new Sphere(); > objectB = new Sphere(); > > containerA = new ObjectContainer3D(objectA); > scene.addChild(containerA); > > containerB = new ObjectContainer3D(objectB); > scene.addChild(containerB); > > mySession = new SpriteRenderSession(); > > containerA.ownSession = mySession; > containerB.ownSession = mySession; > > and then you can access the sprite being used to render objectA and objectB > like this: > > mySprite = mySession.getContainer(view); > > > however.... this is not the whole story, becasue you also want to control > the z-depth of this session container, and currently that is not possible, > sorting is currently done automatically based on the registration point of > the object in the scene. if you do what i've done above, the session depth > will sort to the point of the nearest object in the scene (the last one to > set the depth of the session), with ownSession set. > > however, you can try and move the registration point of objects you want to > always render behind by doing this: > > objectA.movePivot(0, 0, 1000); > objectA.moveTo(0, 0, -1000); > > objectB.movePivot(0, 0, 1000); > objectB.moveTo(0, 0, -1000); > > > this will ensure that whatever object z-depth the rendersession decides to > grab, it will always be behind other objects, assuming your camera is not > going to rotate. > > > this is all a bit clumsy i know, so i'll look at creating a patch that > allows you to overrride the z-depth on a rendersession, to create layers > with exactly the same characteristics as in pv3d > > > cheers! > > Rob > > > > On Wed, Feb 18, 2009 at 9:42 AM, Fabrice <[email protected]> wrote: > >> >> Why do you need a containers for this in the first place? >> Its all overhead for nothing. I understand from your mail it's the PV way >> of doing things... >> Looks like a hamburger construction to me... and as you know hamburgers >> are not that healthy :)) >> >> A simple class being a custom primitive like the Plane object, top half >> being the image information as is. >> down part being the reflection illusion. The reflection part is a simple >> gradient your merge with the image info. >> A simple redraw or MovieMaterial is enough here. >> >> If you need to fade the reflection, its just a matter of updating a >> gradient before you merge if you use draw. >> or just update your movieclip source if you use MovieMaterial. >> >> The mapping info of the custom plane just needs to look like this: >> >> U info: 0/1 >> V info: 1/0 0/1 >> >> The class just needs to autocenter on y if the image may vary on size. >> addOnMouseDown, Over etc and you are done... >> >> 2 or 3 hours work max. Will run faster, reusable for other projects. >> Simple & Clean. >> >> If you need help for the build, just drop a mail, I'll help you. >> >> Fab >> >> >> On Feb 18, 2009, at 3:42 AM, [email protected] wrote: >> >> >>> Let take this photoflow as example. >>> >>> http://www.flashloaded.com/flashcomponents/photoflow/ >>> >>> Each item is a ObjectContainer with photo and reflection. >>> >>> I need to do fading on the reflection. So, i put all reflection object >>> in one layer and apply a mask. >>> >>> Hope this more clear. >>> >>> On Feb 18, 12:56 am, Fabrice <[email protected]> wrote: >>> >>>> Any visuals would certainly help... >>>> >>>> Fabrice >>>> On Feb 17, 2009, at 5:46 PM, Li wrote: >>>> >>>> Mmmm... I dont know, perhaps someone else on the list can throw you >>>>> a clue... >>>>> >>>> >>>> On Tue, Feb 17, 2009 at 1:01 PM, [email protected] < >>>>> [email protected] >>>>> >>>>>> wrote: >>>>>> >>>>> >>>> Thanks Li. >>>>> >>>> >>>> I have think of this idea. But seem not work in my case. >>>>> >>>> >>>> My object is in hierarchical structure. >>>>> >>>> >>>> e.g. >>>>> >>>> >>>> I have object structure >>>>> >>>> >>>> ObjectContainerA have ObjectA and ObjectB (fake shadow) >>>>> ObjectContainerB have ObjectC and ObjectD (fake shadow) >>>>> >>>> >>>> But i want to render Object B and ObjectD in the same layer. In order >>>>> i can do some copypixel and effect on the layer. >>>>> >>>> >>>> Since papervision layer system is independent to object structure. i >>>>> can put any object in the same layer for render. >>>>> >>>> >>>> I dig in the code of away3d. I find something called render session. >>>>> Do this stuff help on my case? >>>>> >>>> >>>> On Feb 17, 2:15 pm, Li <[email protected]> wrote: >>>>> >>>>>> Hey William, >>>>>> >>>>> >>>> If you set ownCanvas = true to any 3d object, it will be rendered >>>>>> >>>>> in its own >>>>> >>>>>> Sprite container. Once this is done you can apply any effects/ >>>>>> >>>>> filters to it >>>>> >>>>>> as if it was a normal sprite. Furthermore, you can use an >>>>>> >>>>> ObjectContainer3D >>>>> >>>>>> to place other objects within it, set ownCanvas = true for the >>>>>> >>>>> container and >>>>> >>>>>> apply a filter to all, for instance: >>>>>> >>>>> >>>> var container:ObjectContainer3D = new ObjectContainer3D(); >>>>>> scene.addChild(container); >>>>>> >>>>> >>>> var obj1:Cube = new Cube(); >>>>>> obj1.x = 1000; >>>>>> container.addChild(obj1); >>>>>> >>>>> >>>> var obj2:Sphere = new Sphere(); >>>>>> obj2.x = -1000; >>>>>> container.addChild(obj2); >>>>>> >>>>> >>>> container.ownCanvas = true; >>>>>> container.filters = [new BlurFilter()]; >>>>>> >>>>> >>>> Haven't tested it, but it should work... >>>>>> Hope it helps, and welcome to Away =) >>>>>> >>>>> >>>> On Tue, Feb 17, 2009 at 1:37 AM, [email protected] < >>>>>> >>>>> >>>> [email protected]> wrote: >>>>>> >>>>> >>>> Hi, >>>>>>> >>>>>> >>>> I am new to away3d. I try papervision 3d before. Now, I want to >>>>>>> >>>>>> switch >>>>> >>>>>> the work to away3d. >>>>>>> But I find a function missing in away3d which stop me for using >>>>>>> >>>>>> it - >>>>> >>>>>> Render Layer. >>>>>>> >>>>>> >>>> I have a scene with several object. In papaervision3d, I can >>>>>>> >>>>>> render >>>>> >>>>>> each object in different layer. >>>>>>> More, I can place different object in the same render layer and do >>>>>>> effect on all object as once in that layer. >>>>>>> >>>>>> >>>> I search though the api and code. I can't figure out how can I >>>>>>> >>>>>> do it >>>>> >>>>>> with away3d. >>>>>>> From the achieve of this mail group, I learn a method which >>>>>>> >>>>>> separate >>>>> >>>>>> the object in different view and render. >>>>>>> >>>>>> >>>> But, I find it is not practical in my case. Since the objects have >>>>>>> hierarchical structure, I don't want to break the structure. >>>>>>> >>>>>> >>>> Anyone have experience to deal with this issue? >>>>>>> >>>>>> >>>> William >>>>>>> >>>>>> >> > > > -- > Rob Bateman > Flash Development & Consultancy > > [email protected] > www.infiniteturtles.co.uk > www.away3d.com > -- ___________________ Actionscript 3.0 Flash 3D Graphics Engine HTTP://AWAY3D.COM
