Shader
Programmable operations that control the rendering pipeline, from vertices to pixels.
In computer graphics, a shader is a programmable operation which is applied to data as it moves through the rendering pipeline. Shaders act on data such as vertices and primitives, generate or morph geometries and fragments, and calculate the colors in a rendered image.
- Franchise
- Duke Nukem
- Category
- Visual rendering technology / Presentation layer
- Most prominent title
- Duke Nukem Forever (2011)
- Engine (Forever)
- Source (Valve)
- Developer (Forever)
- Gearbox Software
- Publisher (Forever)
- 2K Games
Lore & Background
The term "shader" was first introduced to the public by Pixar with version 3.0 of their RenderMan Interface Specification, originally published in May 1988. As graphics processing units evolved, major graphics software libraries such as OpenGL and Direct3D began to support shaders. The first shader-capable GPUs only supported pixel shading, but vertex shaders were quickly introduced once developers realized the power of shaders. The first video card with a programmable pixel shader was the Nvidia GeForce 3 (NV20), released in 2001. Geometry shaders were introduced with Direct3D 10 and OpenGL 3.2. Graphics hardware evolved toward a unified shader model, making all shaders equal.
In Their Own Story
The corridor in the Swiss compound is slick. Duke kicks the door in and the shader-lit water on the floor catches the muzzle flash of his shotgun, throwing a brief orange bloom across the concrete. A grunt drops, and the blood that arcs from its chest doesn't fade—it splatters, beads, and slides down the wall in slow, glistening rivulets. Duke wipes his face. The specular highlight on his forehead catches the fluorescent tube overhead, a tiny white star in the grime. He grins. The water in the pool beyond the shattered glass ripples outward in concentric rings, each one refracting the scene into a warped, oily smear. He doesn't look back. There's another corridor, another door, and the shaders are already rendering the next mess before he's even raised the gun.
Reader's Guide
Shaders are classified according to their position in the pipeline, the data being manipulated, and the graphics API being used. Vertex shaders are run once for each 3D vertex, transforming its 3D position to 2D screen coordinates. Geometry shaders, introduced in Direct3D 10 and OpenGL 3.2, can generate new primitives from those sent to the pipeline. Fragment shaders (also known as pixel shaders) compute color and other attributes of each fragment. Tessellation shaders, added in OpenGL 4.0 and Direct3D 11, include tessellation control and evaluation shaders for subdividing meshes. Primitive shaders were added circa 2017 with AMD Vega, and mesh and task shaders with Nvidia Turing in 2018. Ray tracing shaders are supported via DirectX Raytracing, Vulkan, GLSL, SPIR-V, and Metal. Compute kernels are routines compiled for high throughput accelerators, separate from but used by a main program.
Did You Know?
- Shaders benefit greatly from parallel computing, such as SIMD hardware, because image rendering is an embarrassingly parallel problem.
- The first shader-capable GPUs only supported pixel shading; vertex shaders were introduced later.
- Geometry shaders can emit zero or more primitives from a single input primitive.
- Pixel shaders can sample the screen and nearby pixels if the entire screen is passed as a texture, enabling postprocessing effects like blur or edge detection.
- Mesh shaders allow the GPU to handle more complex algorithms, offloading work from the CPU and potentially increasing frame rate or triangle count by an order of magnitude.
More in Gameplay & Mechanics
Elsewhere in the Duke Nukem universe
Spotted an error? Know more?
This is a living reference — every entry is fact-audited, and reader corrections feed straight into our audit queue. Suggest an edit · See this site's audit record
