Jecel Assumpcao Jr
jecel at merlintec.com
Fri Jun 20 21:34:54 UTC 2003
On Sunday 15 June 2003 23:48, Steve Dekorte wrote:
> On Friday, June 13, 2003, at 07:27 PM, Jecel Assumpcao Jr wrote:
> > Ok. OpenGL is an immediate mode renderer, right? This wouldn't be
> > as easy in a retained mode one.
> I'm not sure what you mean. If you mean you want to keep a copy of a
> frame buffer and draw over it, you can do that in-hardware using
> OpenGL too.
I am sorry that this reply is so late, and even sorrier that it is so
off-topic for this list. But it wouldn't be right to leave this subject
pending an explanation.
In some graphics systems you can choose between the immediate and
retained modes, while others always work in one or the other. In the
immediate mode any command you give will result in a change to the
image, while in the retained mode the command will alter a data
structure kept by the graphics system which will later convert that
structure into an image.
To generate a slightly different image, you have to issue all the
commands once again with one or two differences in the first mode, but
only the commands to change the data structure in the second.
The main advantage of the retained mode is that the bandwidth between
the application and the renderer can be very limited and another
advantage is that as the renderer is aware of what is changing some
things, like motion blur, are easier to do.
The main problem with the retained mode is that so the application can
know what commands to send it will need to keep its own copy of the
data structure representing the seen. Everything is done twice, in
practice. You move that sphere in your local copy, then send a command
which makes the renderer move the same sphere in its own copy.
Most early 3D graphics systems were retained mode (Phigs, if I remember
correctly, was an example of this). Renderman let you choose, while
most modern systems (OpenGL, I think) are immediate mode.
More information about the Self-interest