- 最后登录
- 2018-12-19
- 注册时间
- 2012-8-20
- 阅读权限
- 90
- 积分
- 54706
- 纳金币
- 32328
- 精华
- 41
|
1.线框材质(WireframeMaterial)
var material:WireframeMaterial = new WireframeMaterial(0x000000,0.5,2);创建一个相框材质对象时,可以使用三个参数:
参数 数据类型 默认值 Description
1 Color 颜色 Number 0xFF00FF
一个24位的颜色值,画线框时线
条的颜色
2 Alpha 透明度 Number 1
透明度值(0-1),线条的
3 Thickness 粗细 Number 0 0-255.0 表 2.颜色材质(ColorMaterial)
var material:ColorMaterial = new ColorMaterial(0x00FF00,0.5);
Parameter Data type Default value Description
1 Color颜色 Number 0xFF00FF(品红色) 24位的填充色
2 Alpha透明度 Number 1 (不透明) 透明度:0到1。
3 Interactive交互性 Boolean False(不支持) 设置材质是否支持
交互:如鼠标单击
3.位图材质(BitmapMaterial)var bmp:BitmapData = new BitmapData(200,200,***e,0x0);
var material:BitmapMaterial = new BitmapMaterial(bmp); 4.位图文件材质(BitmapFileMaterial)var material:BitmapFileMaterial = new BitmapFileMaterial("assets/mill.jpg");
5.位图元件材质(BitmapAssetMaterial)var material:BitmapAssetMaterial = new BitmapAssetMaterial("mill");
mill是Flash库文件的中元件的连接标示符在Flex Builder and Flash Builder中使用元件是将元件转换成BitmapAsset对象 ,然后用
BitmapAsset的bitmapData属性然创建一个常规的BitmapMaterial.对象。
嵌入也可以实现。使用元数据标签[Embed]:如下面的代码所示:
[Embed (source="assets/mill.jpg")] public var mill:Class;
我们将mill.jpg文件导入为元件。命名为mill类,下面这行代码将创建mill
对象并将它转换成BitmapAsset格式。
var millAsset:BitmapAsset = new mill() as BitmapAsset;
然后创建位图材质,就像我们前面的做法一样。
var material:BitmapMaterial = new BitmapMaterial(millAsset.bitmapData);6.两种使用影片剪辑作为材质的方法
6.1 影片材质(MovieMaterial)
如:
var materialSprite:Sprite = new Sprite();
materialSprite.graphics.beginFill(0x333333);
materialSprite.graphics.drawRect(0,0,200,200); var material:MovieMaterial = new MovieMaterial(materialSprite);
material.smooth = ***e;
material.doubleSided = ***e;
plane = new Plane(material);
6.2 影片元件材质(MovieAssetMaterial)
如:
var material:MovieAssetMaterial = new MovieAssetMaterial("material",false,***e);
material.doubleSided = ***e;
plane = new Plane(material,500,500);
纹理从左至右漂移时因为他影片剪辑在play 的时候尺寸在改变。能看到黑色背景是因为设
置了透明属性为***e,所以要设为false。漂移也有一种简单的办法。你必须为纹理定义一个
矩形对象,在讲解MovieMaterial 类时,构造函数的第五个参数就是一个矩形对象。
MovieAssetMaterial 类略微有些不同。它将这个参数内化为一个属性,MovieMaterial 类也有
这个属性。所以只要加入以下代码:
material.rect = new Rectangle(0,0,200,200);
再次编译发布,纹理漂移的问题解决了。
第二个问题是闪烁和文本像素化了。当我们使用位图作为材质之前我们见过像素化。解决方
法是开启光滑属性。material.smooth = ***e;由于平面材质上有了文本和线条,就很容易看出这个Plane 对象是有两个扭曲的三角形面构成,
当precise 属性设置为***e 时,PV3D 将自动的将三角形面细分以创建更多的新的三角形面这样就更精确 var material:MovieAssetMaterial = new MovieAssetMaterial("material",false,***e,false,***e);
material.doubleSided = ***e;
material.rect = new Rectangle(0,0,200,200);
material.smooth = ***e;
material.precisionMode = PrecisionMode.STABLE;//是定义精度模式来避免摇晃闪烁效果
plane = new Plane(material,500,500); PV3d 将材质成2D 方式扭曲,造成***的假象。变形、扭曲后的图片贴在3D 物体上看上去就很逼真
了,这种PV3D 的贴图方式我们叫做仿射贴图。
7.视频流材质(VideoStreamMaterial)
如:
var video:Video = new Video();
video.attachCamera(Camera.getCamera());
var conn:NetConnection = new NetConnection();
conn.connect(null);
var stream:NetStream = new NetStream(conn);
var material:VideoStreamMaterial = new VideoStreamMaterial (video, stream);
material.animated = ***e;//材质的动画属性设为***e. var planelane = new Plane(material,640,480,3,3);
8.组合材质(Combining materials)
在某些情况下,你可能需要将不同的材质组合起来当做一种材质来使用。比如在开发期,将线框材质和其
他材质组合起来使用就显得非常有用。这就要用CompositeMaterial 类了
如:
var bmpMaterial:BitmapFileMaterial = new BitmapFileMaterial ("assets/mill.jpg");
var wireMaterial:WireframeMaterial = new WireframeMaterial();
var material:CompositeMaterial = new CompositeMaterial();
material.addMaterial(bmpMaterial);
material.addMaterial(wireMaterial); var planelane = new Plane(material,500,375,3,3); 【来源:互联网】
更多精彩教程,尽在web3D纳金网http://www.narkii.com/college/ |
|