HOME

TheInfoList



OR:

Software rendering is the process of generating an image from a model by means of computer software. In the context of computer graphics rendering, software rendering refers to a rendering process that is not dependent upon graphics hardware ASICs, such as a
graphics card A graphics card (also called a video card, display card, graphics adapter, VGA card/VGA, video adapter, display adapter, or mistakenly GPU) is an expansion card which generates a feed of output images to a display device, such as a computer mo ...
. The rendering takes place entirely in the
CPU A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and ...
. Rendering everything with the (general-purpose) CPU has the main advantage that it is not restricted to the (limited) capabilities of graphics hardware, but the disadvantage is that more semiconductors are needed to obtain the same speed. Rendering is used in architecture, simulators, video games, movies and television visual effects and design visualization. Rendering is the last step in an animation process, and gives the final appearance to the models and animation with visual effects such as shading, texture-mapping, shadows, reflections and motion blur. Rendering can be split into two main categories: real-time rendering (also known as online rendering), and pre-rendering (also called offline rendering). Real-time rendering is used to interactively render a scene, like in
3D computer game Video games, also known as computer games, are electronic games that involves interaction with a user interface or input device such as a joystick, controller, keyboard, or motion sensing device to generate visual feedback. This feedback ...
s, and generally each frame must be rendered in a few milliseconds. Offline rendering is used to create realistic images and movies, where each frame can take hours or days to complete, or for debugging of complex graphics code by programmers.


Real-time software rendering

