Discussion:
Entire scene vanishes when using standard loader
cyberfish
2010-07-07 12:07:49 UTC
Permalink
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;
}
}
}
--
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.
Kayomarz
2010-07-08 04:54:22 UTC
Permalink
Hi

Are you using the debug version of flash player?

It's possible you're not seeing error messages - which you'd see only
with the 'debug' version of flash player. Just assume an error did
occurred because of the code loading the image, the 3D planes wouldn't
be rendered because once an error occurs flash player won't work
normally (I don't know flash player behaviour with regard to errors) -
sounds possible since you feel that the entire viewport might be
disappearing.

Kayo.
Post by cyberfish
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?
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;
}
}
}
cyberfish
2010-07-13 00:56:43 UTC
Permalink
Kayo,

Thanks. you were right. got the debug installed. i uninstalled it
cause it was giving me issues a while back and i forgot to reinstall it.
that allowed for further debugging and i got it sorted out. thanks!
--
View this message in context: http://papervision3d.758870.n4.nabble.com/Entire-scene-vanishes-when-using-standard-loader-tp2280814p2286904.html
Sent from the Papervision3D mailing list archive at Nabble.com.
Loading...