Difference between revisions of "Samples"
Gongminmin (Talk | contribs) (→Deferred Shading) |
Gongminmin (Talk | contribs) |
||
Line 5: | Line 5: | ||
= Deferred Rendering = | = Deferred Rendering = | ||
+ | [[File:Deferredrendering.jpg|200px|thumb|right|Deferred Rendering]] | ||
Deferred rendering rendering framework. | Deferred rendering rendering framework. | ||
Line 22: | Line 23: | ||
= Depth peeling = | = Depth peeling = | ||
+ | [[File:Depthpeeling.jpg|200px|thumb|right|Depth Peeling]] | ||
Order independent transparency rendering. | Order independent transparency rendering. | ||
Line 36: | Line 38: | ||
= Distance mapping = | = Distance mapping = | ||
+ | [[File:Distancemapping.jpg|200px|thumb|right|Distancemapping]] | ||
Distance mapping from [http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter08.html chapter 8 of GPU Gems 2]. In pixel shader, precomputed distance field is used to do local sphere ray tracing. The extension here is the silhouette can be presented well. | Distance mapping from [http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter08.html chapter 8 of GPU Gems 2]. In pixel shader, precomputed distance field is used to do local sphere ray tracing. The extension here is the silhouette can be presented well. | ||
Line 50: | Line 53: | ||
= Fractal = | = Fractal = | ||
+ | [[File:Fractal.jpg|200px|thumb|right|Fractal]] | ||
Calculate fractal on GPUs. | Calculate fractal on GPUs. | ||
Line 62: | Line 66: | ||
= GPU Particle System = | = GPU Particle System = | ||
+ | [[File:Gpuparticlesystem.jpg|200px|thumb|right|GPU Particle System]] | ||
GPU-based particle system. | GPU-based particle system. | ||
Line 77: | Line 82: | ||
= JudaTex Viewer = | = JudaTex Viewer = | ||
+ | [[File:Judatexviewer.jpg|200px|thumb|right|Juda Texture Viewer]] | ||
Juda Texture viewer. | Juda Texture viewer. | ||
Line 90: | Line 96: | ||
= Model viewer = | = Model viewer = | ||
+ | [[File:Model_viewer.jpg|200px|thumb|right|Model Viewer]] | ||
A MeshML model viewer, which support skinned mesh and normal map. The model is from http://www.cgrealm.cn. | A MeshML model viewer, which support skinned mesh and normal map. The model is from http://www.cgrealm.cn. | ||
Line 105: | Line 112: | ||
= Motion Blur and Depth of Field = | = Motion Blur and Depth of Field = | ||
+ | [[File:Mblur_dof.jpg|200px|thumb|right|Mition Blur and Depth of Field]] | ||
[[Motion blur]] and [[depth of field]] post process. Focus plane and focus range can be adjusted. This sample also demonstrate the instancing technique. It switchs to hardware instancing if the hardware supports it, or else instance data are expanded on CPUs. | [[Motion blur]] and [[depth of field]] post process. Focus plane and focus range can be adjusted. This sample also demonstrate the instancing technique. It switchs to hardware instancing if the hardware supports it, or else instance data are expanded on CPUs. | ||
Line 122: | Line 130: | ||
= Ocean = | = Ocean = | ||
+ | [[File:Ocean.jpg|200px|thumb|right|Ocean]] | ||
Demonstrate the water rendering. Water movement is simulated by GPU real-time FFT operation. The kernel is from NVIDIA's demo. | Demonstrate the water rendering. Water movement is simulated by GPU real-time FFT operation. The kernel is from NVIDIA's demo. | ||
Line 140: | Line 149: | ||
= Parallax = | = Parallax = | ||
+ | [[File:Parallax.jpg|200px|thumb|right|Parallax]] | ||
Parallax mapping, extend from normal map. | Parallax mapping, extend from normal map. | ||
Line 156: | Line 166: | ||
= Particle Editor = | = Particle Editor = | ||
+ | [[File:Particleeditor.jpg|200px|thumb|right|Particle Editor]] | ||
Particle system editor. | Particle system editor. | ||
Line 171: | Line 182: | ||
= PNTriangles = | = PNTriangles = | ||
+ | [[File:Pn_triangles.jpg|200px|thumb|right|PNTriangles]] | ||
Implement Curved PN Triangles algorithm by D3D11's tessellator. Low-poly model is tessellated to high-poly model at runtime. | Implement Curved PN Triangles algorithm by D3D11's tessellator. Low-poly model is tessellated to high-poly model at runtime. | ||
Line 185: | Line 197: | ||
= PostProcessing = | = PostProcessing = | ||
+ | [[File:Postprocessing.jpg|200px|thumb|right|Post Processing]] | ||
Demonstrate the post processing, including: | Demonstrate the post processing, including: | ||
*Ascii Arts, fitting the image to ascii characters. | *Ascii Arts, fitting the image to ascii characters. | ||
Line 207: | Line 220: | ||
= ProceduralTex = | = ProceduralTex = | ||
+ | [[File:Proceduraltex.jpg|200px|thumb|right|Procedural Texture]] | ||
Various [[procedural texture]] generation by perlin noise on GPUs. | Various [[procedural texture]] generation by perlin noise on GPUs. | ||
Line 220: | Line 234: | ||
= Refract = | = Refract = | ||
+ | [[File:Refract.jpg|200px|thumb|right|Refract]] | ||
Refraction rendering. Fresnel and dispersion are supported. | Refraction rendering. Fresnel and dispersion are supported. | ||
Line 237: | Line 252: | ||
= Shadow cube map = | = Shadow cube map = | ||
+ | [[File:Shadowcubemap.jpg|200px|thumb|right|Shadow cube map]] | ||
Expand the traditional shadow map to cube map. Simulate the omnidirectional point light and texture projection. The other improvement is the usage of [[Variance Shadow Map]]. | Expand the traditional shadow map to cube map. Simulate the omnidirectional point light and texture projection. The other improvement is the usage of [[Variance Shadow Map]]. | ||
Line 251: | Line 267: | ||
= Sub-surface = | = Sub-surface = | ||
+ | [[File:Subsurface.jpg|200px|thumb|right|Sub-surface]] | ||
Real-time rendering of [[sub-surface scattering]]. | Real-time rendering of [[sub-surface scattering]]. | ||
Line 264: | Line 281: | ||
= Text = | = Text = | ||
+ | [[File:Text.jpg|200px|thumb|right|Text]] | ||
Demonstrate signed distance field based font system. | Demonstrate signed distance field based font system. | ||
Line 276: | Line 294: | ||
= Vertex displacement = | = Vertex displacement = | ||
+ | [[File:Vertexdisplacement.jpg|200px|thumb|right|Vertex displacement]] | ||
Calculate position and normal displacement in vertex shader. | Calculate position and normal displacement in vertex shader. | ||
Line 289: | Line 308: | ||
= Video texture = | = Video texture = | ||
+ | [[File:Videotexture.jpg|200px|thumb|right|Video Texture]] | ||
Demostrate show engine. Decoded video can be mapped to 3D objects as texture. The video is from a open source movie [http://www.bigbuckbunny.org/ Big Buck Bunny]. | Demostrate show engine. Decoded video can be mapped to 3D objects as texture. The video is from a open source movie [http://www.bigbuckbunny.org/ Big Buck Bunny]. | ||
Revision as of 00:47, 19 December 2010
Note If you want to run samples on a PC without Microsoft Visual C++ 2010 installed, you need to install Microsoft Visual C++ 2010 Redistributable Package first.
Contents
- 1 Deferred Rendering
- 2 Depth peeling
- 3 Distance mapping
- 4 Fractal
- 5 GPU Particle System
- 6 JudaTex Viewer
- 7 Model viewer
- 8 Motion Blur and Depth of Field
- 9 Ocean
- 10 Parallax
- 11 Particle Editor
- 12 PNTriangles
- 13 PostProcessing
- 14 ProceduralTex
- 15 Refract
- 16 Shadow cube map
- 17 Sub-surface
- 18 Text
- 19 Vertex displacement
- 20 Video texture
Deferred Rendering
Deferred rendering rendering framework.
Techniques
- Deferred Lighting
- SSAO
- Adaptive Anti-alias
- Arbitrary light source
- Soft shadow
- Packing System
Requirements
- Geforce 6600+ or Radeon 9500+.
Rendering plugin supported
- D3D11/OpenGL.
Depth peeling
Order independent transparency rendering.
Techniques
- Depth peeling
- MRT
- UI
Requirements
- Geforce 6600+ or Radeon 9500+.
Rendering plugin supported
- D3D11/OpenGL.
Distance mapping
Distance mapping from chapter 8 of GPU Gems 2. In pixel shader, precomputed distance field is used to do local sphere ray tracing. The extension here is the silhouette can be presented well.
Techniques
- Distance mapping
- Silhouette detection
- Normal map compression (since 3.4.0)
Requirements
- Geforce FX+ or Radeon 9500+. Geforce 6+ recommanded.
Rendering plugin supported
- D3D11/OpenGL.
Fractal
Calculate fractal on GPUs.
Techniques
- Ping-pong buffers
Requirements
- Geforce FX+ or Radeon 9500+. Geforce 6+ recommanded.
Rendering plugin supported
- D3D11/OpenGL/OpenGLES2.
GPU Particle System
GPU-based particle system.
Techniques
- Particle system
- Multi-pass rendering
- Vertex texture fetch
- Deferred particle
Requirements
- Geforce 6+ or Radeon HD2400+.
Rendering plugin supported D3D11/OpenGL.
JudaTex Viewer
Juda Texture viewer.
Techniques
- Juda Texture
- Mouse Interaction
Requirements
- Geforce FX+ or Radeon 9500+.
Rendering plugin supported
- D3D11/OpenGL.
Model viewer
A MeshML model viewer, which support skinned mesh and normal map. The model is from http://www.cgrealm.cn.
Techniques
- GPU skinning
- MeshML reading
- Normal map rendering
- UI
Requirements
- Geforce FX+ or Radeon 9500+.
Rendering plugin supported
- D3D11/OpenGL/OpenGLES2.
Motion Blur and Depth of Field
Motion blur and depth of field post process. Focus plane and focus range can be adjusted. This sample also demonstrate the instancing technique. It switchs to hardware instancing if the hardware supports it, or else instance data are expanded on CPUs.
Techniques
- Motion Blur
- Depth of field
- Summed-Area Table
- Software/hardware instancing
- Script engine
- UI
Requirements
- Geforce 6600+ or Radeon 9500+.
Rendering plugin supported
- D3D11/OpenGL.
Ocean
Demonstrate the water rendering. Water movement is simulated by GPU real-time FFT operation. The kernel is from NVIDIA's demo.
Techniques
- Water rendering
- Compute shader
- FFT on GPUs
- Reflection mapping
- Fog
- Lens flare
- Packing System
Requirements
- Geforce 6xxx+ or Radeon HD2xxx+. Realtime editing requires Geforce 8xxx+ or Radeon HD4xxx+.
Rendering plugin supported
- D3D11/OpenGL.
Parallax
Parallax mapping, extend from normal map.
Techniques
- Parallax mapping
- Normal map compression (since KlayGE 3.4.0)
Requirements
- Geforce FX+ or Radeon 9500+.
Rendering plugin supported
- D3D11/OpenGL/OpenGLES2.
Known issues
- The texture is not right in OpenGL plugin on ATI's card.
Particle Editor
Particle system editor.
Techniques
- Particle system
- Complex UI
- Soft particle
- Geometry shader
Requirements
- Geforce FX+ or Radeon 9500+. Geforce 6+ recommanded.
Rendering plugin supported
- D3D11/OpenGL.
PNTriangles
Implement Curved PN Triangles algorithm by D3D11's tessellator. Low-poly model is tessellated to high-poly model at runtime.
Techniques
- PN Triangles algorithm
- Tessellation
- Hull Shader/Domain Shader
Requirements
- Geforce GTX 4xx+ or RadeonHD 5xxx+.
Rendering plugin supported
- D3D11/OpenGL/OpenGLES2.
PostProcessing
Demonstrate the post processing, including:
- Ascii Arts, fitting the image to ascii characters.
- Cartoon rendering with two pass rendering. The first pass renders geometry, the second pass calculates lighting and edge.
- Tiling.
- HDR.
- Night Vision.
- Old Fashion, looks like old picture.
Techniques
- Post process
- Ascii fitting on GPUs
- Cartoon post process
- Depth and normal discontinuous detection
- MRT
Requirements
- Geforce 6600+ or Radeon 9500+.
Rendering plugin supported
- D3D11/OpenGL.
ProceduralTex
Various procedural texture generation by perlin noise on GPUs.
Techniques
- Perlin noise
- Procedural texture
Requirements
- Geforce FX+ or Radeon 9500+.
Rendering plugin supported
- D3D11/OpenGL/OpenGLES2.
Refract
Refraction rendering. Fresnel and dispersion are supported.
Techniques
- Reflection, refraction and fresnel
- Dispersion
- HDR rendering
- Tone mapping
- HDR texture compression
- Dual face refraction
Requirements
- Geforce FX+ or Radeon 9500. Geforce 6+ recommanded.
Rendering plugin supported
- D3D11/OpenGL.
Shadow cube map
Expand the traditional shadow map to cube map. Simulate the omnidirectional point light and texture projection. The other improvement is the usage of Variance Shadow Map.
Techniques
- Omnidirectional shadow map
- VSM
- Texture projection
Requirements
- Geforce FX 5600+ or Radeon 9500+. Geforce 6+ recommanded.
Rendering plugin supported
- D3D11/OpenGL.
Sub-surface
Real-time rendering of sub-surface scattering.
Techniques
- Sub-surface scattering
- Bump map
Requirements
- Geforce FX 5600+ or Radeon 9500+. Geforce 6+ recommanded.
Rendering plugin supported
- D3D11/OpenGL.
Text
Demonstrate signed distance field based font system.
Techniques
- Font
Requirements
- Geforce FX+ or Radeon 9500+.
Rendering plugin supported
- D3D11/OpenGL/OpenGLES2.
Vertex displacement
Calculate position and normal displacement in vertex shader.
Techniques
- Vertex displacement
- Directly compute normal by derivative function.
Requirements
- Geforce 4 Ti+ or Radeon 9200+.
Rendering plugin supported
- D3D11/OpenGL/OpenGLES2.
Video texture
Demostrate show engine. Decoded video can be mapped to 3D objects as texture. The video is from a open source movie Big Buck Bunny.
Techniques
- DirectShow decode to texture
Requirements
- Geforce 4 Ti+ or Radeon 9200+.
Rendering plugin supported
- D3D11/OpenGL/OpenGLES2.
Known issues
- Can't switch to full screen in D3D11.