cyberfish
2010-07-07 12:07:49 UTC
It took me a while to pinpoint this in my code, initially I thought Flex
Builder was being buggy. But I am using a loader to bring an image into my
project. I have done this several times before with 2d items however in
this case it appears to be making a couple of planes (the only 3d objects in
my scene) disappear. It might even be causing the entire viewport to
disappear. I was curious to know if anyone else has seen or experienced
this, or perhaps have some inkling as to what the cause may be.
Is it a z-sorting issue?
here is the code:
package {
import be.nascom.flash.graphics.Rippler;
import caurina.transitions.*;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.view.stats.StatsView;
import org.papervision3d.objects.parsers.DAE;
import org.papervision3d.cameras.DebugCamera3D;
import flash.net.URLRequest;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.Event;
import flash.display.Sprite;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.materials.MovieMaterial;
[SWF (width = "1024", height = "768", framerate = "20", backgroundColor =
"#000000")]
public class HealYourSpirt extends Sprite
{
//native flash vars
private var ripSprite:Sprite;
private var ripLoader:Loader;
private var ripReq:URLRequest;
private var p:Plane;
private var pRef:Plane;
private var forestMaterial:BitmapFileMaterial;
private var material:MovieMaterial;
//ripple var
private var rip:Rippler;
//pv3d vars
private var scene:Scene3D;
private var camera:Camera3D;
private var viewport:Viewport3D;
private var renderer:BasicRenderEngine;
public function HealYourSpirt()
{
init();
scene = new Scene3D();
camera = new Camera3D(90);
viewport = new Viewport3D(1024, 768);
addChild(viewport);
renderer = new BasicRenderEngine();
p = new Plane(material, 1024, 768, 6,6);
scene.addChild(p);
pRef = new Plane(forestMaterial, 1024, 768, 6, 6);
scene.addChild(pRef);
addEventListener(Event.ENTER_FRAME, handleRender);
}
public function init():void
{
material = new MovieMaterial(ripSprite);
forestMaterial = new BitmapFileMaterial("assets/forest.jpg")
forestMaterial.doubleSided = true;
ripLoader = new Loader;
addChild(ripLoader);
ripReq = new URLRequest("assets/forestref2.png");
ripLoader.load(ripReq);
ripLoader.scaleX = .1;
ripLoader.scaleY = .1;
ripLoader.y = 300;
ripSprite = new Sprite();
ripSprite.addChild(ripLoader);
rip = new Rippler(ripLoader, 60, 6);
//rip.drawRipple(0,0,50,1);*/
}
public function handleRender(e:Event):void
{
renderer.renderScene(scene, camera, viewport);
//p.z -= 2;
p.rotationY += 2;
}
}
}
Builder was being buggy. But I am using a loader to bring an image into my
project. I have done this several times before with 2d items however in
this case it appears to be making a couple of planes (the only 3d objects in
my scene) disappear. It might even be causing the entire viewport to
disappear. I was curious to know if anyone else has seen or experienced
this, or perhaps have some inkling as to what the cause may be.
Is it a z-sorting issue?
here is the code:
package {
import be.nascom.flash.graphics.Rippler;
import caurina.transitions.*;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.view.stats.StatsView;
import org.papervision3d.objects.parsers.DAE;
import org.papervision3d.cameras.DebugCamera3D;
import flash.net.URLRequest;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.Event;
import flash.display.Sprite;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.materials.MovieMaterial;
[SWF (width = "1024", height = "768", framerate = "20", backgroundColor =
"#000000")]
public class HealYourSpirt extends Sprite
{
//native flash vars
private var ripSprite:Sprite;
private var ripLoader:Loader;
private var ripReq:URLRequest;
private var p:Plane;
private var pRef:Plane;
private var forestMaterial:BitmapFileMaterial;
private var material:MovieMaterial;
//ripple var
private var rip:Rippler;
//pv3d vars
private var scene:Scene3D;
private var camera:Camera3D;
private var viewport:Viewport3D;
private var renderer:BasicRenderEngine;
public function HealYourSpirt()
{
init();
scene = new Scene3D();
camera = new Camera3D(90);
viewport = new Viewport3D(1024, 768);
addChild(viewport);
renderer = new BasicRenderEngine();
p = new Plane(material, 1024, 768, 6,6);
scene.addChild(p);
pRef = new Plane(forestMaterial, 1024, 768, 6, 6);
scene.addChild(pRef);
addEventListener(Event.ENTER_FRAME, handleRender);
}
public function init():void
{
material = new MovieMaterial(ripSprite);
forestMaterial = new BitmapFileMaterial("assets/forest.jpg")
forestMaterial.doubleSided = true;
ripLoader = new Loader;
addChild(ripLoader);
ripReq = new URLRequest("assets/forestref2.png");
ripLoader.load(ripReq);
ripLoader.scaleX = .1;
ripLoader.scaleY = .1;
ripLoader.y = 300;
ripSprite = new Sprite();
ripSprite.addChild(ripLoader);
rip = new Rippler(ripLoader, 60, 6);
//rip.drawRipple(0,0,50,1);*/
}
public function handleRender(e:Event):void
{
renderer.renderScene(scene, camera, viewport);
//p.z -= 2;
p.rotationY += 2;
}
}
}
--
View this message in context: http://papervision3d.758870.n4.nabble.com/Entire-scene-vanishes-when-using-standard-loader-tp2280814p2280814.html
Sent from the Papervision3D mailing list archive at Nabble.com.
View this message in context: http://papervision3d.758870.n4.nabble.com/Entire-scene-vanishes-when-using-standard-loader-tp2280814p2280814.html
Sent from the Papervision3D mailing list archive at Nabble.com.