Hello,
I have a problem with Sprite3D and FrustumClipping. When I use
Rectangular or Nearfield clipping Sprite3D objects are displayed
correctly. But FrustumClipping makes all Sprite3D objects disappear
near screen borders. I noticed they disappear when Sprite3D center/
pivot point moves out of view borders (moving over the surface with
arrows):
http://www.kollaps.com.ua/gb/SpriteFrustum/
Here are sources for Flash CS4:
http://www.kollaps.com.ua/gb/SpriteFrustum/SpritePlants.zip
And AS3 code related to Sprites, view, scene and camera setup:
function initEngine():void
{
scene = new Scene3D();
scamera = new SpringCam();
...
clipping= new FrustumClipping({minZ:50, maxZ:2000});
var basicrenderer:BasicRenderer = new BasicRenderer();
view = new View3D();
view.renderer=basicrenderer;
//view.renderer=Renderer.INTERSECTING_OBJECTS;
view.x = stage.stageWidth / 2;
view.y = stage.stageHeight / 2;
view.scene = scene;
view.camera = scamera;
view.clipping = clipping;
addChild(view);
}
function initMaterials():void
{
floorMaterial = new TransformBitmapMaterial(Cast.bitmap(GrassOld), {
scaleX:0.05, scaleY:0.05, repeat:true});
treeMaterial = new BitmapMaterial(Cast.bitmap(OakTree));
//treeMaterial = new BitmapMaterial(new OakTree(362,263*2));
}
function initObjects():void
{
floor=new Plane();
floor.height=PLANE_LENGTH;
floor.width=PLANE_LENGTH;
floor.segmentsH=PLANE_SEGMENTS;
floor.segmentsW=PLANE_SEGMENTS;
floor.material=floorMaterial;
view.scene.addChild(floor);
Trees=new Array();
var sprite:Sprite3D;
var spriteMesh:Mesh;
for (var i:int = 0; i <100; i++) {
spriteMesh=new Mesh();
sprite = new Sprite3D(null,362,526);
spriteMesh.x=PLANE_LENGTH*Math.random()-PLANE_LENGTH/2;
spriteMesh.z=PLANE_LENGTH*Math.random()-PLANE_LENGTH/2;
spriteMesh.y=0;
sprite.material=treeMaterial;
sprite.scaling=2.0+2.0*Math.random();
spriteMesh.addSprite(sprite);
view.scene.addChild(spriteMesh);
}
}
You may notice that I create a Mesh object for each sprite, because I
would need to add interactivity and zDepth actions. By the way without
this all sprites disappear under Frustum Clipping.
May be I'm doing something wrong?
Thanks beforehand for advice