3 ms·
Graphics accelerators – what are they? (2001)
- planteen 9y agoCool 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 9y agoYes 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 9y ago> 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-too-much-of-a-good-thing/2 https://techreport.com/review/21404/crysis-2-tessellation-to...
- deepaksurti 9y agoDoes 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 9y agoThis 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-graphics-pipeline-2011-index/ https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-...
- deepaksurti 9y ago@phire awesome, thanks for the link. This weekend is a trip to GpuLand!!!