【发布时间】:2013-10-09 02:17:23
【问题描述】:
在 papervision 中渲染 900 个三角形是不是太多了? 我知道 CPU 型号也有影响,我使用的是 core2duo 1.7GhZ。但是渲染 900 个三角形,因为 5 个圆柱体似乎太多了,并且在每帧旋转它们时会降低性能......正常情况下的 FPS 是 ~30FPS,但是当旋转或旋转圆柱体到 14~FPS 时它会下降。我对这种性能感到非常惊讶,因为 Quake 或 Doom 它们是纯粹的软件渲染引擎,它们的多边形比我的应用程序多得多,当然它们的性能也更好。
【问题讨论】:
-
Quake 和 Doom 是本机应用程序:机器代码直接在操作系统上运行,而 as3 代码在 Flash Player 插件、浏览器中的 AVM 中运行在操作系统之上。中间有很多层。使用 Away3D(版本 3.6 或 Lite 用于非 molehill / Flash Player 10 版本)或 4 及更高版本用于 Molehill 硬件加速(尽管您可以根据需要指定不使用 GPU)。与 Away3D 相比,Papervision 已经好几年没有更新了。 3/4 年前,我确实得到了大约 2000 个使用 PV3D 的三角形。您是否使用过滤器/图层/等。 ?
-
我没有使用任何图层或任何过滤,只是画了 5 个圆柱体作为卷轴,有纹理。这就是我所拥有的。它们渲染得很好,但是当旋转所有它们时,帧速率下降到一半。感谢您解释问题,我忘了Flash是基于虚拟机的......
-
帧率可能会下降,因为引擎在旋转时忙于重新计算视图。尽管看起来不太好,但您可以尝试减少圆柱体上的段数,使其保持低多边形:速度与质量的权衡。您可以在运行中进行一些质量更改:如果场景正在制作动画,请降低质量,当动画结束时,再次以更高的质量渲染(现在为 stage.quality)。您是否使用任何透明纹理?
-
我也想过减少段数,但不幸的是质量很重要。我正在使用法线贴图纹理,但我在圆柱体上绘制了一些符号,它们是普通的位图图像,因此当它们旋转时,符号也会旋转。是否可以即时更改质量?
-
您确实应该考虑将应用程序移植到 Away3D,它起源于 Papervision 的一个分支,但利用 Stage3D 进行渲染,这意味着它使用 GPU 来完成所有繁重的工作。性能方面,即使是 100,000 个三角形对 Away3D 来说也不是问题。
标签: actionscript-3 3d papervision3d