PV3D处理3D矢量绘图与3D文本

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
[url]http://www.webdesign-cn.com[/url]
[url]http://www.levs.cn[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值