
Graphics accelerators – what are they? (2001) - luu
http://www.azillionmonkeys.com/qed/accelerator.html
======
planteen
Cool article. The future was correctly predicted here - this is how modern
graphics works:

"I've had discussions with people that suggest that an accelerator for Pixar's
Renderman architecture is possible. (This is the technology that brought Toy
Story and A Bug's Life to the silver screen.) The basic idea is to describe
object surfaces programmatically by both perturbation and texture content with
subroutines called shaders. Renderman is probably the most advanced rendering
system today, but cannot be done in real time with today's technology because
of the enormous compute power needed."

~~~
phire
Yes and no.

Renderman is a very different architecture to the "SGI-like architecture" (the
terminology the author uses) that cards at the time were settling into (and
desktop GPUs still use).

In Renderman, you subdivide all triangles until the triangles are all smaller
than a single pixel, then you collect all triangles that effect each pixel,
sort them, decide which triangles will effect the final color and then run the
pixel shader for those triangles. Since the subdivided triangles are smaller
than a single pixel, you only need to run the pixel shader once, and you don't
have to worry about perspective correct texturing.

It would be near impossible to implement this at real time in hardware.

Modern Graphics APIs took one small aspect of Renderman (pixel shaders) and
re-implemented them on top of the existing "SGI-like architecture". They also
invented the idea of vertex shaders to program the hardware Transform and
Lighting units. (Renderman used distortion/displacement shaders instead.
Vertex shaders could only move vertexes. distortion/displacement shaders could
distort any point on the triangle in arbitrary ways).

 _Sidenote: Shaders are more of a programming interface than a hardware
feature. GPUs with powerful programmable per-pixel pipelines appeared before
pixel shaders, and graphics programmers had to configure them with DirectX 7
and OpenGL 1.3 's TextureEnviroment features. Shaders just gave programmers a
much more sane way to access those same features_

~~~
rasz
> subdivided triangles are smaller than a single pixel, you only need to run
> the pixel shader once, and you don't have to worry about perspective correct
> texturing.

>It would be near impossible to implement this at real time in hardware.

Let me introduce you to the world's greatest virtual concrete slab, courtesy
of 2011 Crysis 2: [https://techreport.com/review/21404/crysis-2-tessellation-
to...](https://techreport.com/review/21404/crysis-2-tessellation-too-much-of-
a-good-thing/2)

------
deepaksurti
Does anyone have a strong recommendation for a in-depth book on GPU
architecture?

The most I can find is Nvidia white papers, a few posts on ARM blog about Mali
GPU architecture (without a lot of proprietary internals) and chapter 38 in
Computer Graphics P&P, 3rd edition that talks about GPU architecture.

In lieu of book, any course that does the same would also be useful.

~~~
phire
This series of blog posts is a very good in-depth explanation of how modern
GPUs work:

[https://fgiesen.wordpress.com/2011/07/09/a-trip-through-
the-...](https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-
pipeline-2011-index/)

~~~
deepaksurti
@phire awesome, thanks for the link. This weekend is a trip to GpuLand!!!

