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)
|
Percentage-Closer Soft Shadows
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. |
|
|
|
Shadow
Whitepaper
Video
Download |
|
|
uvDetective
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 |
|
|
|
Debug
Video
Download |
|
|
paintLiquid
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. |
|
|
|
Image Postprocessing
Whitepaper
Video
Download |
|
|
glowTrailFP
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. |
|
|
|
Image Postprocessing
Whitepaper
Video
Download |
|
|
tonemap
tonemap shows high-dynamic-range imaging effects by permitting the user to control the exposure and look of a "deep pixel" image |
|
|
|
Image Postprocessing
Video
Download |
|
|
spinFX
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). |
|
|
|
Image Postprocessing
Video
Download |
|
|
ToksvigAA
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. |
|
|
|
Basic
Whitepaper
Video
Download |
|
|
relief_maps
"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. |
|
|
|
Texture
Video
Download |
|
|
displace_maps
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 |
|
|
|
Texture
Video
Download |
|
|
hwShadowMap
"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." |
|
|
|
Shadow
Whitepaper
Video
Download |
|
|
chain
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). |
|
|
|
BRDF
Video
Download |
|
|
corona
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. |
|
|
|
Image Postprocessing
Video
Download |
|
|
fire
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. |
|
|
|
Texture
Video
Download |
|
|
post_glowTrailFP (.fx shader)
Psychotronic glow trails over animated scenes.
The post_glowtrail shader uses persistent render-to-texture
for animated effect. Each frame is rendered to a texture, and its
alpha is blurred and swizzled into RGB, tinted, and saved from
frame-to-frame. Each frame, the previous blur is faded slightly
before being added to the new glow. |
|
|
|
Image Postprocessing
Whitepaper
Video
Download |
|