1

问题在标题中:

[ActionScript3.0] 如何获取坐标像素的颜色(uint)?(Stage3D、Flare3D)

我正在使用 Flare3D 库在 iPad2 上渲染 3D 场景。每次重绘屏幕时,我都需要在 768 个不同的坐标处获取颜色值。以前,在简单的舞台 (2D) 上,我只能在转换为指定坐标的 1x1 位图上绘制它,现在它在 stage3D 上不起作用。另外,我有点担心天气会影响性能,因为我真的需要尽可能多地这样做——实际上是每次绘制屏幕时。如果当前显示的屏幕就像某个地方的位图,那就太好了,所以我可以像简单的数组一样访问它……但是,是的,我没有屏住呼吸:)

4

1 回答 1

2

由于 Stage3D 渲染到后台缓冲区并且无法直接访问它,因此您还需要使用 Context3D.drawToBitmapData() 方法渲染到 BitmapData。渲染到位图非常慢,尤其是在视口很大的情况下。由于您只需要访问这 768 个像素,因此您可以使用 Context3D.setScissorRectangle 来渲染场景 768 次,并将剪刀矩形的大小设置为 1x1 以及所需的坐标。我自己没有测试过,所以我不知道渲染场景 700 次是否不会比渲染一次慢,但您可能想尝试一下。:)

于 2013-01-21T15:50:16.593 回答