NVIDIAdeveloper.nvidia.com
Google
WWWdeveloper.nvidia.com

SDK 9.51 Effects

In each release of our SDK you will find hundreds of code samples, effects, whitepapers, and more to help you take advantage of the latest technology from NVIDIA. Check out our SDK Home Page to download the complete SDK, or browse through individual code samples below. You can also click on the video links for a quick preview, or the thumbnail images for a gallery of larger images.

This code is released free of charge for use in derivative works, whether academic, commercial, or personal. (Full License)

Select the category to view:
You will need FX Composer to load these effects projects and view the shader source code.

Percentage-Closer Soft Shadows For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

This technique generates soft shadows with penumbrae that harden on contact, giving useful and realistic visual cues. Based on shadow mapping and percentage-closer filtering, percentage-closer soft shadows (PCSS) generate high-quality soft shadows with just a single shadow map, without any pre-processing, post-processing, or other modification to the host application. The only required change is to replace the typical shadow mapping pixel shader with a PCSS shader. This effect requires FX Composer 1.8 or higher.
  Minimum Required GPU

Shadow




Whitepaper
Video
Download


gooch_shadow For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

gooch_shadow Project
  Minimum Required GPU






Whitepaper

Download


dilation For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

dilation Project
  Minimum Required GPU








Download


softStencilShadow For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

softStencilShadow Project
  Minimum Required GPU






Whitepaper

Download


stencilShadow For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

stencilShadow implements vertex-shader shadow-volume extrusion and shows how to set up simple stencil shadowing in FX Composer
  Minimum Required GPU






Whitepaper

Download


goochSlicer For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

goochSlicer Project
  Minimum Required GPU








Download


psych_bg For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

psych_bg Project
  Minimum Required GPU








Download


bleach_bypass For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

bleach_bypass Project
  Minimum Required GPU








Download


cmykBloom For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

cmykBloom Project
  Minimum Required GPU








Download


drainBamage For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

drainBamage Project
  Minimum Required GPU








Download


duskHolga For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

duskHolga Project
  Minimum Required GPU








Download


lineDraw For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

lineDraw Project
  Minimum Required GPU








Download


optical_distort1 For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

optical_distort1 Project
  Minimum Required GPU








Download


titleOverlay For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

titleOverlay Project
  Minimum Required GPU








Download


shadowPoint For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

point-light shadowing
  Minimum Required GPU

Shadow




Whitepaper

Download


BRDFpaint For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

paint_brdf lets an artist work directly on BRDF lookup tables using a brush -- and while seeing the live results of the newly-created BRDF on any model, while they design it. Use the pulldown on/off flags to determine which part of the BRDF to paint, and then watch the results on-screen and in the textures panel. Just save the textures as DDS files for final use.
  Minimum Required GPU

BRDF




Whitepaper

Download


anaglyphic_stereo For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Anaglyphic stereo view of a tree model -- use red/blue 3D glasses
  Minimum Required GPU

Image Postprocessing





Download


scroll For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Side-scroll animation
  Minimum Required GPU

Image Postprocessing





Download


badPrinting For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Any image (including your 3D scene), altered to appear as if it was badly printed in CMYK — out-of-register and twisted offset plates
  Minimum Required GPU

Image Postprocessing





Download


uvDetective For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Shows uvDetective on a very simple model. Try it on any model of your own. UVDetective is a debugging/development shader that displays multiple useful facts about the UV coordinates on a model, and importantly shows the model's UV derivatives -- that is, how much stretching the UV's have in any part of the model. It also can display different exture MIP levels as varying colors. Finally and importantly, it has "TexRes" modes (techniques) that determine best texture resolutions based on a user-specified choice. For example, if the user specifies "256" then the display will show black where that resolution would be optimal, based on the current model and display size. Areas where a higher resolution could be used will be blue, while areas that could accept a lower resolution will be yellow
  Minimum Required GPU

