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