Показать сообщение отдельно
Старый 07.03.2012, 15:12
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 3  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
redefy, статью уже читал, но что-то не получается
Код AS3:
package {
 
	import away3d.cameras.*;
	import away3d.containers.*;
	import away3d.controllers.*;
	import away3d.debug.*;
	import away3d.entities.*;
	import away3d.extrusions.*;
	import away3d.lights.*;
	import away3d.materials.*;
	import away3d.materials.lightpickers.*;
	import away3d.materials.methods.*;
	import away3d.primitives.*;
	import away3d.textures.*;
 
	//import com.bit101.components.Label;
 
	import flash.display.*;
	import flash.events.*;
	import flash.filters.*;
	import flash.geom.*;
	import flash.net.*;
	import flash.ui.*;
	import flash.utils.*;
 
	import flash.display.*;
	import flash.events.*;
 
	/**
	 * Alternativa3D "Hello world!" application. 
	 * Создание простейшего трёхмерного приложения.
	 */
	public class HelloAlternativa3DtoAway3d extends Sprite {
		//private var rootContainer:Object3D = new Object3D();//Alternativa
 
		private var rootContainer:ObjectContainer3D = new ObjectContainer3D();//Away3d
 
		private var camera:Camera3D;//Away3d Alternativa 
 
		private var stage3D:Stage3D;//Alternativa 
 
		//private var box:Box;//Alternativa 
 
		private var box:Mesh;//Away3d
 
		private var view:View3D//Away3d
 
		public function HelloAlternativa3DtoAway3d() {
			// Ресурсы
 
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
 
 
			stage3D = stage.stage3Ds[0];
			stage3D.addEventListener(Event.CONTEXT3D_CREATE, onContextCreate);
			stage3D.requestContext3D();
		}
 
		private function onContextCreate(e:Event):void {
			//ресурсы
			//нач альтернатива
			//var grass_diffuse:BitmapTextureResource = new BitmapTextureResource(new BitmapData(1, 1, false, 0xFF0000));
			//var grass_normal:BitmapTextureResource = new BitmapTextureResource(new BitmapData(1, 1, false, 0x7F7FFF));
			//var box_normal:BitmapTextureResource = new BitmapTextureResource(new BitmapData(1, 1, false, 0xFFFFFF));
			//кон альтернатива
 
			//нач авей
			var grass_diffuse:BitmapTexture = new BitmapTexture(new BitmapData(2, 2, false, 0xFF0000));
			var grass_normal:BitmapTexture = new BitmapTexture(new BitmapData(2, 2, false, 0x7F7FFF));
			var box_normal:BitmapTexture = new BitmapTexture(new BitmapData(2, 2, false, 0xFFFFFF));
			//кон авей
 
 
 
			//нач альтернатива
			//grass_diffuse.upload(stage3D.context3D);
			//grass_normal.upload(stage3D.context3D);
			//box_normal.upload(stage3D.context3D);
			//кон альтернатива
 
			//нач авей
			//хто-то знает
			//кон авей
 
			// Camera and view
			// Создание камеры и вьюпорта
 
			//нач алт
			//camera = new Camera3D(0.1, 10000);
			//camera.view = new View(stage.stageWidth, stage.stageHeight, false, 0, 0, 4);
			//addChild(camera.view);
			//addChild(camera.diagram);
			//кон алт
 
			//нач аве
			var scene:Scene3D = new Scene3D();
			//setup camera for optimal shadow rendering
			camera = new Camera3D();
			camera.lens.far = 2100;
			view = new View3D();
			view.scene = scene;
			view.camera = camera;
			//setup controller to be used on the camera
			//cameraController = new HoverController(camera, null, 45, 20, 1000, 10);
			//setup parser to be used on loader3D
			//Parsers.enableAllBundled();
			//view.addSourceURL("srcview/index.html");
			addChild(view);
			//кон аве
 
 
			// Initial position
			// Установка положения камеры
			//нач аль
			//camera.rotationX = -120*Math.PI/180;
			//camera.y = -800;
			//camera.z = 400;
			//rootContainer.addChild(camera);
			//кон аль
 
			//нач аве
			camera.rotationX = -120*Math.PI/180;
			camera.z = -800;
			camera.y = 400;
			rootContainer.addChild(camera);
			//кон аве
 
			// Light sources
			// Источники света
			/*
			var ambientLight:AmbientLight = new AmbientLight(0x333333);
			ambientLight.intensity = 3;
			rootContainer.addChild(ambientLight);
			*/
 
			//нач аль
			//var directionalLight:DirectionalLight = new DirectionalLight(0xFFFF99);
			//directionalLight.z = 20000;
			//directionalLight.y = -20000;
			//directionalLight.x = 20000;
			//directionalLight.intensity = 1;
			//directionalLight.lookAt(2000, 0, 0);
			//кон аль
 
			//нач аве
			var directionalLight:DirectionalLight = new DirectionalLight(-1, -1, 1);
			directionalLight.y = 20000;
			directionalLight.z = -20000;
			directionalLight.x = 20000;
			//directionalLight.intensity = 1;//кто-то знает 
			directionalLight.lookAt(new Vector3D(2000, 0, 0));
			//кон аве
 
			//rootContainer.addChild(directionalLight);//строка - тень появляется, но куб становится чёрным
 
			// Primitive box
			// Создание примитива
			//нач альт
			//box = new Box(250, 250, 250, 1, 1, 1, true);
			//box.z = 200;
			//var material:StandardMaterial = new StandardMaterial(box_normal, box_normal);
			///box.setMaterialToAllSurfaces(material);
			//rootContainer.addChild(box);
 
 
			//var plane:Plane = new Plane(1000, 1000);
			//var planeMaterial:StandardMaterial = new StandardMaterial(grass_diffuse, grass_normal);
			//plane.setMaterialToAllSurfaces(planeMaterial);
 
			//rootContainer.addChild(plane);
			//кон альт
 
			//нач аве
			var boxG:CubeGeometry = new CubeGeometry(250, 250, 250, 1, 1, 1);
			box = new Mesh(boxG);
 
			box.y = 200;
			var material:TextureMaterial = new TextureMaterial(box_normal);// , box_normal);
			box.material = material;
			rootContainer.addChild(box);
 
 
			var plane:Mesh = new Mesh(new PlaneGeometry(1000, 1000));
			var planeMaterial:TextureMaterial = new TextureMaterial(grass_diffuse);// , grass_normal);
			plane.material = planeMaterial;
 
			rootContainer.addChild(plane);
			//кон аве
 
			// Shadow
			// Тень
			//нач аль
			//var shadow:DirectionalLightShadow = new DirectionalLightShadow(1000, 1000, -500, 500, 512, 2);
			//shadow.biasMultiplier = 0.97;
			//shadow.addCaster(plane);
			//shadow.addCaster(box);
			//directionalLight.shadow = shadow;
			//кон аль
 
			//нач аве
			//кто-то знает 
			//кон аве
 
			//нач аль
			//for each (var resource:Resource in rootContainer.getResources(true)) {
			//	resource.upload(stage3D.context3D);
			//}
			//кон аль
 
			//нач аве
			//кто-то знает 
			//кон аве
 
			// Listeners
			// Подписка на события
			stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);//Away3d Alternativa 
		}
 
		private function onEnterFrame(e:Event):void {
			//нач аль
			// Width and height of view
			// Установка ширины и высоты вьюпорта
			//camera.view.width = stage.stageWidth;
			//camera.view.height = stage.stageHeight;
			// Rotation
			// Вращение примитива
			//box.rotationZ -= 0.01;
			// Render
			// Отрисовка
			//camera.render(stage3D);
			//кон аль
 
			//нач авей
			box.rotationY -= 0.01;
			view.render();
			//кон авей
		}
 
	}
}
Работа выполнена на 90%
Перевод на авей +
Куб +
План +
Камера +
Нифига на видно -
Теней от куба нет -
__________________
Гоночка