Debug





Video
Download


Grisaille (.fx shader) For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

A plastic-like shader with "flatness" — by scaling the surface normals relative to the eye position, the appearance of an object can be flattened, much like a low-relief carving in stone. Untextured, the flat gray appearance recalls "grisaille" drawing and sculptural detailing.
  Minimum Required GPU

BRDF






Download


metalReflShip For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

metalReflShip shows the classic "bigship" model in a reflective environment
  Minimum Required GPU








Download


bumpGloss For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

bumpGloss shows a typical bumpy glossy material
  Minimum Required GPU








Download


lambSkinDusk For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

lambSkinDusk shows a cheap, fast way to emulate subsurface light scattering effects. The overall image is further enhanced by a sepia-tone pass
  Minimum Required GPU








Download


durerDusk For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

durerDusk shows a non-photo-real shading effect, designed to emulate a style of cross-hatched two-layer pen drawing
  Minimum Required GPU








Download


duskWood For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

The "duskWood" FXComposer sample shows Dusk's head shaded by a classic "wood" procedure, then the image further processed by an animated "old TV" image shader
  Minimum Required GPU








Download


glassUFO For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

glassUFO shows a reflective and refractive model. the background is generated by shader that can look at cube maps in arbitrary directions
  Minimum Required GPU








Download


paintBrush For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

paint_brush provides simple soft-edged painting in FX Composer. Just draw with the mouse! FX Composer has only simple mouse handling, but using time dynamics and GPU-based texturing, many paint-program effects are easily implemented.
  Minimum Required GPU






Whitepaper

Download


paintLiquid For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

paint_liquid is a tool similar to Photoshop's "liquify" command. Read any texture from disk, and then "paint" over it with the mouse — the underlying image can be freely distorted and warped in real time. This shader works best with GPUs that can support 16-bit floating point render targets, but will function on some older GPUs also — the distortion effect comes from painting an unseen extra texture, which is then used to perform a "dependant texture read" on the main input image.
  Minimum Required GPU

Image Postprocessing



Whitepaper
Video
Download


MrWiggleDot For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

The "MrWiggleDot" FXComposer sample combines Vertex Animation and a "halftone" imaging shader
  Minimum Required GPU








Download


blendLayers For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

The "blendLayers' FXComposer sample shows typical material effects, plus imaging "blend modes" (much like those found in programs like Adobe Photoshop™), encapsulated as pixel shaders
  Minimum Required GPU








Download


glowTrailFP For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

glowTrailFP two simple models with image process sweetening. Be sure to hit the "play" button. These objects leave persistent but fading images behind as the scene moves. The uses persistent render-to-texture for animated effect. Each frame is rendered to a texture, blurred and saved from frame-to-frame. Each frame, the previous blur is faded slightly before being added to the new scene.
  Minimum Required GPU

Image Postprocessing



Whitepaper
Video
Download


vbombEdge For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

vbombEdge shows a combination of vertex animation and high-performace image processing effects
  Minimum Required GPU








Download


fpShadow For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

fpShadow displays a simple object with a floating-point texture used for shadowing. The HLSL RenderPort functionality is used to assign appropriate transforms
  Minimum Required GPU






Whitepaper

Download


mandelbrotPS3 For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

mandelbrotPS3 is a numerically-demanding example of pixel shader dynamic branching. Change the # of iterations at run time for varying precision effects
  Minimum Required GPU








Download


raytrace For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

The "raytrace" FXComposer sample is a classic spheres-and-plannes raytracer, running entirely in real time in the pixel shader
  Minimum Required GPU








Download


tonemap For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

tonemap shows high-dynamic-range imaging effects by permitting the user to control the exposure and look of a "deep pixel" image
  Minimum Required GPU

Image Postprocessing




Video
Download


spinFX For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

spinFX shows accumulation-buffer motion blur. By default a SINGLE motion-blurred frame is drawn. Uncomment the USE_TIMER macro and recompile to enable animation.
Accumulation buffer effects are created by rendering the same object repeatedly, and accumulating the resultant pixels into a deep (FP16) "accumulation buffer." This is therefore a render-to-texture effect. For each subsequent re-rendering, the objects and/or camera are moved or changed slightly. Once the accumulation passes are complete, the resultant floating-point pixels are re-averaged into a viewable and nicely-blurred picture. Controls in the shader determine the balance between render speed (a small number of samples) and blur quality (a large number of samples).
  Minimum Required GPU

Image Postprocessing




Video
Download


perf_tutor For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

perf_tutor is described in the FX Composer user guide -- a simple project designed to help you explore some of FX Composer's performance analysis tools (Be sure to accept a local copy of the perf_tutor.fx when you load this project, so that it's freely-editable as you work with this one!).
  Minimum Required GPU








Download


post_spot For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

A 2D effect that applies a "spotlight" to the entire frame using frame-buffer alpha blending, and then layers it with the "sepia" toning shader.. "post_spot"ontains simple spot and bumpy techniques, while "sepia" allows arbitrary color toning and/or desaturation of any color image.
  Minimum Required GPU






Whitepaper

Download


shadowSpot2 For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Spotlight with the cone angle defined by the shadow projection. Fast and flexible
  Minimum Required GPU






Whitepaper

Download


oneCycleSkin For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

"oneCycleSkin" combines a photographically-based texture of a single fingertip and the "painted sphere" technique to quickly get a lifelike appearance at a high fill rate
  Minimum Required GPU








Download


ToksvigAA For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

ToksvigAA shows how to use texturing inside a BRDF, so that the anti-aliasing inherent in the texture engine can be used for arbitrary surface calculations. In this specific case, the specular highlight function is pre-calculated, and its values placed in a table (as a texture). The calculation is done by CPU-side HLSL code, just once before rendering begins. The values in this lookup table are then read as texture inputs by the BRDF. Since the complete shading function is pre-calculated, rather than just a portion, the texture antialiasing covers the entire high-freuqency highlight -- typical bump- or normal-mapping schemes would only antialias one or two terms of the specular function, which would still be high-frequency and would exhibit aliasing. Both AA and non-AA versions of the specular function are provided in the shader, as alternative techniques that can be easily compared in the shaded display.
  Minimum Required GPU

Basic




Whitepaper
Video
Download


grisaille For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

From Siggraph 2004 - "grisaille" shading permits a simple numeric "flattening" of the overall shading, similar to engraved stone grisaille
  Minimum Required GPU








Download


dusk_gloom For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

"dusk_gloom" shows tricks you can try yourself, combining image layers by using the "ScriptExecute Sorter" subwindow of the FXComposer Materials pane. The complete effect is created by combining "post_bloom" with two copies of "post_negative": negative->bloom->negative to create "gloom" from the "bloom."
  Minimum Required GPU






Whitepaper

Download


fluid For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

"fluid" is an image-processing effect. Be sure to "splash" using the mouse!
  Minimum Required GPU








Download


relief_maps For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

"relief_maps" is a sample from our skilled friend Fabio Policarpo. It uses "relief mapping," an alternative to the usual bump or normal mapping. Not only does relief mapping disturb the surface normals, but also creates realistic geometric displacments in the shading -- and even casts shadows from those displacements.
  Minimum Required GPU

Texture





Video
Download


displace_maps For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Another great sample project from Fabio Policarpo. This sample uses textre-encoded displacement vectors to create the perspective illusion of displacement mapping without actually altering geometry
  Minimum Required GPU

Texture





Video
Download


hwShadowMap For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

