Home | Flex examples | 3d engines | Sandy 3D | Sandy 3d First (simple cube ...) 3D движок Sandy

Sandy 3d First (simple cube ...) 3D движок Sandy

Font size: Decrease font Enlarge font
image

Sandy - flash 3D engine доступный в трех версиях: AS2, AS3 и haXe. 28 марта 2009 вышли новые версии AS3 3.1.1 и haXe 3.1. Одна из альтернатив PaperVision 3D. На официальном сайте можно найти много информации и примеров.

Sandy это flash 3D engine. Официальный сайт - http://www.flashsandy.org/. Там же можно найти и исходники и множество примеров, демок и ссылок необходимых для работы с движком.

Сделаем класс, в котором нарисуем куб и применим к его сторонам материалы. Три стороны просто зальем цветом, остальные три - используем в качестве материала картинку.

 

Часть класса:

...

        public function index()
        {
            var bitmapLoader:Loader = new Loader()
            var bitmapUrl:URLRequest = new URLRequest("yabloko.jpg");
            bitmapLoader.load(bitmapUrl);
            bitmapLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, init);
        }

        private function init(event:Event):void
        {   
            var loadedBitmap:BitmapData = event.currentTarget.content.bitmapData;
            var g:Group = new Group();
//материал с битмап датой BitmapData           
            var bitmapMaterial:BitmapMaterial = new BitmapMaterial(loadedBitmap);
//материалы с разными цветами           
            var material_1:Material = new ColorMaterial(0xFFCC33, 1);
            material_1.lightingEnable = true;   
...

//наш куб

            mbox = new Box("mybox", 300, 300, 300, PrimitiveMode.QUAD);

...

//материалы

            app1 = new Appearance( bitmapMaterial );   
            app2 = new Appearance( material_1 );

...

//применяем к разным сторонам куба, также можно сразу применить ко всем сторонам одновременно  mbox.appearance = app1;

            mbox.aPolygons[0].appearance = app1;
            mbox.aPolygons[1].appearance = app2;

...

            g.addChild(mbox);   
            var camera:Camera3D = new Camera3D( 300, 300 );

            scene = new Scene3D( "scene", this, camera, g );   
//рендерим сцену           
            addEventListener(Event.ENTER_FRAME, enterFrameHandler)

...

Посмотреть тоже самое на PaperVision 3D - papervision_3d cube (updated)

Исходники - source, приложение - application

 

Comments ( posted):

Post your comment comment

Please enter the code you see in the image:

  • email Email to a friend
  • print Print version
  • Plain text Plain text
Tags
No tags for this article
Rate this article
5.00