博客统计信息

51cto推荐博客
用户名:cy3502398
文章数:85
评论数:55
访问量:163837
无忧币:507
博客积分:1020
博客等级:5
注册日期:2009-02-09

我的技术圈(2)

更多>>
pv3d中ParticleMaterial材质的运用
2009-08-18 14:35:33
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://leo398.blog.51cto.com/658992/193064
先帖上简单的代码.后面再来解释
package {
 import flash.display.Bitmap;
 import flash.display.BitmapData;
 import flash.display.Loader;
 import flash.display.LoaderInfo;
 import flash.events.Event;
 import flash.net.URLRequest;
 import flash.system.LoaderContext;
 import org.papervision3d.cameras.CameraType;
 import org.papervision3d.core.geom.Particles;
 import org.papervision3d.core.geom.renderables.Particle;
 import org.papervision3d.materials.BitmapMaterial;
 import org.papervision3d.materials.special.ParticleMaterial;
 import org.papervision3d.objects.DisplayObject3D;
 import org.papervision3d.objects.primitives.Plane;
 import org.papervision3d.view.BasicView;
 import org.papervision3d.objects.primitives.Sphere;
 [SWF(width=465, height=465, backgroundColor=0x0, frameRate=60)] ;
 public class ytti_Sntk extends BasicView {
  private var _tempbmd:BitmapData;
  private var _particles:Array;
  private var _pcls:Particles;
  public function ytti_Sntk() {
   super(0,0,true,false,CameraType.TARGET);
   var loader:Loader = new Loader();
   loader.contentLoaderInfo.addEventListener(Event.COMPLETE, this._onImageLoaded);
   loader.load(new URLRequest('陈勇.png'), new LoaderContext(true));

  }
  private function _onImageLoaded(e:Event):void {
   var loader:Loader = LoaderInfo(e.target).loader;
   _tempbmd = Bitmap(loader.content).bitmapData as BitmapData;
   camera.z = -300;
   _particles = [];
   _pcls = new Particles();
   scene.addChild(_pcls);
   var div:Number = 3;
   for (var w:uint = 0; w < _tempbmd.width; w+=div) {
    for (var h:uint = 0; h < _tempbmd.height; h+=div) {
     var color:uint = _tempbmd.getPixel(w,h);
     var px:int = w - (_tempbmd.width)/2;
     var py:int = -(h - (_tempbmd.height)/2);
     var pz:int = color/0xFFFFFF * 40;
     var material:ParticleMaterial = new ParticleMaterial(0x00FF00,0.7-(0.7*color/0xFFFFFF)+0.3,1);
     var particle:Particle = new Particle(material,2,px,py,0);
     _pcls.addParticle(particle);
     _particles.push(particle);
    }
   }
   /*
               var img:Bitmap = new Bitmap(_tempbmd);
               addChild(img);
               img.scaleX = img.scaleY = 0.4;
               */
   startRendering();
   addEventListener(Event.ENTER_FRAME , loop);
  }
  private function loop(e:Event):void {
   _pcls.yaw(2);
  }
 }
}
 

本文出自 “flash、AIR、Flex、pv3d” 博客,请务必保留此出处http://leo398.blog.51cto.com/658992/193064

分享至
更多
一键收藏,随时查看,分享好友!
xysliang
1人
了这篇文章

附件下载:
  源文件
类别:pv3d技术圈()┆阅读()┆评论() ┆ 推送到技术圈返回首页

文章评论

 
2009-08-19 22:29:15
支持一下 有点深奥

2009-08-20 18:12:27
支持一下

2011-03-26 16:43:56
顶!   很好,很强大。

 

发表评论            

【技术门诊】专家解析:软考重点难点及应试技巧
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容: