<p> Shaders are special programs that interact directly with graphics hardware for special effects using light, darkness, and color within a model's appearance. </p> <p> A <a href="http://en.wikipedia.org/wiki/Shader" target="_blank">programmable shader</a> allows authors to directly specify how an object is rendered by providing a method of programmatically modifying sections of the rendering pipeline. This allows replacement of the traditional fixed-function graphics API pipeline to support visual effects that typically cannot be implemented using other node components in this standard. </p> <p> These example scenes illustrate the <a href="https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/shaders.html" target="_blank">X3D Programmable Shaders Component</a>. Unfortunately, unlike X3D, shader languages are typically hardware-specific and not interoperable across different platforms. Mutually compatible X3D interfaces and syntax are defined for the <a href="https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/shaders_glsl.html" target="_blank">OpenGL shading language (GLSL) binding</a>, <a href="https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/shaders_hlsl.html" target="_blank">Microsoft high level shading language (HLSL) binding</a> and the <a href="https://www.web3d.org/files/specifications/19777-2/V3.0/Part2/X3D_Java.html" target="_blank">nVidia Cg shading language binding</a>. </p>