I create awesome clouds for my game on a plane using ShaderMaterial.
However, it’s resource-intensive, so I would like to take a snapshot of the Babylon plane with ShaderMaterial using RenderTargetTexture and apply it to a new Babylon plane with a StandardMaterial using a DiffuseTexture.
But it does not render as I expected, and I’m struggling to find the issue. Any help would be appreciated. You can look at this playground: Babylon.js Playground
You might want to render your clouds to a procedural texture (Babylon.js docs) and then assign that texture to the StandardMaterial. This would simplify the setup a great deal.
Note that the texture is still rendered each frame (else, you would not see the animation). So, it’s not really different from your first PG, except that you are using a procedural texture instead of a shader material.
If you don’t want the texture to be generated each frame, you can set refreshRate to 0 to never refresh it (but you won’t get any animation), or a value greater than 1 to update it every 2 frames (refreshRate = 2), 3 frames (refreshRate = 2), etc: