- 浏览: 95140 次
- 性别:
- 来自: 上海
文章分类
最新评论
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 1550→前端的主程序架构和模块划分与人手和人事分工是紧密联系在一起的 ... -
Flash中的深度排序
2011-06-28 11:34 1275As for Multiplayer Games and Vi ... -
Flex 中的callback
2011-06-28 11:16 964Flash支持传递函数做完参数传递。 下面是主函数中的方法 ... -
常用flash引擎和框架
2011-06-27 11:08 2986官方在线帮助(没标英文的都是中文) 用于 Adobe Flas ... -
原来flash player对图片的解码不是异步的,AIR2.6后就异步了
2011-06-27 10:53 851用过 Loader 对象的人都知道,加载图片时,无论是使用 l ... -
Flash WebGame 开发经验心得和PureMVC框架细说
2011-06-27 10:32 1068→前端的主程序架构和模块划分与人手和人事分工是紧密联系在一起的 ... -
简要评说Adobe的FlashPlayer的渲染算法
2011-06-27 10:22 1026前些时候看到CSDN上一篇文章介绍FlashPlayer的渲染 ... -
游戏中的智能寻路
2011-05-22 18:20 1270近年来,游戏产业的快 ... -
as3中ProgressEvent的bytesTotal始终为0
2011-05-16 09:50 1515as3中ProgressEvent的bytesTotal始终为 ... -
使用URI-Style Namespace编译ActionScript/Flex Library
2011-05-12 11:10 819当你开发了一个有着多个Pacakge的类库,并在MXML中使用 ... -
环境贴图
2011-03-29 10:49 1096教程:实时环境映射贴图技术实时环境映射贴图技术(Real-ti ... -
Python之旅
2010-12-09 19:40 949一直用AS3+Red5做一些小游戏,感觉挺方便的,特别在做上下 ... -
flash player10的rotationY的使用
2010-12-07 12:26 1608flash player10提供了对3D的支持,虽然功能不够强 ... -
red5的常用方法
2010-12-03 10:11 977在使用red5+flash做rpg游戏开发的时候有些功能是需要 ... -
PV3d性能优化
2010-11-25 14:19 1346当你优化你的程序时, ... -
Flash中矢量和位图的使用
2010-06-09 16:47 890最近在做一个世界地图的Flash,其中导入一个很大的矢量图形, ... -
flex 3 + .net开发flash Remoting四[完整代码
2010-03-02 20:49 761一. 相关说明: 本 ... -
关于PV3D常用材质的讨论
2009-12-17 14:05 1113PV3D中的贴图材质有很多。 颜色材质Co ... -
AS3中的loading与stage
2009-12-16 13:53 1009在AS3中如果用loading在主flash中是不能使用sta ...
相关推荐
6. **动画(Animation)**:PV3D支持对3D对象的属性进行动画处理,如旋转、平移和缩放,以及材质和灯光的动态变化。 **PV3D的架构** PV3D主要由以下几个组件组成: 1. **渲染器(Renderer)**:负责将3D场景转换...
5. **光照与阴影**:PV3D支持各种光照类型,如点光源、聚光灯和平行光,以及阴影的生成,这些都能显著增强3D场景的真实感。 6. **摄像机控制**:掌握如何移动、旋转摄像机,实现3D场景的视角变换,为用户提供沉浸式...
此外,理解PV3D的事件处理机制和3D坐标系统也是必要的。 7. 文件结构:压缩包中的"SunSys"可能包含了整个项目的源代码、资源文件(如3D模型、纹理贴图)、配置文件和可能的库文件。分析这些文件可以深入理解项目的...
在给定的“用于flash中的PV3D组件包”中,我们将探讨PV3D(Papervision3D)如何与Flex结合,以及如何利用它来创建震撼的3D效果。 PV3D是Adobe Flash平台上的一款强大的3D引擎,它为开发者提供了在Flash Player中...
2.3 动态性与性能优化:AS3.0的动态性让PV3D能根据需要动态地添加和移除3D对象,同时,通过使用DisplayObjectContainer和DisplayObject的优化技巧,可以提升3D场景的渲染效率。 三、PV3D的关键技术 3.1 面向切面...
PV3D是基于ActionScript 3的,因此它与Adobe Flash Player和Adobe AIR平台紧密集成,允许开发者在Web上创建丰富的3D交互体验。 **一、PV3D基本概念** 1. **ActionScript 3**: PV3D是基于ActionScript 3.0的,AS3是...
5. **兼容性**:PV3D与Flex和ActionScript 3.0紧密集成,使得具备AS3编程经验的开发者能够快速上手。 在这个资源包中,可能包含以下内容: - **库文件**:PV3D的核心库,如`pv3d.swc`,开发者可以将其导入到他们的...
- 使用PV3D加载和渲染:在AS3代码中,开发者需要加载这些资源,并使用PV3D库的类和方法来创建3D场景,设置相机视角,以及处理用户的交互输入。 4. **交互功能**:PV3D允许用户通过添加事件监听器来实现全景图的...
然后,可以通过PV3D的官方文档、示例代码和社区资源来学习如何创建3D对象、设置光照和纹理、控制摄像机以及处理用户输入。 总的来说,PV3D是一个强大的工具,它将3D图形的魅力带入了Flash平台,让Web开发者能够创建...
在安装PV3D之前,你需要确保已经安装了Adobe Flex SDK和Flash Player,因为PV3D是基于ActionScript 3.0开发的,与Flash平台紧密相连。你可以通过官方网站下载这些工具。安装PV3D库时,通常是将下载的库文件添加到...
**PV3D文档(chm)** PV3D全称为Papervision3D,是一个开源的Flash平台3D图形库,允许开发者在Adobe Flash Player环境中创建丰富的三维交互体验。这个"PV3D help (英文) CHM格式 API帮助文档"是针对Papervision3D的...
【PV3D与Flash技术】 PV3D全称为Papervision3D,是一个基于Adobe Flash平台的开源三维(3D)图形库。这个技术允许开发者在网页上创建丰富的、交互式的3D场景,为用户提供一种超越传统2D体验的新颖视觉效果。PV3D在...
《深入理解PV3D:1.5与1.7版本源码解析》 Papervision3D(PV3D)是Flex平台上的一个开源3D引擎,它为Adobe Flash和Flex应用程序提供了强大的3D图形渲染能力。在本文中,我们将深入探讨PV3D 1.5版本和1.7版本的源码...
在PV3D项目中,SWC文件通常包含了PV3D的核心库,这些库包含了处理3D渲染、对象加载、动画制作等核心功能的类和函数。将SWC文件导入到你的Flash项目中,可以使你的代码直接调用PV3D的API,无需手动编写底层3D图形代码...
7. **工具的使用**:可能提到了一些与PV3D配合使用的工具,如Blender或3DS Max,用于创建3D模型并导入到PV3D环境中。 8. **性能优化**:交互性可能导致性能问题,文档可能涵盖了一些优化技巧,如减少不必要的计算,...
5. **光照与材质**:PV3D提供了多种光源类型,如点光源、平行光等,以及各种材质模型,如基本材质、多层材质、镜面反射材质等。理解如何设置和应用这些元素可以增强3D场景的真实感。 6. **渲染优化**:由于Flash ...
【PV3D入门之BOY(源码)】是一篇关于使用PV3D(Panda3D)框架进行3D编程的教程,其中"BOY"可能是项目或示例的名称。PV3D,全称Panda3D for Python,是Python的一个3D渲染引擎,它基于C++的Panda3D库,为开发者提供了...
- **DisplayObject**: PV3D中的3D对象都继承自DisplayObject,这与AS3的2D显示对象体系相一致,允许3D对象与其他2D内容混合并进行交互。 2. **主要组件** - **Camera3D**: 控制3D场景的视角,可以实现平移、旋转...
5. **事件处理**:PV3D 3D 电子书展示平台需要监听用户的操作,比如点击、滚动等,以便做出相应的反馈,源码中会有相关的事件监听和处理机制。 6. **资源管理**:电子书的图片、字体和其他资源的加载和管理也是源码...