"hwShadowMap" enables NVIDIA's built-in HW support for shadow-mapping from D24S8 depth textures (format "D24S8_SHADOWMAP") — this shadow mappng is faster than using floating-point surfaces and comes with built-in shadow filtering for top-notch results. The view frustum and render-to-texture tasks are maganed by macros from the header file "shadow_map.fxh" and bind automatically to the scene lamp. Setting the shader and setting the "Textures" source display to "scene" allows you to see the view from the shadow rendering pass, specified by a DXSAS "RenderPort."
  Minimum Required GPU

Shadow




Whitepaper
Video
Download


sharpRims For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

A combination of effects: gradient preprocessing from a dynamically-geneated texture; rim-lit plastic showing subsurface scattering emulation and complex-surface highlight edge effects; an overall unsharp masking effect applied to the entire rendered frame
  Minimum Required GPU








Download


shadow_fp_pcf For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

shadow_fp_pcf uses a floating-point frame buffer as a shadow map to delive the highest-quality shadow, based on percentage-closer filtering (PCF). Instead of using NVIDIA's built-in PCF function, this effect performs PCF in the pixel shader itself, using shader model 3.0 looping to permit a much larger number of samples and a softer-looking result.
  Minimum Required GPU






Whitepaper

Download


paint_blur For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

paint_blur is a nv4x-class demo of floating point buffers and indirect texture access. The mouse allows you to "liquify" an image in real time, but in this case the "liquified" image is blurred against the original image via an accumulation buffer, creating the complete paint-on motion blur effect
  Minimum Required GPU






Whitepaper

Download


paint_HDR For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

paint_HDR is much like a regular simple paint program, but the pixels it uses are based on 16-bit floating-point values. This makes it perfect for touching-up HDR files etc. This paint shader has two controls to manage brightness — one for the brightness of the brush (which can even be negative) and one for the brightness of the overall image exposure or "white level." Bright brush strokes may appear white, but ajusting the exposure can reveal their true colors. Thanks to the developer/artist at NVIDIA's GPU Jackpot who asked for this shader — making it from the existing paint_brush shader took less than an hour, right there at the event!
  Minimum Required GPU






Whitepaper

Download


shadowOverlay For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

shadowOverlay shows a simple hack to add overlaid shadows to a scene regardless of how it was actually shaded -- mostly to show just how important shadowing is, even to a completely "unlit" model
  Minimum Required GPU






Whitepaper

Download


DebugCab For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Geometry from NVIDIA's "Time Machine" truck, showing a variety of vertex values and scene coordinate systems encoded as colors and patterns. See the descriptions of the "SeeValues" and "SeeSpaces" HLSL shaders for more details
  Minimum Required GPU








Download


nightfall For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Using textures as lighting values
  Minimum Required GPU








Download


chain For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

A simple industrial chain with two shaders, both featuring a cube reflection map. The metal chain links themselves use the fast and simple "metalRefl" shader and are tinted to look like common hardened steel. The chain cover, a flexible plastic tube, uses "BumpGlossed," which incorporates a bumpmap (the pattern gives the simple model complex bending, more like a flexible tube) and a fresnel-attenuated reflectivity (more like real plastic surfaces).
  Minimum Required GPU

BRDF





Video
Download


corona For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Animated noisy glow effects around each object, "Corona" is an animated extension of "post_halo" and "post_glowTrail" with the simple addition of noise. Objects are rendered into a texture, that texture swizzled and blurred, noise used to repeatedly offset the texels, and over several frames each new frame is tinted, faded, and moved by noise to a new location for a fire-like effect around the edges of each object.
  Minimum Required GPU

Image Postprocessing




Video
Download


alien_gooch For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Animated "goochy" alien showing an animated NVB file generated by 3DStudio Max
  Minimum Required GPU








Download


3DPaint For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

3DPaint on a teapot — functions on GeForce FX, but works even better using blendable FP16 textures on GeForce 6 and higher. Requirement: the input 3D model must have valid, non-overlaping texture coordinates. The technique works by comparing the object's UV coordiates to the corrent paintbrush position. Be sure to be aware of the "Paint Now" toggle that turns active painting on and off.
  Minimum Required GPU






