- 浏览: 92646 次
- 性别:
- 来自: 上海
文章分类
最新评论
Papervision3D主要以位图为基础,所以所有的渲染都被转换为位图。如果采取这种方式,呈现出外观
清晰光滑的文本会成为复杂问题,如在第四章所见的例子MovieAssetMaterial。渲染文本直接采取矢量图
的手段是个很好的选择。基于以下两个原因:
● 位图质量由分辨率决定,对其缩放会导致图片质量下降。矢量图的缩放却无图片质量损失。
● 在变化中的三角形中换行并保证良好的外观是很难的。为保证渲染,3D矢量文本不会在三角形中
绘制。
Papervision3D提供了一组可绘制矢量图形(vector shapes))(如简单图形,文本)的类。用于
绘制图形的方法名与FLASH的drawing API(如lineTo() 与 curveTo())相似,看来这些类便于使用,
所以建立3D矢量文本相当简单。
以下为即将讨论的主题:
● 建立3D矢量文本
● 建立在Papervision3D中使用的字体文件
● 绘制3D矢量图形与线条
● 添加交互到3D矢量图形与文本
本章主要关注已被集成进Papervision3D的VectorVision库。讨论该库的类后,将关注Lines3D类,
该类也能绘制3D线条(3D lines)。在VectorVision被集成前,该类已是Papervision3D的一部分。
某些API 类 属性。
VectorVision:3D矢量文本与3D矢量绘图
VectorVision,以ACTIONSCRIPT开发的类库,能够在Papervision3D中渲染矢量图形和给矢量图
形添加3D视图。这个项目是一个独立的类库,你能下载它和使用它。尽管如此,在2008年6月它被完全
集成进Papervision3D。
在理论上,使用矢量图形和文本意味着你可以绘制任何种类的矢量图,并给它们添加3D视图。本章
节关注:
● 建立3D矢量文本。
● 绘制3D矢量图形,比如线条,圆,矩形。
脑里一定要有3D字母可由3D矢量图形的形式——比如线条,圆,矩形组成的概念。以上的差异是因
为VectorVision在Papervision3D的实现所导致。该库提供一些类可以帮助你建立3D文本(3D text),
同时提供其它类帮助你建立矢量图形。
建立一个3D文本类的模版
因为我们发现3D文本的大量的例子大同小异,我们将见到类的模版,如下:
package
{
import flash.events.Event;
import org.papervision3d.materials.special.Letter3DMaterial;
import org.papervision3d.typography.Font3D;
import org.papervision3d.typography.Text3D;
import org.papervision3d.typography.fonts.HelveticaBold;
import org.papervision3d.view.BasicView;
public class Text3DTemplate extends BasicView
{
private var material:Letter3DMaterial;
private var font3D:Font3D;
private var text3D:Text3D;
private var easeOut:Number = 0.6;
private var reachX:Number = 0.5
private var reachY:Number = 0.5
private var reachZ:Number = 0.5;
public function Text3DTemplate()
{
stage.frameRate = 40;
init();
startRendering();
}
private function init():void
{
//code to be added
}
override protected function onRenderTick(event:Event = null):void
{
var xDist:Number = mouseX - stage.stageWidth * 0.5;
var yDist:Number = mouseY - stage.stageHeight * 0.5;
camera.x += (xDist - camera.x * reachX) * easeOut;
camera.y += (yDist - camera.y * reachY) * easeOut;
camera.z += (-mouseY * 2 - camera.z ) * reachZ;
super.onRenderTick();
}
}
}
定义一些将用于渲染方法的类的属性,而这些渲染方法用于随鼠标移动而改变镜头。同样,所导入的4个
类和定义的3个属性,能够让我们建立3D文本。
webdesign china
http://www.webdesign-cn.com
http://www.levs.cn
清晰光滑的文本会成为复杂问题,如在第四章所见的例子MovieAssetMaterial。渲染文本直接采取矢量图
的手段是个很好的选择。基于以下两个原因:
● 位图质量由分辨率决定,对其缩放会导致图片质量下降。矢量图的缩放却无图片质量损失。
● 在变化中的三角形中换行并保证良好的外观是很难的。为保证渲染,3D矢量文本不会在三角形中
绘制。
Papervision3D提供了一组可绘制矢量图形(vector shapes))(如简单图形,文本)的类。用于
绘制图形的方法名与FLASH的drawing API(如lineTo() 与 curveTo())相似,看来这些类便于使用,
所以建立3D矢量文本相当简单。
以下为即将讨论的主题:
● 建立3D矢量文本
● 建立在Papervision3D中使用的字体文件
● 绘制3D矢量图形与线条
● 添加交互到3D矢量图形与文本
本章主要关注已被集成进Papervision3D的VectorVision库。讨论该库的类后,将关注Lines3D类,
该类也能绘制3D线条(3D lines)。在VectorVision被集成前,该类已是Papervision3D的一部分。
某些API 类 属性。
VectorVision:3D矢量文本与3D矢量绘图
VectorVision,以ACTIONSCRIPT开发的类库,能够在Papervision3D中渲染矢量图形和给矢量图
形添加3D视图。这个项目是一个独立的类库,你能下载它和使用它。尽管如此,在2008年6月它被完全
集成进Papervision3D。
在理论上,使用矢量图形和文本意味着你可以绘制任何种类的矢量图,并给它们添加3D视图。本章
节关注:
● 建立3D矢量文本。
● 绘制3D矢量图形,比如线条,圆,矩形。
脑里一定要有3D字母可由3D矢量图形的形式——比如线条,圆,矩形组成的概念。以上的差异是因
为VectorVision在Papervision3D的实现所导致。该库提供一些类可以帮助你建立3D文本(3D text),
同时提供其它类帮助你建立矢量图形。
建立一个3D文本类的模版
因为我们发现3D文本的大量的例子大同小异,我们将见到类的模版,如下:
package
{
import flash.events.Event;
import org.papervision3d.materials.special.Letter3DMaterial;
import org.papervision3d.typography.Font3D;
import org.papervision3d.typography.Text3D;
import org.papervision3d.typography.fonts.HelveticaBold;
import org.papervision3d.view.BasicView;
public class Text3DTemplate extends BasicView
{
private var material:Letter3DMaterial;
private var font3D:Font3D;
private var text3D:Text3D;
private var easeOut:Number = 0.6;
private var reachX:Number = 0.5
private var reachY:Number = 0.5
private var reachZ:Number = 0.5;
public function Text3DTemplate()
{
stage.frameRate = 40;
init();
startRendering();
}
private function init():void
{
//code to be added
}
override protected function onRenderTick(event:Event = null):void
{
var xDist:Number = mouseX - stage.stageWidth * 0.5;
var yDist:Number = mouseY - stage.stageHeight * 0.5;
camera.x += (xDist - camera.x * reachX) * easeOut;
camera.y += (yDist - camera.y * reachY) * easeOut;
camera.z += (-mouseY * 2 - camera.z ) * reachZ;
super.onRenderTick();
}
}
}
定义一些将用于渲染方法的类的属性,而这些渲染方法用于随鼠标移动而改变镜头。同样,所导入的4个
类和定义的3个属性,能够让我们建立3D文本。
webdesign china
http://www.webdesign-cn.com
http://www.levs.cn
发表评论
-
Android游戏开发
2011-07-01 15:26 196Android开发中Activity是个 -
Flash WebGame 开发经验心得和PureMVC框架细说
2011-06-28 14:02 1524→前端的主程序架构和模块划分与人手和人事分工是紧密联系在一起的 ... -
Flash中的深度排序
2011-06-28 11:34 1239As for Multiplayer Games and Vi ... -
Flex 中的callback
2011-06-28 11:16 935Flash支持传递函数做完参数传递。 下面是主函数中的方法 ... -
常用flash引擎和框架
2011-06-27 11:08 2911官方在线帮助(没标英文的都是中文) 用于 Adobe Flas ... -
原来flash player对图片的解码不是异步的,AIR2.6后就异步了
2011-06-27 10:53 819用过 Loader 对象的人都知道,加载图片时,无论是使用 l ... -
Flash WebGame 开发经验心得和PureMVC框架细说
2011-06-27 10:32 1037→前端的主程序架构和模块划分与人手和人事分工是紧密联系在一起的 ... -
简要评说Adobe的FlashPlayer的渲染算法
2011-06-27 10:22 974前些时候看到CSDN上一篇文章介绍FlashPlayer的渲染 ... -
游戏中的智能寻路
2011-05-22 18:20 1223近年来,游戏产业的快 ... -
as3中ProgressEvent的bytesTotal始终为0
2011-05-16 09:50 1480as3中ProgressEvent的bytesTotal始终为 ... -
使用URI-Style Namespace编译ActionScript/Flex Library
2011-05-12 11:10 794当你开发了一个有着多个Pacakge的类库,并在MXML中使用 ... -
环境贴图
2011-03-29 10:49 1047教程:实时环境映射贴图技术实时环境映射贴图技术(Real-ti ... -
Python之旅
2010-12-09 19:40 924一直用AS3+Red5做一些小游戏,感觉挺方便的,特别在做上下 ... -
flash player10的rotationY的使用
2010-12-07 12:26 1581flash player10提供了对3D的支持,虽然功能不够强 ... -
red5的常用方法
2010-12-03 10:11 954在使用red5+flash做rpg游戏开发的时候有些功能是需要 ... -
PV3d性能优化
2010-11-25 14:19 1316当你优化你的程序时, ... -
Flash中矢量和位图的使用
2010-06-09 16:47 855最近在做一个世界地图的Flash,其中导入一个很大的矢量图形, ... -
flex 3 + .net开发flash Remoting四[完整代码
2010-03-02 20:49 726一. 相关说明: 本 ... -
关于PV3D常用材质的讨论
2009-12-17 14:05 1087PV3D中的贴图材质有很多。 颜色材质Co ... -
AS3中的loading与stage
2009-12-16 13:53 981在AS3中如果用loading在主flash中是不能使用sta ...
相关推荐
pv3d flash 3d源码 pv3d flash 3d源码 pv3d flash 3d源码
PV3D是流行的Flash3D技术,该资料包含了很多PV3D的资料,主要是学习的文档,还包括源码。
pv3d开发包,想学pv3d的朋友一定要下的工具包
pv3d简单全景,一个非常简单的pv3d全景图。
开源3d引擎 pv3d源文件(AS3.0版)及demo.rar 开源3d引擎 pv3d源文件(AS3.0版)及demo.rar
pv3d开发工具as3 编写的pv3d开发工具as3 编写的pv3d开发工具as3 编写的pv3d开发工具as3 编写的
使用PV3D编写的太阳系,同时添加了鼠标事件处理,当鼠标移动到地球的时候,地球会停止旋转,鼠标移开继续旋转
PV3D官网的展示:海底世界http://www.papervision3d.org/
flash as3 3D开发引擎pv3D
PV3D-GreatWhite-DOC. chm格式的pv3d api说明。
pv3d hlep 英文 chm格式 API帮助文档
PV3D 3D 电子书展示平台源码PV3D 3D 电子书展示平台源码
examples in pv3d 关于pv3d安装,简单运用的各种小实例,适合初学者
pv3d网上搜的资料 供大家享用吧,pv3d是一款很有用的3d引擎,非常厉害
不止基本体从DisplayObject3D中继承属性和方法,CameraObject3D也是它的子类.纵观之,Camera3D继承自CameraObject3D,CameraObject3D继承自DisplayObject3D. 这意味着什么? 每个摄像机都从DisplayObject3D继承x,y,z属性...
本软件PV3D是一个很著名的Flash 3D免费开源引擎,功能很强大,效率也可以。官方网站是http://www.papervision3d.org/,源代码下载地址是http://code.google.com/p/papervision3d/。目前最新版本是2.0a(Greate White)...
Papervision3D Essentials学习笔记
是我打包好的PV3D的SWC、AS文件和英文API,相信大家都会用到。
flex全景as库。直接更改路径就能使用,非常方便,并且欢迎研究全景的同行加好友一起研究技术,多交流!
flex制造3d效果,通过这个组件包,你可能了解到在flash中制做3d效果的基本方法