0

我需要频繁更新3D对象的纹理。 (这是一个程序生成的模式,所以它不能被缓存,它必须每帧动态生成)Flash Stage3D:渲染/更新程序纹理?

这样做的最快方法是什么?

首先,我认为是通过copyPixels()更新的位图数据的,然后经由 Texture.uploadFromBitmapData()的每个帧重新上传此的BitmapData,但我听到,这是非常慢(由于从系统RAM移动数据至GPU RAM)

任何直接操作GPU上的纹理的方式,所以我可以避免这一步?

回答

1

如果它是一个程序生成的模式,那么它可以在GPU上完成。如果不可能,那么唯一的办法就是你描述的方式 - 这是最快的。是的,这是一个缓慢的过程。

+0

你能给出一些更具体的指示,至于在GPU中的程序纹理绘画/更新会如何工作?我猜测它会涉及通过setRenderToTexture/optimizeForRenderToTexture = true进行渲染。但是这里几乎没有任何可用的教程或信息! –

+1

Fuf。这里有一个蜗牛的答案 - 我不知道你的意思是什么样的程序生成模式。但是如果你可以在GPU上生成它,那么你可以像你提到的那样渲染它。看看我的教程[链接](http://volgogradetzzz.blogspot.ru/2012/05/stage3d-displacementmapfilter.html)就是这样。 – nikitablack