PV3D中材质的种类非常多,都是MaterialObject3D的子类,每个显示对象都需要材质才能显示。我们先来大致看一下所有的材质类:
MaterialObject3D
————LineMaterial
————ParticleMaterial
————————BitmapParticleMaterial
————————MovieAssetParticleMaterial
————TriangleMaterial
————————AbstractLightShadeMaterial
————————————AbstractSmoothShadeMaterial
————————————————EnvMapMaterial
————————————————————CellMaterial
————————————————————PhongMaterial
————————————————GouraudMaterial
————————————FlatShadeMaterial
————————BitmapMaterial
————————————BitmapAssetMaterial
————————————BitmapColorMaterial
————————————BitmapFileMaterial
————————————BitmapViewportMaterial
————————————MovieMaterial
————————————————MovieAssetMaterial
————————————————VideoStreamMaterial
————————BitmapWireframeMaterial
————————ColorMaterial
————————CompositeMaterial
————————ShadedMaterial
————————WireframeMaterial
————VectorShapeMaterial
————————Letter3DMaterial
上面列出了PV3D中所有的材质,大家可以先看一下,有个印象,以后用到的话方便查文档。下面看一下比较常用的几个。
ColorMaterial
ColorMaterial是最常用的一个材质,它只有单纯的颜色和透明度,看下构造函数
ColorMaterial (color:Number = 0xFF00FF, alpha:Number = 1, interactive:Boolean = false)
主要说下interactive这个参数,如果你需要你的三维物体接收交互(例如鼠标点击)的话要将它设为true,还有就是经常问到的一个问题,怎么实现鼠标手型,首先要将viewport的interactive设为true,然后将材质的interactive也设为true以后,在显示对象上监听InteractiveScene3DEvent.OBJECT_OVER事件,监听器中将viewport的buttonMode设为true(前面说过viewport是Sprite的子类,所以可以设置buttonMode),鼠标离开事件里再设为false就可以了,关于交互以后会专门学习下给大家分享
package
{
import gs.TweenLite;
import org.papervision3d.events.InteractiveScene3DEvent;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.view.BasicView;
public class InteractivePlane extends BasicView
{
private var _plane:Plane
private var _material:ColorMaterial;
public function InteractivePlane()
{
super();
init()
}
private function init():void
{
initPanel();
startRendering();
}
private function initPanel():void
{
_material = new ColorMaterial(0x1D9DAD, 1, true);
_material.interactive = true;
_plane = new Plane(_material,500,500);
_plane.rotationX = 45;
scene.addChild(_plane);
viewport.interactive = true;
_plane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onOver);
_plane.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onOut);
_plane.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onClick);
}
private function onClick(e:InteractiveScene3DEvent):void
{
_material.fillColor = Math.random() * 0xffffff;
}
private function onOver(e:InteractiveScene3DEvent):void
{
viewport.buttonMode = true;
TweenLite.to(_plane, 1, { rotationX:0 } );
}
private function onOut(e:InteractiveScene3DEvent):void
{
viewport.buttonMode = false;
TweenLite.to(_plane, 1, { rotationX:45 } );
}
}
}
代码中创建了一个平面,然后给它了一个ColorMaterial的材质,然后监听鼠标的OVER,OUT,CLICK事件,当鼠标移上去的时候平面转动一定角度并出现手型,移开的话转动复原手型消失,当点击的时候给ColorMaterial的fillColor属性重新赋值改变平面颜色。
另外比较常用的还有位图材质BitmapMaterial和带阴影的材质FlatShadeMaterial,使用方法网上都很多大家google一下。
目前蚂蚁的详细PV3D教程就告一段落,基础的已经基本讲得差不多了,后面还会有一些高级应用的专项笔记教程。现在你已经可以创造自己的3D世界啦~发挥你的想象力,have a try~
分享到:
相关推荐
"papervision3d.rar"可能包含的是PV3D的基础教程、示例项目以及更全面的API文档。通过这些资源,开发者可以系统地学习PV3D的架构和工作原理,理解如何构建复杂的3D场景和交互。 全景案例,如"Ball360.zip",是PV3D...
6. **PV3D+Flex集成**:Flex是一个用于构建富互联网应用程序(RIA)的开发框架,与Papervision3D结合使用,可以方便地创建具有3D元素的Flex应用。Flex的组件和事件模型可以与Papervision3D的3D元素无缝集成,提供更...
这一章节将详细介绍如何在Papervision 3D中应用不同的材质和纹理效果。 **5. 3D中的基本运动** 对于动态3D场景来说,物体的运动是必不可少的。这一部分将涵盖如何使用Papervision 3D实现物体的移动、旋转等基本...
Papervision3D(简称PV3D)是Flash平台上最早的3D渲染引擎之一,它为开发者提供了在Web浏览器中构建三维互动体验的能力。这本书的中文翻译版本,对于国内的开发人员来说,无疑是一个学习PV3D技术的重要资源。 1. **...
PV3D,全称为Papervision3D,是一款强大的开源3D图形引擎,专为Adobe Flash平台设计。它允许开发者在网页上创建复杂的3D场景,游戏以及交互式应用程序,从而突破了传统2D Flash的限制。PV3D Essentials是一份专门...
《Papervision3D演示项目详解:七个实例深度剖析》 Papervision3D是一种基于Adobe Flash Platform的开源3D渲染引擎,它允许开发者在网页上创建复杂的3D场景和交互式应用。该技术的出现极大地拓宽了Flash的潜力,使...
3. 光照与材质:PV3D提供了多种光照模型(如点光源、平行光)和材质类型(如Lambert、Phong),能够模拟真实世界的光影效果。 4. 视图和投影:通过设置摄像机的视口和投影方式,可以控制用户在3D场景中看到的内容。...
### Papervision3D.Essentials - 关键知识点解析 #### 一、Papervision3D概述 - **定义**: Papervision3D是一种强大的实时3D引擎,专为Flash设计。它能够将外部创建的3D模型渲染成Flash内容,无需终端用户下载或...
Papervision3D是一个基于ActionScript 3.0的开源库,专为在Adobe Flash平台上构建三维(3D)图形和应用程序而设计。它利用了Flash Player的硬件加速功能,使得在Web浏览器中实现复杂的3D场景成为可能。Papervision3D...
Papervision3D(PV3D)是Flash平台上的一款强大的3D图形库,它允许开发者在网页上创建丰富的、交互式的三维图形和应用程序。本篇文章将深入探讨Papervision3D的API,帮助读者理解并掌握这个工具的核心概念和功能。 ...
关于文件名列表中的"PaperVision3D",这可能是一个包含完整示例代码、文档或者教程的资源包。通常,这样的资源会帮助开发者快速上手,了解如何初始化场景、加载模型、设置动画以及处理用户交互等。开发者可以通过...
- **博客和文章**: 各种在线教程和博客文章提供了丰富的学习材料,解释了PV3D的基本概念和高级技巧。 - **示例代码**: 学习资料中的例子可以帮助理解和实践Papervision3D的各种功能。 - **社区支持**: 论坛和社区...
描述中的“FLASH,FLEX最新PV3D帮助文档”意味着这个压缩包包含的是Papervision3D的最新版官方文档。这份文档可能是开发者学习和理解Papervision3D的关键资源,提供了详细的API参考、教程和示例代码,帮助开发者快速...
《Papervision3D精髓》一书是针对初学者及有一定基础的开发者设计的,旨在教授如何使用Papervision3D(PV3D)创建具有惊人效果和强大动画功能的交互式3D应用程序。PV3D是一种开源的3D引擎,用于Adobe Flash平台,它...
PaperVision3D(PV3D)是一款强大的3D图形引擎,专为Adobe Flash平台设计,旨在简化三维场景的创建与渲染。PV3D的核心在于其对3D场景、相机、渲染引擎以及各种3D对象的支持,使得开发者能够轻松地在Flash环境中构建...
《Papervision3D Essentials》是一本深入探讨Papervision3D(PV3D)的权威指南,中文版的出现使得更多中国开发者能够掌握这个强大的三维渲染库。Papervision3D是一个用于Adobe Flex和Flash平台的开源项目,它为Web...