pv3d 学习笔记-材质部分
2011-09-17 15:41
239 查看
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,true,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 = true; material.doubleSided = true; plane = new Plane(material); 6.2 影片元件材质(MovieAssetMaterial) 如: var material:MovieAssetMaterial = new MovieAssetMaterial("material",false,true); material.doubleSided = true; plane = new Plane(material,500,500); 纹理从左至右漂移时因为他影片剪辑在play 的时候尺寸在改变。能看到黑色背景是因为设 置了透明属性为true,所以要设为false。漂移也有一种简单的办法。你必须为纹理定义一个 矩形对象,在讲解MovieMaterial 类时,构造函数的第五个参数就是一个矩形对象。 MovieAssetMaterial 类略微有些不同。它将这个参数内化为一个属性,MovieMaterial 类也有 这个属性。所以只要加入以下代码: material.rect = new Rectangle(0,0,200,200); 再次编译发布,纹理漂移的问题解决了。 第二个问题是闪烁和文本像素化了。当我们使用位图作为材质之前我们见过像素化。解决方 法是开启光滑属性。material.smooth = true; 由于平面材质上有了文本和线条,就很容易看出这个Plane 对象是有两个扭曲的三角形面构成, 当precise 属性设置为true 时,PV3D 将自动的将三角形面细分以创建更多的新的三角形面这样就更精确 var material:MovieAssetMaterial = new MovieAssetMaterial("material",false,true,false,true); material.doubleSided = true; material.rect = new Rectangle(0,0,200,200); material.smooth = true; 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 = true;//材质的动画属性设为true. var plane:Plane = 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 plane:Plane = new Plane(material,500,375,3,3); |
相关文章推荐
- pv3d 学习笔记-交互部分
- pv3d 学习笔记-技巧与总结部分
- 学习设计模式笔记(二)部分总结
- android 多媒体部分学习笔记九----数字音频合成
- 学习笔记--http协议部分
- 东软学习,strut2初级学习的部分截图和笔记(八)-标签学习
- android 多媒体部分学习笔记十二----mediaplay自定义播放器
- android 多媒体部分学习笔记十三----mediaStore 检索视频
- Vray材质学习笔记04——磨砂金属材质
- Linux Unix shell 编程指南学习笔记(第四部分)
- Java基础学习笔记 第二部分 part 2
- Memcached学习笔记 — 第四部分:Memcached Java 客户端-gwhalin(2)-性能测试
- iOS开发学习笔记 2-7 C语言部分 字符串
- Python学习笔记-Day03 -第二部分(双向队列-deque和单向队列Queue)
- Linux Unix shell 编程指南学习笔记(第二部分)
- Linux 学习笔记 -- 第四部分 Linux 使用着管理 -- 第19章 认识与分析日志文件
- 深度学习学习笔记——部分API解析
- 数据库系统概论 学习笔记(三)第五部分
- Linux 学习笔记 -- 第五部分 Linux 系统管理员 -- 第20章 启动流程、模块管理与 Loader
- Java IO编程 学习笔记 (其一:基础部分)