Whitepaper

Download


displace2 For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Show vertex-shader texture fetch for displaced surface. Changing the tesselation paramters of the cylinder will alter the effeciveness of this technique, depending on the texture chosen. Remember that the texture must be in 32-bit-fp format
  Minimum Required GPU








Download


fireball For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

volume-texture fireball
  Minimum Required GPU








Download


fire For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Animated layered fire, based on Yury Uralsky's "Volumetric Fire" post on Cg Shaders.Org.
The shader revolves a cross section of a flame image around the Y axis to produce a cylindrical volume, and then perturbs the texture coordinates with 4 octaves of animated 3D procedural noise to produce the flame effect. This simpling is displayed on multiple parallel transparent camera-facing planes.
  Minimum Required GPU

Texture





Video
Download


hemisphere_lighting For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

hemisphere_lighting project from Microsoft
  Minimum Required GPU








Download


ocean For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

ocean waves
  Minimum Required GPU








Download


PointAimShadow For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

In this example, the shadow map from one lamp is aimed automatically at the second "dummy" point light (which doesn't provide illumination, we only use its location as an aim point). An advantage of this method is that the overall size of the show texels, relative to the object, will remain relatively constant regardless of where the light may move.
  Minimum Required GPU






Whitepaper

Download


selfAlign For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Sprites that always face the camera, aimed by the vertex shader without CPU intervention
  Minimum Required GPU








Download


scene_tiles For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

image processing trick
  Minimum Required GPU






Whitepaper

Download


scene_mandelbrot For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

scene_mandelbrot shows a mandelbrot set computed in Shader Model 2. Compare to the SM3 version!
  Minimum Required GPU








Download


thinFilm For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Colored highlights create the illusion of a thin lastic or oily film on any surface. Pixel-shaded on GeForce FX and higher.
  Minimum Required GPU








Download


subsurface1 For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Texture-based subsurface scattering emulation. In this effect, render-to-texture is used to store a depth image from the ivantage point of the light source #151; that is, a shadow map. The map is stored in one channel an floating-point image, while another channel stores the fresnel attentuation (realtive to the light) of each surface point. For the final render, each visible point is compared to the shadow depth. If the point is farther from the light than the stored shadow depth, it is considered shadowed — but rather than just losing all illumination, the illumination is attentuate by distance through the object, to simulate light tunneling through a translucent medium. The stored fresnel term is also sampled, so that light striking at grazing angles, which would in nature be reflected-away, is not inadertently included in this material-diffusion effect.
  Minimum Required GPU






Whitepaper

Download


sharedShadows For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Using a single shadow map for multiple lights
  Minimum Required GPU






Whitepaper

Download


Wire For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Using textured anti-aliased lines, create an object-space Wireframe on any object
  Minimum Required GPU








Download


scene_raytrace (.fx shader) For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

An actual raytracer witten in HLSL
  Minimum Required GPU

Environment






Download


scene_MandelbrotPS3 (.fx shader) For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Mandelbrot Set in a ps_3 pixel shader
  Minimum Required GPU

Fractal






Download


post_edgeOverlayPS3 (.fx shader) For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

Edge detection overlayed on scene — handy with "toon" shading
  Minimum Required GPU

Image Postprocessing



Whitepaper

Download


PointShadowAim (.fx shader) For a direct link to this sample, right-click and copy the URL (shortcut) of this link icon.

PointShadowAim uses shadow maps created along an "aim point" — one light is the shadw source, while another (which contributes no illumination) is used to as an aim point. The shadow-camera projection will always center on the aim point, and is guaranteed to enclose a spherical volume around the aim point as defined by the radius parameter. The light itself can then be moved around freely, far or near, and the shadow will aways be well-formed and with roughly the same number of texels.
  Minimum Required GPU