New samples in 2.0:

Bindless Graphics Sample

Category: Performance

This sample demonstrates the large performance increase in OpenGL that is made possible by 'Bindless Graphics'. These extensions allow applications to draw large numbers of objects with only a few setup calls, rather than a few calls per object, thus reducing the driver overhead necessary to render highly populated scenery.

Bloom Sample

Category: Visuals

This sample demonstrates creating a glow effect by post-processing the main scene. It heavily leverages FBO
render targets across multiple steps/passes with custom effects processing shaders. It also integrates shadow
mapping to demonstrate self-illumination cutting through the shadow effects.

Compute Water Surface Sample

NEW:Conservative Rasterization

Category: Visuals

This sample demonstrates the pixel-level effect of enabling the conservative rasterization feature supported in OpenGL. It allows applications to shade every pixel whose area is touched by a fragment, rather than only those touching specific samples.

Feedback Particles Sample

Category: Performance,Visuals

The Feedback Particles sample shows how normal vertex shaders can be used to animate particles and write the results back into vertex buffer objects via Transform Feedback, for use in subsequent frames. This is another way of implementing GPU-only particle animations. The sample also uses Geometry Shaders to generate custom particles from single points and also to kill the dead ones.

Motion Blur ES2 Sample

Category: Visuals

This sample shows a method of simulating motion blur of fast-moving objects using multi-pass rendering.
In the first pass, the fast-moving geometry is rendered unblurred into a framebuffer object. In the
second pass, a special vertex shader stretches the geometry between the previous and current vertex
position based on the normal at the vertex and apparent shutter duration (stretch length), and the
fragment shader applies supersampling to the first pass results to generate a blurred visual.

Motion Blur GL4/GLES3 Advanced Sample

Category: Visuals

This sample shows a filtering method for simulating motion blur of fast-moving objects. The method used is a 2D
full-screen post-process that works on a normal framebuffer augmented with a screen-space velocity buffer; thus,
filtering performance is not dependent on scene geometric complexity. The algorithm is based on the paper
'A Reconstruction Filter for Plausible Motion Blur', by McGuire et. al. (SIGGRAPH I3D'12).

Multi-Draw Indirect Sample

Category: Visuals

This sample demonstrates how to use extensions to OpenGL to offload the CPU in generating rendering work
when you have a large number of objects in a scene. The extensions and core features used are a subset
of the features commonly known as 'AZDO' (For Approaching Zero Driver Overhead).

NEW:Normal-blended Decal

Category: Performance, Visuals

The Normal Blended Decal Sample demonstrates how to use the OpenGL PSI(Pixel Shader Interlock) feature to blend normals when drawing screen-space decals. This sample compares the performance of PSI with glMemoryBarrier.

Optimization Sample

Category: Visuals

The Optimization Sample demonstrates several generic performance-improving rendering techniques.
These include down-sampled rendering and depth pre-passes. The sample also demonstrates the use
of app-level GPU and CPU timers, which allow apps to create focused timings of actual GPU work.
This is extremely important, since it is otherwise difficult to actually determine parallel
CPU and GPU timings.

Particle Upsampling Sample

Category: Performance,Visuals

The Particle Upsampling sample uses a combination of rendering techniques to simulate a cloud of particles
casting shadows on a model and a floor object. The particles are rendered into a lower-resolution offscreen
surface, and then up-sampled to the screen to lower the cost of the high depth complexity.

Path Rendering Sample

Category: Visuals

This sample uses NVIDIA's Path Rendering extensions to demonstrate rendering stroked and filled 2D
line-art, such as you would implement with Skia, SVG, or HTML Canvas, fully leveraging the power and
speed of OpenGL hardware.

Skinning Sample

Category: Visuals

This sample demonstrates how to render skinned meshes using both one or two bones in a vertex shader.
Skinning allows organic shapes (such as humans) to deform nicely around joints as they bend. Without
skinning, joints have a rigid appearance that is more similar to a mechanical joint like you would see
in a robot.

Soft Shadows Sample

Category: Visuals

This sample shows two methods of simulating soft shadows with complex casters and receivers.
The Percentage-Closer Soft Shadows method includes a convincing impression of the shadow edge
(penumbra) sharpening as the shadow caster approaches contact with the shadow receiver.

Terrain Tessellation Sample

Texture Array Terrain Sample

Category: Performance, Visuals

This sample demonstrates how to use a Texture Array to render a terrain with visually-complex texturing at high performance. The texture array is similar to a 3D texture, allowing for multiple 'slices' or sub-textures bound to a single texture ID, but arrays are much higher performance due to disallowing trivial filtering across the slices. We get great terrain rendering performance by eliminating the need to perform multiple, blended passes over the geometry, and improved quality by avoiding boundary issues that would occur with 2D atlas texturing.

NEW:Weighted, Blended Order-independent Transparency

Category: Performance, Visuals

Weighted Blended OIT Sample demonstrates how plausible OIT (Order Independent Transparency) can be rendered in a single geometry pass without any depth sorting, as described in [McGuire and Bavoil 2013]. The idea is to use additive blending to compute a weighted average of the translucent colors with a weighting function that falls off as the linear depth increases. This sample compares the quality and performance of Weighted Blended OIT with Depth Peeling.