快速导航:   教程资源  | 经典范例  | 友情链接  | 联系我们  | 官方微博
登陆 | 注册

 flash 3d 研究所
flash3d 研究所 pv3d 教程 研究所小贴士: 美工美工美工,提高效率的首要。现在是,未来也是。










最近更新:
● wan925446570阁下在讨论区里 发表新主题“怎么配置away3d运行环境啊???...”(20:38:35)
● yanfaqiang阁下在讨论区里 回复“《超简易papervision3D基础 ...”(18:08:41)
● cripel阁下在讨论区里 回复“...”(14:38:04)
浏览主题:重新替代了遍,还是不行 请教xml或dea模型的贴图交互代码,如有大师比较闲,顺便看看我

重新替代了遍,还是不行 请教xml或dea模型的贴图交互代码,如有大师比较闲,顺便看看我
猫七七 (2011-04-02 15:22:05)

上张图片,实现人物换装效果,帮帮忙
package 
{
import flash.display.*;
        import flash.events.Event;

import flash.events.MouseEvent;

import flash.net.URLRequest;

import org.papervision3d.cameras.FreeCamera3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;

import org.papervision3d.materials.BitmapFileMaterial;

import org.papervision3d.materials.MovieMaterial;

import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.events.InteractiveScene3DEvent;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.objects.parsers.Collada;
import org.papervision3d.materials.utils.MaterialsList;


public class test01 extends Sprite
{
private var viewport:Viewport3D;
private var renderer:BasicRenderEngine;
private var scene:Scene3D;
private var camera:FreeCamera3D;

private var plane1:Plane;
private var car:Collada;

private var isFront:Boolean = true;
private var mc1:MovieClip=new MovieClip();

private var mm:MovieMaterial;
private var mp1:BitmapFileMaterial;
private var mp2:BitmapFileMaterial;

private var loader:Loader=new Loader();

public function test01():void
{
viewport = new Viewport3D(400,400);
renderer = new BasicRenderEngine  ;
scene = new Scene3D  ;
camera=new FreeCamera3D();
camera.y = 500;
camera.moveBackward(800);


addChild(viewport);
viewport.interactive = true;

loader.load(new URLRequest("y.jpg"));
loader.addEventListener(MouseEvent.CLICK,onInter1);
loader.addEventListener(MouseEvent.MOUSE_OVER,onInter2);
loader.addEventListener(MouseEvent.MOUSE_OUT,onInter3);

mm = new MovieMaterial(mc1,true,true);
mm.smooth = true;
mm.interactive = true;

plane1 = new Plane(mm,240,238);

mc1.graphics.beginFill(0xDDDDDD);
mc1.graphics.drawRect(0, 0, 0, 0);
mc1.graphics.endFill();

mc1.addChild(loader);
loader.x = loader.y = 50;
loader.scaleX = loader.scaleY = 2;


mp1 = new BitmapFileMaterial("ca.jpg");
mp2 = new BitmapFileMaterial("car.jpg");



car = new Collada("car.xml",new MaterialsList({all:(mp1)}));

plane1.moveLeft(500);

car.moveRight(100);
car.yaw(30);

scene.addChild(plane1);
scene.addChild(car);




addEventListener(Event.ENTER_FRAME,process);
}

public function onInter1(evt:MouseEvent):void
{
if (isFront)
{
car.material = mp2;
isFront = false;
}
else
{
car.material = mp1;
isFront = true;
}

}
public function onInter2(evt:MouseEvent):void
{
viewport.getChildLayer(plane1).buttonMode = true;
}
public function onInter3(evt:MouseEvent):void
{
viewport.getChildLayer(plane1).buttonMode = false;
}


private function process(evt:Event):void
{
car.rotationY = -((mouseX / stage.width) * 360);

renderer.renderScene(scene,camera,viewport);
}

}
}







flash 3d 研究所 fur3
(2011-04-02 15:59:12)
如果是pv3d的话,更换贴图以前说过很多次,要更换bitmapData,而不能只更换material
如果是其他引擎则没有个不同。

给dae更换贴图更加麻烦,因为不要知道dae里到底贴图是对应的那个材质名,然后更换那个材质名下对应的贴图。


flash 3d 研究所 猫七七
(2011-04-06 15:21:06)
bitmapData怎么导入位图,不太懂,大师能详细点不,多谢



flash 3d 研究所 猫七七
(2011-04-06 15:35:50)
还是先学学3.0基础再弄吧,唉...没基础不好混呢


flash 3d 研究所 fur3
(2011-04-07 12:39:42)
是的,做三维开发语言基础一定要好,不然很多就算说了原理也难以实现。


评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了