Thank you rob :D Yes of course, i would like to be in the next showcase post.
Enguer On 11 oct, 02:38, Rob Bateman <[email protected]> wrote: > 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]
