[Bf-funboard] GPU accelerated rendering
Robert Wenzlaff
rwenzlaff at soylent-green.com
Wed Oct 20 15:22:22 CEST 2004
On Tuesday 19 October 2004 22:20, Konrad Haenel wrote:
>
> My knowledge of OpenGL is a little too limited to know an answer to this
> question:
>
> Is it possible to save definite frames of OpenGL-output to files?
Not directly. OpenGL (OpenGL 1 that is OpenGL 2 has more features, but what
I'm about to say is still somewhat true even for it) is meant as a standard
way for a program to talk to a graphics card. Yes, you can read back pixels
and convert them to a file format, but that's not what it's intended for, and
you may not get back what you expect.
Also OpenGL doesn't standardize what the output should look like. A person
with an nVidia OpenGL lib may see something different than a person with an
ATI or a person using software OpenGL. If you rendered 99% of a film and
burned out your GFX card, you might be screwed if you can't get an exact
replacement.
OpenGL is not the high quality renderer needed for pro 3D work. Blender
doens't use OpenGL to render it's final output, not because it's technically
difficult or hackish, but because it's output would suck. OpenGL was
designed to be flexible, however, and only recently have GFX card
capabilities surpassed what OpenGL could do. What you are seeing in Gelato
is nVidia recognizing that fact, and developing their own API to reach the
features of their cards that OpenGL can't.
As I said, OpenGL 2 covers some of this ground, but AFAIK OpenGL 2 is still a
somewhat moving target.
>In case we can use a highly standartized API it won't
>matter what brand of GPU is used to render the output. That's what APIs
>are for, isn't it?
Exactly. If we try to integrate a GPU rendering API directly, we must make
one important realization right away; _It's not our API_. We don't get any
say in how standard it is (other than voting with our money - and a lot of
Blender users are Blender users because they don't have any money :p). It's
the manufacturer's API - They own it - They decide what it looks like. I
don't even know if nVidia's Gelato API is available for all the platforms we
support - They decide that, too.
>Anyway, even if certain manufacturer-specific criteria have to be met it
>basically comes down to ATI and nVIDIA. It's safe to assume that there
>won't be any more major players in the 3D-card field in the forseeable
>future.
There's no guarentee that Gelato2 will be the same as Gelato1 though. It's
completely in the hands of the manufacturer and they have little use for full
compatability since it means people won't go out and buy their newest card
right away. We can chase that whim or we can look for a standard.
Renderman is that standard API and the manufactures (or someone) will bend
over backwards to make sure there is an interface to their hardware API - It
represents millions of users. They won't do the same for the few 10's of
thousands of Blender users - we'd be lucky if they gave Ton _one_ of their
cards for free.
I stand by what I said. If you want Gelato (et al.), the best way to get it
is to support the Blenderman project. If we had a fully useable Renderman
interface today, we'd have GPU rendering (plus about 20 other software
renderers) _TODAY_ . Some work on Blenderman has already been done.
I don't see any downside.
I [lightly] opposed Yaffray integration into Blender, too. Not because I
don't like Yaffray's output (I do), but because I think Yaffray made a big
mistake in not being Renderman compliant and we are perpetuating that
mistake.
The resources used to integrate that one renderer could have been used to get
20 different ones all at once, and we would not have had to deal with the
rush of "me-too's" wanting us to support every non-compliant renderer under
the sun. This is exactly the reason Pixar pubished the Renderman spec and
pushed it to the point of making it a defacto "standard".
--
***********************************************************
You can't always have what you want. Sometimes things don't
work as planned. Things get lost and sometimes can't be
found. Death can occur at any time, without warning.
Microsoft. Software for the real world.
***********************************************************
Robert Wenzlaff rwenzlaff at soylent-green.com
More information about the Bf-funboard
mailing list