PV3D学习笔记.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PV3D学习笔记

pv3D 简介: PV3D(PaperVision3D)是一个很著名的Flash 3D免费开源引擎,是一个基于ActionScript的开源项目,主要由巴西人Carlos开发出来,目的在于实现更加炫丽美观、功能强大的Flash 3D Web应用程序。,PV3D的出现大大降低了我们制作flash3D动画的难度。   现在商业性网站采用这套引擎来做应用。基于此的Papervision3D无论是在效率、功能上都有了很大的提高。随着现在Web 2.0、Web-Game及休闲类竞技网络游戏的发展,Papervision3D的应用将会越来越广泛。 性能限制 由于当前的flash播放器不支持GPU,因此flash3d中的运算都是基于CPU的,当表现复杂图像时往往显得力不从心。通常认为当前pv3d能够同时显示的面为2000-3000 补间动画:做flash动画时,在两个关键帧中间需要做“补间动画”,才能实现图画的运动;插入补间动画后两个关键帧之间的插补帧是由计算机自动运算而得到的。SecurityError: Error #2148: SWF 文件 (SWF 文件不能访问本地资源)访问本地文件现在flashplayer做了安全限制解决方法如下:找到系统盘,输入路径“C:\WINDOWS\system32\Macromed\Flash\FlashPlayerTrust“ 在此目录下添加一个文件*.txt文件。内容输入flash项目路径即可。比如文件内容为:“D:\demo\test\”,当然也可以设置为“D:\”。首先,viewportLayer可以解决大部分的破面问题,但是要想完全解决破面是不可能的。这是pv3d算法的硬伤。只能将破面压缩到一个可以接受的程度。 那么实际开发中应该怎么操作呢? pv3d中的坐标很头疼。对象实例化完之后对对象赋了坐标x,y,z,可是当你想用的时候却发现这个值变成了(0,0,0)。原来pv3d中的坐标都是靠4*4的矩阵来算的,x,y,z赋值可以,但是再取那就over了。 后来几经探索终于发现了DisplayObject3D中的screenZ属性,而且这个值真实存在。大喜过望啊。于是利用DisplayObject3D的screenZ做依据进行分层的想法开始实施。结果解决了大部分破面问题。 但是在当DAE模型中元素变多以后,发现这个算法还是出现了问题。原来DAE的child中很多的screenZ都是NaN,如果这些child参与到分层那还是会有大量的破面。 OK,总结一下,对于DAE遍历children属性对children的sreenZ不为NaN的参与分层。注意要递归遍历。加多模型的面数 当一个宏大的草原只由2个三角形构成的时候,稍稍破面,就等于消失了一半的草原,非常明显。但当一个草原由1000个面组成的时候,每个面就很小了,即使破面也不是太明显。那么一百万个面组成呢?(当然不是叫我们真的要用这么多面,适当就是了) 当然这个方法的代价是效率明显下降,导入文件体积变大变慢。使用这个办法的前提是用户的效率不大大减小的情况下。 四叉树 Away3D里首先出现了QuadTree摄像机,可以基本解决破面的问题。10月pv3d终于也有了自己四叉树渲染器QuadrantRenderEngine,可惜它们的实用价值都很小,因为在实际运用中非常缓慢(我的意思是真的’非常缓慢’,不是人类能够接受的缓慢,我们的包里没有提供这个渲染器也是这个原因)。 到底是什么原因让四叉树没有成为flash3d的 ‘救世神器’呢? 交叉,遮挡这种高端图形处理,现在游戏都是靠图形加速卡完成,而目前网页3D只能靠CPU运算。 四叉树的基本思路是:以互相交叉的面的相交线,靠程序把两个面继续细分成6个或更多的面。只要发生相交,都要进行海量的运算,即使我们保证每个用户都是现在的n核CPU,也难以完成多于几百个面的游戏场景(现在的游戏一个场景一般有可能上十多万面)。 美工掩饰 尽量避免两个面相交 尽量避免两个面非常靠近 尽量避免使用‘扁长’物体,尽量保持每个物体‘胖圆’,并避免两个物体靠近。 如果确定为不会显示的面,比如外壳遮住的内部,尽量在三维软件中删除掉。

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档