- 浏览: 95223 次
- 性别:
- 来自: 上海
文章分类
最新评论
PV3D是一个开源的遵循MIT协议的使用AS3代码写成的3D引擎.
在PV3D中,当两个物体接触时,他们的面就回进行错误排列,产生破面现象,为什么会出现这种情况。
三维物体的面的最小单位是三角形,三角形离摄像机的垂直距离,我们一般称作Z-depth,我一般称作Z-depth(深度),所以当两个最小单位碰面的时候,就只能出现一个在另个物体的上面,而不能都出现一部分。怎样解决?
1.第一个办法是使用viewportLayer做整体排列来调整这个模型的深度,让一个物体在另一个物体的上面,而不是事一个物体的一部分在另一个物体的上面,当然这样的代价,就是一个物体会突然蹦到另一个物体的外面。但是效率高,不需要用四叉树渲染,在没有3D加速卡渲染的情况下,是一个很好选择,因为flash作为一个客户端程序没有办法去调用DirectX中的API,所有没办法去使用显卡去渲染,而只能使用cpu去渲染。我们通常看到在使用PV3D在运行在浏览器时,CPU的使用率都很高,就是这个原因。
2.使用更多的面
这样破面的几率更小,同时出现破面后的,影响也越小,因为面越多,出现破面后的影响的区域越小,当然这样会影响一定效率,CPU要花更多时间来渲染这些面。
3.四叉树渲染
什么交四叉树渲染,
四叉树用于点数据、区域、曲线、平面及立体方面。在每一层上可以分解成相等的部分。
区域四叉树是基于把图像数组不断细分到四个相同大小的象限中。如果这个数组不是完全由1或完全由0组成(也就是说这个区域没有覆盖整个数组),那么它将被细分到象限中、子象限中,依此类推,直到得到完全由1或完全由0组成的块为止 。
作为区域四叉树的一个例子,从图1.可以看出,区域内的像素用1表示,区域外的像素用0表示。由图1中数组所产生的块由图1.1c表示,这个过程由度数为4的树表示(即每一个非叶子结点有4个孩子结点)。
在树型表示中,根结点与整个数组相对应。一个结点的每一个子结点表示一个由这个结点所表示区域的一个象限(按西北、东北、西南、东南次序标记)。叶结点则与那些没有必要进一步细分的块相对应。 标记为黑的或白的,主要依据它的相应块是否完全在表示的区域内(仅包含1)或外(不含1)。所有的非叶子结点均被标记为灰色(也就是说,它的块同时包含0和1)。
简单的说就是将破门的三角形,通过算法拆成更新的三角形,在PV3D中已经加入了QuadTree算法,很好的解决了这个问题
private function clickHandler(e:MouseEvent):void
{
if(renderer is QuadrantRenderEngine)
renderer = new BasicRenderEngine();
else
renderer = new QuadrantRenderEngine(QuadrantRenderEngine.ALL_FILTERS);
}
但是当面很多的时候,效率确实不敢恭维。
我的网站设计 web design home page
http://www.webdesign-cn.com
http://www.webdesign-china.cn
在PV3D中,当两个物体接触时,他们的面就回进行错误排列,产生破面现象,为什么会出现这种情况。
三维物体的面的最小单位是三角形,三角形离摄像机的垂直距离,我们一般称作Z-depth,我一般称作Z-depth(深度),所以当两个最小单位碰面的时候,就只能出现一个在另个物体的上面,而不能都出现一部分。怎样解决?
1.第一个办法是使用viewportLayer做整体排列来调整这个模型的深度,让一个物体在另一个物体的上面,而不是事一个物体的一部分在另一个物体的上面,当然这样的代价,就是一个物体会突然蹦到另一个物体的外面。但是效率高,不需要用四叉树渲染,在没有3D加速卡渲染的情况下,是一个很好选择,因为flash作为一个客户端程序没有办法去调用DirectX中的API,所有没办法去使用显卡去渲染,而只能使用cpu去渲染。我们通常看到在使用PV3D在运行在浏览器时,CPU的使用率都很高,就是这个原因。
2.使用更多的面
这样破面的几率更小,同时出现破面后的,影响也越小,因为面越多,出现破面后的影响的区域越小,当然这样会影响一定效率,CPU要花更多时间来渲染这些面。
3.四叉树渲染
什么交四叉树渲染,
四叉树用于点数据、区域、曲线、平面及立体方面。在每一层上可以分解成相等的部分。
区域四叉树是基于把图像数组不断细分到四个相同大小的象限中。如果这个数组不是完全由1或完全由0组成(也就是说这个区域没有覆盖整个数组),那么它将被细分到象限中、子象限中,依此类推,直到得到完全由1或完全由0组成的块为止 。
作为区域四叉树的一个例子,从图1.可以看出,区域内的像素用1表示,区域外的像素用0表示。由图1中数组所产生的块由图1.1c表示,这个过程由度数为4的树表示(即每一个非叶子结点有4个孩子结点)。
在树型表示中,根结点与整个数组相对应。一个结点的每一个子结点表示一个由这个结点所表示区域的一个象限(按西北、东北、西南、东南次序标记)。叶结点则与那些没有必要进一步细分的块相对应。 标记为黑的或白的,主要依据它的相应块是否完全在表示的区域内(仅包含1)或外(不含1)。所有的非叶子结点均被标记为灰色(也就是说,它的块同时包含0和1)。
简单的说就是将破门的三角形,通过算法拆成更新的三角形,在PV3D中已经加入了QuadTree算法,很好的解决了这个问题
private function clickHandler(e:MouseEvent):void
{
if(renderer is QuadrantRenderEngine)
renderer = new BasicRenderEngine();
else
renderer = new QuadrantRenderEngine(QuadrantRenderEngine.ALL_FILTERS);
}
但是当面很多的时候,效率确实不敢恭维。
我的网站设计 web design home page
http://www.webdesign-cn.com
http://www.webdesign-china.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 1516as3中ProgressEvent的bytesTotal始终为 ... -
使用URI-Style Namespace编译ActionScript/Flex Library
2011-05-12 11:10 820当你开发了一个有着多个Pacakge的类库,并在MXML中使用 ... -
环境贴图
2011-03-29 10:49 1097教程:实时环境映射贴图技术实时环境映射贴图技术(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 1347当你优化你的程序时, ... -
PV3D处理3D矢量绘图与3D文本
2010-08-23 11:46 1162Papervision3D主要以位图为 ... -
Flash中矢量和位图的使用
2010-06-09 16:47 891最近在做一个世界地图的Flash,其中导入一个很大的矢量图形, ... -
flex 3 + .net开发flash Remoting四[完整代码
2010-03-02 20:49 762一. 相关说明: 本 ... -
关于PV3D常用材质的讨论
2009-12-17 14:05 1114PV3D中的贴图材质有很多。 颜色材质Co ...
相关推荐
然而,在模型构建过程中,由于各种原因,有时会出现破面,这会影响模型的完整性和质量。"修补破面"是解决这类问题的关键技术。以下是一个详细的"PRO/E修补破面教程",教你如何快速有效地修复模型中的破损曲面。 ...
破面,是指在3D模型中,由于各种原因导致的表面不连续或者存在缝隙的情况。这可能由数据导入错误、模型布尔运算后的不完整、几何体间的接合不平滑等因素引起。对于一个合格的3D建模师来说,能够识别并修复这些破面是...
在三维建模软件中,"补破面"(或称为"补面")是一个至关重要的技术环节,尤其在使用如PROE(现在被称为Creo Parametric)这样的专业CAD软件进行产品设计时。破面通常指的是模型中存在缺陷、不连续或者有错误的表面,...
标题中提到的“proe5.0破面修补”涉及的是Pro/ENGINEER(简称Pro/E或Pro/Engineer)软件中的一个操作,这是由PTC公司开发的先进的3D参数化产品设计软件。该软件广泛用于机械设计领域,用于创建精确的3D模型。在Pro/E...
### Creo2.0破面修补详细教程 #### 一、引言 在CAD设计过程中,经常遇到模型中出现破损的表面(简称“破面”),这些破损可能会导致后续的操作无法进行,例如实体化等。Creo2.0作为一款功能强大的三维建模软件,在...
### proe3.0破面修复教程 #### 核心知识点概述 - **ProE3.0中的破面问题及修复方法**:介绍在ProE3.0中遇到的常见破面问题及其修复技巧。 - **修复指令详解**:深入探讨ProE3.0中的修复指令,包括其功能、使用步骤...
标题中的“catia破面修补”指的是在CATIA软件中处理3D模型时遇到的“破面”问题,这是三维建模中常见的挑战。CATIA是达索系统开发的一款高级三维设计软件,广泛应用于航空航天、汽车制造等领域。破面通常指的是3D...
从给定的文件信息来看,主要讨论的是使用Pro/ENGINEER Wildfire 5.0的ImportDataDoctor™工具进行模型修复,尤其是针对“补破面”这一特定需求。以下是对标题、描述、部分标签和内容中提及的关键知识点的详细解析。 ...
Unity 2D图片生成简单3D模型UCLA Mesh Creator是一款工具,它允许开发者将2D图像转换为3D模型,从而在Unity引擎中创建出具有立体感的效果。这个过程是通过特殊的算法分析2D图像的像素信息,然后构建出相应的3D网格...
CATIA破面修补.rar
分享下破面修补的教程,希望大学好好学习天天向上
ProE5.0破面修补,超级好用想希望大家分享
3dmax一键通道渲染 3DMAX一键通道渲染脚本插件功能介绍: 1、一键自动安装,使用方便 2、支持渲染各种通道AO、SSS、...3、修复了VR代理渲染破面 4、自动关闭灯光,自动渲染,自动切换扫描线渲染器,自动还原材质
SU 中出现破面的四种解决方法 SketchUp 是一款功能强大且广泛应用的三维设计软件,但是在使用中,用户可能会遇到模型破面(Camera Clipping Plane)的问题,即模型的近处消失不见,好像有一个无形的平面把模型前段...
中望3DTM是由中望公司最新推出的一款高性价比的CAD/CAM一体化解决方案,同时也是中国唯一一款具有全球自主知识产权的三维设计软件。...中望3D强大的曲面造型和方便的修复和缝合工具极大的方便了间隙和破面的修补
减面过程中,要特别注意保持模型的拓扑结构合理,避免出现尖角、破面或者拓扑不连续等问题。同时,减面后可能会影响纹理贴图的映射,因此通常需要配合UV编辑工具进行调整。对于具有法线贴图、置换贴图等高级效果的...
proe5.0的IDD环境下的破面修补,希望对大家有用哟!!与以前的版本不同,和大家分享一下!
creo3.0_破面修补详细教程.doc
完成后,模型还需要经过细致的检查,确保没有接缝、破面或者拓扑不一致的问题,以保证在渲染和动画制作时的高质量表现。 对于3D模型的使用者来说,这个高达雪崩机器人的3D模型可以用于多个领域。在游戏开发中,它...