I see this in the notes.
First up, I apologize if I misunderstand the general thrust of this. The impression I get is that I'm now being forced to use compositors, and that the old style RTT is now impossible or much more difficult than it used to be.3.5 Where is RenderTarget::update? Why do I get errors in Viewport?
Advanced users are probably used to low level manipulation of RenderTargets. As such they're used to
setting up their custom Viewports and calling RenderTarget::update.
That is too low level. Instead, users are now encouraged to setup Compositor nodes and multiple
workspaces to perform rendering to multiple RTs, even if it's for your own custom stuff . The new
Compositor is much more flexible than the old one (which has been removed). See section about
Compositors for more information.
Viewports are no longer associated with cameras as they're now stateless (they used to cache the camera
currently in use) and a lot of settings they used to hold (like background colour, clear settings, etc) have been
moved to nodes. See CompositorPassClearDef and CompositorPassClear.
RenderTarget::update has disappeared because the render scene update has been split in two stages, cull
and render.
If you still insist in going low level, see the code on CompositorPassScene::execute to understand how to
prepare a RenderTarget and render it manually. But again, we insist you should try the Compositor.
That looks... just... terrible.
I do tonnes of manual RTT, I hate compositors, and I do my own culling. My rendering setup is very complex, with complex customized deferred shadowing with various effects. Plus I'm aimed at NVidia 3DVision compatibility. Compositors always messed things up. I render many, many passes for each frame to achieve a whole bunch of different effects. Handling this in code was fine, trying to get anything like this done with compositors and Ogre controlled culling sounds like a total nightmare.
I use RenderTarget::Update everywhere, all the time.
The thing I really liked about Ogre is that if parts of it didn't suit me, like the compositors and inbuilt shadows, I could easily just ignore them and go low level, do it myself with RTT. But it looks as if I'm literally told "That is too low level" and forced to use Compositors. Ugh. I really hate that idea. It basically means porting to 2.0 requires a complete rewrite of my rendering engine, trying to shoehorn it into a system I really don't think suits my project at all. Why on earth not let me just keep using render targets?
The other thing I hate about being forced to use compositors is that it makes Ogre even more alien to other APIs like OpenGL or DirectX. While I know the nitty gritty of doing RTT on Ogre, raw OpenGL or raw DirectX might be very different, the higher level concept is the same. But Compositors force the abstraction to be far more different, making it harder if I want to transfer Ogre skills to other APIs.
Again, apologies if I've misunderstood. It seems insane to me that you'd lock people out of easily doing RTT like they used to, so there's a good chance I have misunderstood. But statements like "But again, we insist you should try the Compositor" are pretty ominous.