查看: 3061|回复: 1
打印 上一主题 下一主题

pv3d学习笔记-材质部分

[复制链接]
.    

3797

主题

11

听众

5万

积分

首席设计师

Rank: 8Rank: 8

纳金币
32328
精华
41

活跃会员 优秀版主 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2013-3-21 15:16:53 |只看该作者 |倒序浏览
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/
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

0

主题

1

听众

2458

积分

中级设计师

Rank: 5Rank: 5

纳金币
0
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-2-22 15:30:26 |只看该作者
好东西啊,感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-23 22:37 , Processed in 0.818443 second(s), 31 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部