Если создавать модель в максе, то там же и задается тайлинг, если надо ручками, то надо умножить uv координаты на количество частей. В данном примере делаем тайлинг 2х2:
var a:Number = 2; plane.setUVsToFace(new Point(0, 0), new Point(a, 0), new Point(a, a), "front0_0"); plane.setUVsToFace(new Point(0, 0), new Point(0, a), new Point(a, a), "back0_0");
В итоге получаем плейн с тайлингом 2х2, а также отраженные текстурки сзади:

Ниже код:
package { import alternativa.engine3d.controllers.CameraController; import alternativa.engine3d.core.Camera3D; import alternativa.engine3d.core.Object3D; import alternativa.engine3d.core.Scene3D; import alternativa.engine3d.display.View; import alternativa.engine3d.materials.TextureMaterial; import alternativa.engine3d.primitives.Plane; import alternativa.types.Texture; import alternativa.utils.FPS; import fl.controls.Slider; import flash.display.BitmapData; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.Point; import flash.net.navigateToURL; import flash.net.URLRequest; /** * ... * @author Romano (www.romano.su) */ public class Main extends Sprite { private var scene:Scene3D; private var view:View; private var camera:Camera3D; private var cameraController:CameraController; private var plane:Plane; [Embed(source = "../assets/alternativa3d_medium.png")] private var Logo:Class; [Embed(source = "../assets/image.png")] private var MyImage:Class; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; // Создание сцены scene = new Scene3D(); scene.root = new Object3D(); // Добавление камеры и области вывода camera = new Camera3D(); camera.x = 100; camera.y = -150; camera.z = 100; camera.rotationX = 0; camera.rotationY = 0; camera.rotationZ = 0; scene.root.addChild(camera); view = new View(); addChild(view); view.camera = camera; view.interactive = true; // создание текстуры var bmpImage:BitmapData = new BitmapData(400, 400); bmpImage.draw(new MyImage()); var texture:Texture = new Texture(bmpImage); var textureMaterial:TextureMaterial = new TextureMaterial(texture, 1, true, true); // создание плейна plane = new Plane(100, 100); plane.cloneMaterialToAllSurfaces(textureMaterial); plane.x = 100; scene.root.addChild(plane); // тайлинг var a:Number = 2; plane.setUVsToFace(new Point(0, 0), new Point(a, 0), new Point(a, a), "front0_0"); plane.setUVsToFace(new Point(0, 0), new Point(0, a), new Point(a, a), "back0_0"); // Подключение контроллера камеры cameraController = new CameraController(stage); cameraController.camera = camera; cameraController.setDefaultBindings(); cameraController.checkCollisions = true; cameraController.collisionRadius = 20; cameraController.lookAt(plane.coords); // Запуск счётчика кадров FPS.init(stage); stage.addEventListener(Event.RESIZE, onResize); stage.addEventListener(Event.ENTER_FRAME, onEnterFrame); // создаем и добавляем слайдер на сцену insertSlider(); insertLogo(); onResize(null); } private function insertSlider():void { var slider:Slider = new Slider(); slider.x = 50; slider.y = 50; slider.rotation = 90; slider.minimum = 0; slider.maximum = 360; slider.liveDragging = true; slider.snapInterval = slider.tickInterval; slider.addEventListener(Event.CHANGE, sliderChange); addChild(slider); } private function sliderChange(event:Event):void { plane.rotationX = event.currentTarget.value * (Math.PI / 180); } private function onResize(e:Event):void { view.width = stage.stageWidth; view.height = stage.stageHeight; } private function insertLogo():void { var logoSprite:Sprite = new Sprite(); logoSprite.addChild(new Logo()); addChild(logoSprite); logoSprite.x = stage.stageWidth - logoSprite.width - 5; logoSprite.y = stage.stageHeight - logoSprite.height - 5; logoSprite.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void { var request:URLRequest = new URLRequest("http://www.alternativaplatform.com"); navigateToURL(request, "_blank"); }); } private function onEnterFrame(event:Event):void { // Расчёт сцены scene.calculate(); } } }
Тэги: ActionScript 3, alternativa 3d, flash
tBNLnc , [url=http://xqdruesulonu.com/]xqdruesulonu[/url], [link=http://fzmixwrkdmyk.com/]fzmixwrkdmyk[/link],
comment4, , cpvhr, , 1254, , 01522, , 43018, , 8-OOO,
comment6, , ykmfr, , sbo, , zsme, , clfhzu, , %DDD,