Nope no idea what your trying do. Maybe someone else gets it...?
2011/1/30 squ <[email protected]> > Darcey, thanks > but you didn't undestand what I did > > I use a real sprite as an overlay (like lens flare) then using Matrix > of camera and a sort of leading object3D I matrix this real sprite - > it is 95% of what I would get using a Plane, but without all > mathematics > > the only error I get is when I resize the stage and change the x/y of > the view container > > I do not want to use a Plane! > > > > On 30 Sty, 14:08, Darcey Lloyd <[email protected]> wrote: > > No sure what your trying to achieve, try using a plane and adjust your > > camera focus and zoom. or use a large sphere at camera location, so the > > camera is inside it and check camera movement settings. > > > > D > > > > On 30 January 2011 10:46, squ <[email protected]> wrote: > > > > > > > > > ok, thanks > > > here is the demo:http://prologis.win.pl/OverlayTest.swf > > > > > I created a class called Overlay and placed it in away3D/overlays > > > folder > > > > > I place it on a standard away3D stage like this: overlay = new > > > Overlay(view, camera); > > > the original size of the document is 700x600px (this is important!) > > > > > so, whatever you do for checking first make the window display: > > > 700x600 (700 in width) > > > > > the away3D scene has a resize function: > > > > > private function Resize(evt:Event = null):void { > > > view.x = this.stage.stageWidth / 2; > > > view.y = this.stage.stageHeight / 2; > > > > > clipping.minX = -this.stage.stageWidth/2; > > > clipping.minY = -this.stage.stageHeight/2; > > > clipping.maxX = this.stage.stageWidth/2; > > > clipping.maxY = this.stage.stageHeight/2; > > > > > var te = "stageWidth/stageHeight: " + this.stage.stageWidth + " / " + > > > this.stage.stageHeight; > > > _txt.text = te; > > > > > EnterFrame(); > > > } > > > > > the test swf you see when set at 700x600 make the square perspective > > > to the scene, but when you resize and actually CHANGE the view.x/ > > > view.y something happens to the overlay object > > > I checked everything: scale, size, x/y of everything - it is exactly > > > the same before and after resizing but the square changes its look > > > > > here is the Overlay class: > > > > > package away3d.overlays > > > { > > > import away3d.cameras.*; > > > import away3d.core.base.*; > > > import away3d.containers.View3D; > > > import away3d.cameras.Camera3D; > > > > > import flash.geom.*; > > > import flash.display.*; > > > import flash.events.*; > > > > > public class Overlay extends Sprite implements IOverlay > > > { > > > > > private var view:View3D = null; > > > private var camera:Camera3D = null; > > > > > public var object3D:Object3D; > > > private var scale:Number; > > > private var sourceProjection:Vector3D; > > > > > public var overlayMatrix:Matrix3D = new Matrix3D(); > > > private var flipY:Matrix3D = new Matrix3D(); > > > private var viewMatrix:Matrix3D = new Matrix3D(); > > > > > private var overlayContainer:Sprite; > > > private var testSprite:Sprite; > > > > > public function Overlay(v:View3D, c:Camera3D, > init:Object = > > > null) > > > { > > > view = v; > > > camera = c; > > > flipY.appendScale(1, -1, 1); > > > overlayContainer = new Sprite(); > > > this.visible = false; > > > createTestSprite(); > > > > > } > > > > > private function createTestSprite():void { > > > testSprite = new Sprite(); > > > testSprite.graphics.clear(); > > > testSprite.graphics.beginFill(0xFF0000, 1); > > > testSprite.graphics.lineStyle(3, 0x000000); > > > testSprite.graphics.drawRect(-150, -150, 300, > 300); > > > testSprite.graphics.endFill(); > > > setNewSettings(); > > > } > > > > > private function setNewSettings():void { > > > object3D = new Object3D(); > > > object3D.x = 0; > > > object3D.y = 0; > > > object3D.z = 400; > > > > > view.scene.addChild(object3D); > > > this.addChild(testSprite); > > > view.addOverlay(this); > > > } > > > > > public function update():void { > > > > > sourceProjection = camera.screen(object3D, new > > > Vertex(object3D.x,object3D.y,object3D.z)); > > > > > if(!sourceProjection || sourceProjection.z < 0){ > > > if(this.visible) this.visible = false; > > > return; > > > } > > > if(!this.visible) this.visible = true; > > > > > scale = > > > camera.lens.getPerspective(sourceProjection.z); > > > > > viewMatrix.identity(); > > > viewMatrix.rawData = camera.viewMatrix.rawData; > > > viewMatrix.prepend(flipY); > > > > > overlayMatrix.identity(); > > > overlayMatrix.prepend(viewMatrix); > > > overlayMatrix.prepend(object3D.sceneTransform); > > > > > scale = > > > camera.lens.getPerspective(sourceProjection.z); > > > overlayMatrix.appendScale(scale,scale,1); > > > > > > overlayMatrix.appendTranslation(sourceProjection.x, > > > sourceProjection.y, 0); > > > > > this.transform.matrix3D = overlayMatrix; > > > > > } > > > > > } > > > } > > > > > I really need help with this, I just have no more ideas what can be > > > wrong- Ukryj cytowany tekst - > > > > - Pokaż cytowany tekst -
