that is an incredible site enguer, well done! would it be ok for us to feature it in the next showcase post on away3d.com?
Rob On Thu, Oct 8, 2009 at 10:10 AM, enguer <[email protected]> wrote: > > 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 » -- Rob Bateman Flash Development & Consultancy [email protected] www.infiniteturtles.co.uk www.away3d.com
