sphere內部貼圖求助
fur3 (2009-12-02 14:14:53)
剛開始自學 AS3跟pv3d
現在正在嘗試在一個sphere裡面貼圖並可以365旋轉.
之前在一個網站學用wireframe做的時候完全沒問題 當我試著貼圖上去後問題就來了
我用test movie 就只能看到一個紅點 之前這個紅點在wireframe測試的時候是會跟著我著我的滑鼠跑的
跑到哪 鏡頭也會跟著跑到哪 但現在就動都不動 跟著我放小sphere後 看到那張圖結果是貼在sphere的外部
但還是無法用滑鼠移動
有人可以幫忙看看嗎
這是那個網站
http://pv3d.org/2009/01/05/looking-around-the-inside-of-a-sphere/
package
{
import flash.events.Event;
import flash.ui.Mouse;
import org.papervision3d.core.proto.MaterialObject3D;
import org.papervision3d.core.utils.Mouse3D;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.special.CompositeMaterial;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.objects.primitives.Sphere;
import org.papervision3d.view.BasicView;
import org.papervision3d.view.layer.ViewportLayer;
import org.papervision3d.view.layer.util.ViewportLayerSortMode;
public class space extends BasicView
{
private var lookAtMe;DisplayObject3D;
private var sphere:Sphere;
private var mouse3D:Mouse3D;
private var plane:Plane;
public function space ()
{
viewport.interactive = true;
mouse3D = viewport.interactiveSceneManager.mouse3D;
Mouse3D.enabled = true;
lookAtMe = new DisplayObject3D();
var bitmapFileMaterial:CompositeMaterial = new CompositeMaterial();
bitmapFileMaterial.interactive = true;
bitmapFileMaterial.doubleSided = true;
sphere = new Sphere(new BitmapFileMaterial('sky2.jpg'), 500, 12, 12);
var planeMaterial:MaterialObject3D = new ColorMaterial(0xcc0000);
planeMaterial.doubleSided = true;
plane = new Plane(planeMaterial, 30, 30);
var viewportLayer:ViewportLayer = new ViewportLayer(viewport, plane);
viewportLayer.layerIndex = 1;
viewport.containerSprite.sortMode = ViewportLayerSortMode.INDEX_SORT;
viewport.containerSprite.addLayer(viewportLayer);
scene.addChild(plane);
camera.z = -300;
camera.target = lookAtMe;
scene.addChild(sphere);
startRendering();
Mouse.hide();
}
override protected function onRenderTick(event:Event=null):void
{
lookAtMe.x += (mouse3D.x - lookAtMe.x) * .009;
lookAtMe.y += (mouse3D.y - lookAtMe.y) * .009;
plane.copyTransform(mouse3D);
super.onRenderTick(event);
}
}
}