For real-time rendering the focus is on performance. The earliest texture mapped real-time software renderers for PCs used many tricks to create the illusion of 3D geometry ( true 3D was limited to flat or
Gouraud-shaded Gouraud shading, named after Henri Gouraud, is an interpolation method used in computer graphics to produce continuous shading of surfaces represented by polygon meshes. In practice, Gouraud shading is most often used to achieve continuous li ...
polygon In geometry, a polygon () is a plane figure that is described by a finite number of straight line segments connected to form a closed '' polygonal chain'' (or ''polygonal circuit''). The bounded plane region, the bounding circuit, or the two t ...
s employed mainly in flight simulators.) '' Ultima Underworld'', for example, allowed a limited form of looking up and down, slanted floors, and rooms over rooms, but resorted to sprites for all detailed objects. The technology used in these games is currently categorized as
2.5D 2.5D (two-and-a-half dimensional) perspective refers to gameplay or movement in a video game or virtual reality environment that is restricted to a two-dimensional (2D) plane with little to no access to a third dimension in a space that otherwis ...
. One of the first games architecturally similar to modern 3D titles, allowing full 6DoF, was '' Descent'', which featured
3D model In 3D computer graphics, 3D modeling is the process of developing a mathematical coordinate-based representation of any surface of an object (inanimate or living) in three dimensions via specialized software by manipulating edges, vertices, ...
s entirely made from bitmap textured triangular polygons.
Voxel In 3D computer graphics, a voxel represents a value on a regular grid in three-dimensional space. As with pixels in a 2D bitmap, voxels themselves do not typically have their position (i.e. coordinates) explicitly encoded with their values. ...
-based graphics also gained popularity for fast and relatively detailed terrain rendering, as in ''
Delta Force The 1st Special Forces Operational Detachment–Delta (1st SFOD-D), referred to variously as Delta Force, Combat Applications Group (CAG), Army Compartmented Elements (ACE), "The Unit", or within Joint Special Operations Command (JSOC), Task Fo ...
'', but popular
fixed-function Fixed-function is a term canonically used to contrast 3D graphics APIs and earlier GPUs designed prior to the advent of shader-based 3D graphics APIs and GPU architectures. History Historically fixed-function APIs consisted of a set of functi ...
hardware eventually made its use impossible. '' Quake'' features an efficient software renderer by Michael Abrash and
John Carmack John D. Carmack II (born August 20, 1970) is an American computer programmer and video game developer A video game developer is a broad term for a software developer specializing in video game development – the process and related discip ...
. With its popularity, ''Quake'' and other polygonal 3D games of that time helped the sales of graphics cards, and more games started using hardware APIs like
DirectX Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direc ...
and
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve ha ...
. Though software rendering fell off as a primary rendering technology, many games well into the 2000s still had a software renderer as a fallback, '' Unreal'' and ''
Unreal Tournament ''Unreal Tournament'' is a first-person arena shooter video game developed by Epic Games and Digital Extremes. The second installment in the '' Unreal'' series, it was first published by GT Interactive in 1999 for Microsoft Windows, and lat ...
'' for instance, feature software renderers able to produce enjoyable quality and performance on CPUs of that period. One of the last AAA games without a hardware renderer was '' Outcast'', which featured advanced voxel technology but also texture filtering and bump mapping as found on graphics hardware. In the
video game console A video game console is an electronic device that outputs a video signal or image to display a video game that can be played with a game controller. These may be home consoles, which are generally placed in a permanent location connected to ...
and arcade game markets, the evolution of 3D was more abrupt, as they had always relied heavily on single-purpose chipsets. 16 bit consoles gained RISC accelerator cartridges in games such as '' StarFox'' and '' Virtua Racing'' which implemented software rendering through tailored instruction sets. The
Jaguar The jaguar (''Panthera onca'') is a large cat species and the only living member of the genus ''Panthera'' native to the Americas. With a body length of up to and a weight of up to , it is the largest cat species in the Americas and the thi ...
and 3DO were the first consoles to ship with 3D hardware, but it wasn't until the
PlayStation is a video gaming brand that consists of five home video game consoles, two handhelds, a media center, and a smartphone, as well as an online service and multiple magazines. The brand is produced by Sony Interactive Entertainment, a di ...
that such features came to be used in most games. Games for children and casual gamers (who use outdated systems or systems primarily meant for office applications) during the late 1990s to early 2000s typically used a software renderer as a fallback. For example, '' Toy Story 2: Buzz Lightyear to the Rescue'' has a choice of selecting either hardware or software rendering before playing the game, while others like ''
Half-Life Half-life (symbol ) is the time required for a quantity (of substance) to reduce to half of its initial value. The term is commonly used in nuclear physics to describe how quickly unstable atoms undergo radioactive decay or how long stable at ...
'' default to software mode and can be adjusted to use OpenGL or DirectX in the Options menu. Some 3D modeling software also features software renderers for visualization. And finally the emulation and verification of hardware also requires a software renderer. An example of the latter is the
Direct3D Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render three-dimensional graphics in applications where performance is important, such as games. Direct3D uses hardware ...
reference rasterizer. But even for high-end graphics, the 'art' of software rendering hasn't completely died out. While early graphics cards were much faster than software renderers and originally had better quality and more features, it restricted the developer to 'fixed-function' pixel processing. Quickly there came a need for diversification of the looks of games. Software rendering has no restrictions because an arbitrary program is executed. So graphics cards reintroduced this programmability, by executing small programs per
vertex Vertex, vertices or vertexes may refer to: Science and technology Mathematics and computer science *Vertex (geometry), a point where two or more curves, lines, or edges meet *Vertex (computer graphics), a data structure that describes the position ...
and per
pixel In digital imaging, a pixel (abbreviated px), pel, or picture element is the smallest addressable element in a raster image, or the smallest point in an all points addressable display device. In most digital display devices, pixels are the s ...
/
fragment Fragment may refer to: Entertainment Television and film * "Fragments" (''Torchwood''), an episode from the BBC TV series * "Fragments", an episode from the Canadian TV series ''Sanctuary'' * "Fragments" (Steven Universe Future), an episode f ...
, also known as
shaders In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene - a process known as ''shading''. Shaders have evolved to perform a variety of speci ...
. Shader languages, such as High Level Shader Language (HLSL) for DirectX or the OpenGL Shading Language (GLSL), are C-like programming languages for shaders and start to show some resemblance with (arbitrary function) software rendering. Since the adoption of graphics hardware as the primary means for real-time rendering, CPU performance has grown steadily as ever. This allowed for new software rendering technologies to emerge. Although largely overshadowed by the performance of hardware rendering, some modern real-time software renderers manage to combine a broad feature set and reasonable performance (for a software renderer), by making use of specialized
dynamic compilation Dynamic compilation is a process used by some programming language implementations to gain performance during program execution. Although the technique originated in Smalltalk,Peter L. Deutsch and Alan Schiffman. "Efficient Implementation of the S ...
and advanced instruction set extensions like SSE. Although nowadays the dominance of hardware rendering over software rendering is undisputed because of unparalleled performance, features, and continuing innovation, some believe that CPUs and GPUs will converge one way or another and the line between software and hardware rendering will fade.


Software fallback

