But not for performance...

On 8 oct, 11:09, enguer <[email protected]> wrote:
> Yes of course,
> SpriteRenderSession z-sorting is based on the pivot position.
> So il you want z-sorting well ordered you will move the pivot of each
> object the nearest from the camera.
> So yes it's very important for z-sorting issue.
>
> On 8 oct, 11:04, Michael Iv <[email protected]> wrote:
>
>
>
> > Can I receive a liitle explanation about the effect of usage of
> > SrpiteRenderSession and why is moving of the Pivot contributes to correct z
> > sorting  . Is the upgrading Z sorting is important part of performance
> > improvement?.
>
> > On Thu, Oct 8, 2009 at 10:28 AM, enguer <[email protected]> wrote:
>
> > > Hi Michael,
> > > In order to optimize textures of town, i use a custom clipping script.
> > > I figured out that away3d do clipping but when a lot of objects are
> > > "added" to the scene, performance goes down.
> > > So I put a script that remove object when they are far or behind the
> > > camera.
> > > I used a lot of SrpiteRenderSession and movePivot to correct the Z-
> > > sorting.
> > > For texture i put in array 3 kind of bitmap for each texture: High/
> > > Medium/Low. The textures switches depends on the distance from the
> > > camera.
>
> > > And the 100 first frame calculate the average fps of the project and
> > > switch automatically this parameters:
> > > -Max Distance Clippin
> > > -Medium Texture Distance
> > > -High Texture Distance
> > > -Quality of flash player
> > > -Resolution of the frustum clipping thing.
>
> > > It's a sample of tick :
> > >                public function update(cam:Camera3D,Conf:Object):void{
> > >                        if (!reset){
> > >                                //Distance processing
> > >                                //DISTANCE
> > >                                var c:Number3D = new
> > > Number3D(cam.x,cam.y,cam.z);
> > >                                //ANGLE
> > >                                var mc = cam.viewMatrix;
> > >                                for (var o in Objects) {
> > >                                        //TRANFORM CENTER TO THE CAMERA
> > >                                        var ct:Number3D = new Number3D();
> > >                                        ct.clone(Objects[o].extra.center);
> > >                                        ct.transform(ct,mc);
> > >                                        if
> > > (c.distance(Objects[o].extra.center)<Conf.Clipping.MaxDist&&
> > > (ct.z>-200)){
> > >                                                if (!Objects[o].extra.set){
> > >                                                        if
> > > (Objects[o].extra.container){
>
> > >  Objects[o].extra.container.addChild(Objects[o]);
> > >                                                        }else
> > > addChild(Objects[o]);
> > >                                                        
> > > Objects[o].extra.set
> > > = true;
> > >                                                }
> > >                                                if
> > > (!Objects[o].extra.noswitch){
> > >                                                        //Quality selection
> > >                                                        if
> > > (c.distance(Objects[o].extra.center)<Conf.Clipping.High){var
> > > Q = 2;
> > >                                                        }else{
> > >                                                                if
> > > (c.distance(Objects[o].extra.center)<Conf.Clipping.Medium)
> > > var Q = 1;
> > >                                                                else Q = 0;
> > >                                                        }
>
> > >                                                        if
> > > ((Objects[o].extra.Quality!=Q||Objects[o].extra.Blur)){
> > >                                                                //Texture
> > > loading and switching
> > >                                                                var
> > > faceMat:BitmapMaterial = Objects[o].extra.Materials
> > > ["Front"][Q];
> > >                                                                var
> > > nullMat:ColorMaterial = new ColorMaterial(0x000000,{alpha:
> > > 0});
>
> > >  faceMat.smooth=true;
> > >                                                                var
> > > sideMat:BitmapMaterial = (Objects[o].extra.Materials
> > > ["Side"]!=undefined)?Objects[o].extra.Materials["Side"][Q]:Objects
> > > [o].extra.Materials["Front"][Q];
>
> > >  sideMat.smooth=true;
> > >                                                                if
> > > (Objects[o].extra.dim.ry==90){
>
> > >  Objects[o].cubeMaterials.left = faceMat;
>
> > >  Objects[o].cubeMaterials.right = faceMat;
>
> > >  Objects[o].cubeMaterials.front = sideMat;
>
> > >  Objects[o].cubeMaterials.back = sideMat;
> > >                                                                }else{
>
> > >  Objects[o].cubeMaterials.front = faceMat;
>
> > >  Objects[o].cubeMaterials.back = faceMat;
>
> > >  Objects[o].cubeMaterials.left = sideMat;
>
> > >  Objects[o].cubeMaterials.right = sideMat;
> > >                                                                }
>
> > >  Objects[o].cubeMaterials.top = nullMat;
>
> > >  Objects[o].cubeMaterials.bottom = nullMat;
>
> > >  Objects[o].extra.Quality=Q;
>
> > >  Objects[o].extra.Blur=false;
> > >                                                        }
> > >                                                }
> > >                                        }else{
> > >                                                if (Objects[o].extra.set){
> > >                                                        
> > > Objects[o].extra.set
> > > = false;
> > >                                                        if
> > > (Objects[o].extra.container)Objects
> > > [o].extra.container.removeChild(Objects[o]);
> > >                                                        else
> > > removeChild(Objects[o]);
> > >                                                }
> > >                                        }
> > >                                }
> > >                                if (time>=ticktime){
> > >                                        for (var Co in Conts) {
> > >                                                //Processing of pivot
> > > displacment in order to fight z-sorting
> > >                                                var Ca = new
> > > Number3D(cam.x,cam.y,cam.z);
>
> > >  Ca.transform(Ca,Conts[Co].inverseSceneTransform);
> > >                                                var Y = Ca.y;
> > >                                                var X = Ca.x;
> > >                                                var Z = Ca.z;
> > >                                                if (Ca.x>Conts[Co].maxX) X 
> > > =
> > > Conts[Co].maxX;
> > >                                                if (Ca.x<Conts[Co].minX) X 
> > > =
> > > Conts[Co].minX;
> > >                                                if (Ca.z<Conts[Co].minZ) Z 
> > > =
> > > Conts[Co].minZ;
> > >                                                if (Ca.z>Conts[Co].maxZ) Z 
> > > =
> > > Conts[Co].maxZ;
> > >                                                var Piv = new
> > > Number3D(X,Y,Z);
>
> > >  Piv.transform(Piv,Conts[Co].sceneTransform);
> > >                                                if
> > > (Conts[Co].pivotPoint!=Piv){
>
> > >  Conts[Co].movePivot(X,Y,Z);
>
> > >  Conts[Co].moveTo(Piv.x,Piv.y,Piv.z);
> > >                                                        if
> > > (DEBUG_PIVOT)Conts[Co].extra.pivot.moveTo
> > > (Piv.x,Piv.y,Piv.z);
> > >                                                }
> > >                                        }
> > >                                        time=0;
> > >                                }else time++;
> > >                        }
> > >                }
>
> > > Hoping this will help
>
> > > Cheers
>
> > > On 8 oct, 09:16, Michael Iv <[email protected]> wrote:
> > > > Enguer Hello , I am in shock of the preformance of your website.Can you
> > > > share a few tips about texture optimization that you have done
> > > there.Because
> > > > i am finishing a game project right now that involves a lot of different
> > > > textures and I am struggling to encrease performance by optimizing
> > > different
> > > > parts . But so far I am not succeeding much .
> > > > I will very appreciate any tip.
>
> > > > On Thu, Oct 8, 2009 at 12:36 AM, enguer <[email protected]> wrote:
>
> > > > > Hi,
> > > > > I finally release this project; you can find it athttp://
> > >www.bandit3.com
> > > > > I will be glad to know your opinion about this project.
>
> > > > > cheers
>
> > > > > Enguer
>
> > > > > On 28 sep, 14:42, Rob Bateman
>
> ...
>
> plus de détails »

Reply via email to