Content deleted Content added
→Pre-rendering: Correct a sentence that implied hardware ray tracing was impossible, now that it is commonplace in new GPUs Tags: Mobile edit Mobile web edit Advanced mobile edit |
→Real-time software rendering: Fix date of cited interview, which was off by 4 years |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 3:
{{refimprove|date=July 2007}}
{{confusing|date=June 2008}}
{{update|date=July 2025}}
}}
Line 22 ⟶ 23:
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 (geometry)|vertex]] and per [[pixel]]/[[fragment (computer graphics)|fragment]], also known as [[shaders]]. Shader languages, such as [[High Level Shader Language]] (HLSL) for DirectX or the [[OpenGL Shading Language]] (GLSL), are [[C (programming language)|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]] and advanced instruction set extensions like [[Streaming SIMD Extensions|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 [[GPU]]s will converge one way or another and the line between software and hardware rendering will fade.<ref>{{Cite web|last=Valich|first=Theo|date=
===Software fallback===
Line 30 ⟶ 31:
* [[RAD Game Tools]]' Pixomatic, sold as middleware intended for static linking inside D3D 7–9 client software.
* [[TransGaming Inc.#SwiftShader|SwiftShader]], a library sold as middleware intended for bundling with D3D9 & OpenGL ES 2 client software.
* The swrast, softpipe, & LLVMpipe renderers inside [[Mesa (computer graphics)|Mesa]] work as a shim at the system level to emulate an OpenGL 1.4–3.2 hardware device. The lavapipe renderer also featured in Mesa provides software rendering for the [[Vulkan]] API.
* [[Windows Advanced Rasterization Platform|WARP]], 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 [[Core OpenGL|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]] in today's movies are entirely or partially created by computer graphics. For example, the character of [[Gollum]] in the [[Peter Jackson]] ''[[The Lord of the Rings (film series)|The Lord of the Rings]]'' films is made completely of [[computer-generated imagery]] (CGI). Also for [[animation]] movies, CGI is gaining popularity. Most notably [[Pixar]] has produced a series of movies such as ''[[Toy Story]]'' and ''[[Finding Nemo]]'', and the [[Blender Foundation]] the world's first [[Blender (software)#Open projects|open movie]], ''[[Elephants Dream]]''.
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 rendering|photorealistic]] CGI still requires software rendering. Pixar's [[RenderMan (software)|RenderMan]], for example, allows shaders of unlimited length and complexity, demanding a general-purpose processor. Older hardware is also incapable of techniques for high realism like [[Ray tracing (graphics)|raytracing]] and [[global illumination]].
|