If I only want to render the scene to a renderTarget, and then render the scene only once, is there any good way to achieve this? Normally, when using rendertarget, the entire scene will be rendered twice.
You can use MRT WebGL 2 Basics | Real-Time Rendering to render to multiple targets at once. but bound RTs must have same dimensions.
What is your use case?
Currently I need to display glass effects on mobile devices, and I can only use webgl1 to achieve refraction. My current solution is to draw transparent objects and opaque objects separately, and use the rendertarget of opaque objects in the refraction texture.
Did you see this Babylon.js docs