package { import flash.display.*; import flash.events.*; import flash.text.*; import flash.utils.*; import mx.core.BitmapAsset; import away3d.cameras.*; import away3d.objects.*; import away3d.loaders.*; import away3d.test.*; import away3d.core.*; import away3d.core.material.*; import away3d.core.render.*; import away3d.core.proto.*; import away3d.core.geom.*; import away3d.core.draw.*; [SWF(backgroundColor="#222266", frameRate="60", width="800", height="600")] public class Skybox6Test extends BaseDemo { public function Skybox6Test() { super("Peter Kapelyan's skyboxes"); camera.mintiltangle = -70; camera.targettiltangle = -10; camera.targetpanangle = -80; DrawTriangle.test(); DrawSegment.test(); addSlide("Skybox #1", "Skybox textures by Peter Kapelyan\n"+ "One image is mapped on inner faces of cube.\n"+ "All skyboxes use precise bitmap texture with 4 pixel precision without smoothing.\n"+ "[CTRL] to hide gui\n", new Scene3D(new PreciseSkybox(1, 4, false)), new BasicRenderer()); addSlide("Skybox #2", "", new Scene3D(new PreciseSkybox(2, 4, false)), new BasicRenderer()); addSlide("Skybox #4", "Some faces are one pixel short.", new Scene3D(new PreciseSkybox(4, 4, false)), new BasicRenderer()); addSlide("Skybox #5", "Back face seems to be overblurred comparing to other side faces.", new Scene3D(new PreciseSkybox(5, 4, false)), new BasicRenderer()); addSlide("Skybox #3", "Some inconsistency in bottom face.", new Scene3D(new PreciseSkybox(3, 4, false)), new BasicRenderer()); } } } import flash.display.*; import flash.events.*; import flash.text.*; import flash.utils.*; import flash.geom.*; import mx.core.BitmapAsset; import away3d.cameras.*; import away3d.objects.*; import away3d.loaders.*; import away3d.core.*; import away3d.core.render.*; import away3d.core.proto.*; import away3d.core.geom.*; import away3d.core.draw.*; import away3d.core.material.*; class Asset { [Embed(source="images/peterskybox1.jpg")] public static var Skybox1Image:Class; public static function get skybox1():BitmapData { return (new Skybox1Image as BitmapAsset).bitmapData; } [Embed(source="images/peterskybox2.jpg")] public static var Skybox2Image:Class; public static function get skybox2():BitmapData { return (new Skybox2Image as BitmapAsset).bitmapData; } [Embed(source="images/peterskybox3.jpg")] public static var Skybox3Image:Class; public static function get skybox3():BitmapData { return (new Skybox3Image as BitmapAsset).bitmapData; } [Embed(source="images/peterskybox4.jpg")] public static var Skybox4Image:Class; public static function get skybox4():BitmapData { return (new Skybox4Image as BitmapAsset).bitmapData; } [Embed(source="images/peterskybox5.jpg")] public static var Skybox5Image:Class; public static function get skybox5():BitmapData { return (new Skybox5Image as BitmapAsset).bitmapData; } public static var skyboxes:Array = [skybox1, skybox2, skybox3, skybox4, skybox5]; } class PreciseSkybox extends ObjectContainer3D { public var skybox:Skybox6; public function PreciseSkybox(n:int, precision:Number, smooth:Boolean = false) { skybox = new Skybox6(new PreciseBitmapMaterial(Asset.skyboxes[n-1], {precision:precision, smooth:smooth})); super(null, skybox); } }