[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