--- Operating System, Graphics card ---
Windows 7 x32
Renderer: ATI Radeon HD 4770
Vendor: ATI Technologies Inc.
Version: 3.3.11653 Compatibility Profile Context
--- Blender version with error, and version that worked ---
Issue appearing: Revision 53658
--- Short description of error ---
Both viewport gradients "flat" ("Only Render" turned off) and "world" ("Only Render" turned on) are ignored by OpenGL render.
--- Steps for others to reproduce the error (preferably based on attached .blend file) ---
In attached blend press "OpenGL Render Image" and see that there is no gradients.
Description
Event Timeline
WIP patch to fix this is attached.
Here I've just made the ogl render use the same background setting/drawing code as is used for viewport drawing (and disabled a few of the imbuf sky-drawing overrides which would just block out everything). It works fine enough in general, but there are some unsightly antialiasing+alpha artifacts around the edges of objects (i.e. they have some light coloured pixellated borders) which I can't seem to get rid of.
This patch is wrong and reverts back fixes i did in rev53588.
If you want any kind of backdrop, you need to make sure it is opaque, otherwise you're completely screwing up color management system. With this patch applied, you'll have non-opaque alpha in areas where you've got semi-transparent objects, which is completely incorrect. Another breakage is that images for quick edit will be opaque, which is also very much useless.
Also, i wouldn't consider OpenGL render shall follow viewport background, in fact it shall follow the same alpha mode as final renderer does, otherwise behavior would be unpredictable.
It is probably make sense to support zenith and ambient colors for OpenGL render, but we never supported that and that's more like a TODO.
After all i don't consider this report is a bug, just a thing which could be improved but which is also need to be improved really carefully, without breaking current pipelines.
I prefer "what you see is what you get" workflow, so no matter what render settings is (beside resolution and so), with OpenGL render I want to have a picture from viewport as I see it. Like ZBrush does. I Hope you would consider it.
OpenGL render is not only used for visualizing current viewport, but also used for stuff like scene preview in sequencer, projection painting and previs of animation. I don't mind viewport background is implemented as an additional way of visualizing background, but that's not a bug and anyway it shall be implemented with respect of current usecases and not hurt them.
Off course I agree with you that it's better to think about implementation first. And I'm no intention to rush you out.