For various reasons such as hardware failure, broken drivers, emulation, quality assurance, software programming, hardware design, and hardware limitations, it is sometimes useful to let the CPU assume some or all functions in a graphics pipeline. As a result, there are a number of general-purpose software packages capable of replacing or augmenting an existing hardware graphical accelerator, including: * RAD Game Tools' Pixomatic, sold as middleware intended for static linking inside D3D 7–9 client software. * SwiftShader, a library sold as middleware intended for bundling with D3D9 & OpenGL ES 2 client software. * The swrast, softpipe, & LLVMpipe renderers inside
Mesa A mesa is an isolated, flat-topped elevation, ridge or hill, which is bounded from all sides by steep escarpments and stands distinctly above a surrounding plain. Mesas characteristically consist of flat-lying soft sedimentary rocks capped by a ...
work as a shim at the system level to emulate an OpenGL 1.4–3.2 hardware device. *
WARP Warp, warped or warping may refer to: Arts and entertainment Books and comics * WaRP Graphics, an alternative comics publisher * ''Warp'' (First Comics), comic book series published by First Comics based on the play ''Warp!'' * Warp (comics), a ...
, provided since Windows Vista by Microsoft, which works at the system level to provide fast D3D 9.1 and above emulation. This is in addition to the extremely slow software-based reference rasterizer Microsoft has always provided to developers. * The Apple software renderer in CGL, provided in Mac OS X by Apple, which works at the system level to provide fast OpenGL 1.1–4.1 emulation.


Pre-rendering

Contrary to real-time rendering, performance is only of second priority with pre-rendering. It is used mainly in the film industry to create high-quality renderings of lifelike scenes. Many
special effects Special effects (often abbreviated as SFX, F/X or simply FX) are illusions or visual tricks used in the theatre, film, television, video game, amusement park and simulator industries to simulate the imagined events in a story or virtual w ...
in today's movies are entirely or partially created by computer graphics. For example, the character of
Gollum Gollum is a fictional Tolkien's monsters, character in J. R. R. Tolkien's Middle-earth legendarium. He was introduced in the 1937 Fantasy (genre), fantasy novel ''The Hobbit'', and became important in its sequel, ''The Lord of the Rings''. Gol ...
in the
Peter Jackson Sir Peter Robert Jackson (born 31 October 1961) is a New Zealand film director, screenwriter and producer. He is best known as the director, writer and producer of the ''Lord of the Rings'' trilogy (2001–2003) and the ''Hobbit'' trilogy ( ...
''
The Lord of the Rings ''The Lord of the Rings'' is an Epic (genre), epic high-fantasy novel by English author and scholar J. R. R. Tolkien. Set in Middle-earth, intended to be Earth at some time in the distant past, the story began as a sequel to Tolkien's 1937 c ...
'' films is completely
computer-generated imagery Computer-generated imagery (CGI) is the use of computer graphics to create or contribute to images in art, printed media, video games, simulators, and visual effects in films, television programs, shorts, commercials, and videos. The image ...
(CGI). Also for animation movies, CGI is gaining popularity. Most notably
Pixar Pixar Animation Studios (commonly known as Pixar () and stylized as P I X A R) is an American computer animation studio known for its critically and commercially successful computer animated feature films. It is based in Emeryville, Californ ...
has produced a series of movies such as ''
Toy Story ''Toy Story'' is a 1995 American computer-animated comedy film directed by John Lasseter (in his feature directorial debut This is a list of film directorial debuts in chronological order. The films and dates referred to are a director's fi ...
'' and ''
Finding Nemo ''Finding Nemo'' is a 2003 American computer-animated comedy-drama adventure film produced by Pixar Animation Studios and released by Walt Disney Pictures. Directed by Andrew Stanton with co-direction by Lee Unkrich, the screenplay was w ...
'', and the Blender Foundation the world's first open movie ''
Elephants Dream ''Elephants Dream'' (code-named Project Orange during production and originally titled ''Machina'') is a 2006 Dutch Computer animation, computer animated science fiction fantasy Experimental film, experimental short film produced by Blender Founda ...
''. Because of the need for very high-quality and diversity of effects, offline rendering requires a lot of flexibility. Even though commercial real-time graphics hardware is becoming higher in quality and more programmable by the day, most
photorealistic Photorealism is a genre of art that encompasses painting, drawing and other graphic media, in which an artist studies a photograph and then attempts to reproduce the image as realistically as possible in another Medium (arts), medium. Although ...
CGI still requires software rendering. Pixar's RenderMan, for example, allows shaders of unlimited length and complexity, demanding a general-purpose processor. Techniques for high realism like raytracing and global illumination are also inherently unsuited for hardware implementation and in most cases are realized purely in software.


See also

*
3D computer graphics 3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for t ...
*
Z-buffering A depth buffer, also known as a z-buffer, is a type of data buffer used in computer graphics to represent depth information of objects in 3D space from a particular perspective. Depth buffers are an aid to rendering a scene to ensure that th ...


References

{{computer graphics 3D rendering