例子程序
注意
如果要在没有安装Microsoft Visual C++ 2010的机器上运行二进制版本的例子,需要事先安装Microsoft Visual C++ 2010 Redistributable Package。
Contents
- 1 Deferred Shading
- 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 Shading
Deferred shading渲染框架。
技术点
- Deferred Lighting
- SSAO
- Adaptive Anti-alias
- 任意光源
- Soft shadow
需求
- Geforce 6600以上或Radeon 9500以上。
渲染引擎支持
- D3D11/OpenGL。
Depth peeling
顺序无关的透明物体渲染。
技术点
- Depth peeling
- MRT
- UI
需求
- Geforce 6600以上或Radeon 9500以上。
渲染引擎支持 D3D11/OpenGL。
Distance mapping
GPU Gems 2中提到的distance mapping。在pixel shader中根据预处理的距离场进行局部球面光线跟踪。这里我做的扩展是可以表现出边缘的轮廓。
技术点
- Distance mapping
- 轮廓检测
- Normal map压缩 (3.4.0之后)
需求
- Geforce FX以上或Radeon 9500以上。推荐使用Geforce 6以上。
渲染引擎支持
- D3D11/OpenGL。
Fractal
在GPU中计算分形图形。
技术点
- 双缓存切换
需求
- Geforce FX以上或Radeon 9500以上。推荐使用Geforce 6以上。
渲染引擎支持
- D3D11/OpenGL/OpenGLES2。
GPU Particle System
基于GPU的粒子系统。
技术点
- 粒子系统
- GPU多遍计算
- Vertex texture fetch
- Deferred particle
需求
- Geforce 6以上或Radeon HD2400以上。
渲染引擎支持 D3D11/OpenGL。
JudaTex Viewer
Juda Texture查看器。
技术点
- Juda Texture
- 鼠标交互
需求
- Geforce FX以上或Radeon 9500以上。
渲染引擎支持
- D3D11/OpenGL。
Model viewer
一个MeshML模型查看器,支持Skinned mesh和Normal map。初始模型来自于http://www.cgrealm.cn。
技术点
- GPU骨骼动画
- 模型格式的读取
- Normal map的渲染
- UI
需求
- Geforce FX以上或Radeon 9500以上。
渲染引擎支持
- D3D11/OpenGL/OpenGLES2。
Motion Blur and Depth of Field
运动模糊和景深post process。可以调节焦平面和焦距范围。并演示了引擎中的instancing实现。在硬件支持instancing的时候会自动切换到硬件实现,否则使用CPU解开instance数据。
技术点
- Motion Blur
- Depth of field
- Summed-Area Table
- 软件/硬件instancing
- Script engine
- UI
需求
- Geforce 6600以上或Radeon 9500以上。
渲染引擎支持
- D3D11/OpenGL。
Ocean
演示水面的渲染。水面的运动通过在GPU上实时地做FFT来模拟。核心来自于NVIDIA的Demo。
技术点
- 水面渲染
- Compute shader
- GPU上的FFT
- 反射贴图
- 雾
- 镜头眩光
需求
- Geforce 6以上或Radeon HD2400以上。实时编辑需要Geforce 8以上或Radeon HD4以上。
渲染引擎支持
- D3D11/OpenGL。
Parallax
Parallax mapping,扩展了normal map技术。
技术点
- Parallax mapping
- Normal map压缩 (KlayGE 3.4.0之后)
需求
- Geforce FX以上或Radeon 9500以上。
渲染引擎支持
- D3D11/OpenGL/OpenGLES2。
已知问题
- 在ATI的卡上OpenGL插件显示全黑。
Particle Editor
粒子系统编辑器
技术点
- 粒子系统
- 复杂的UI
- Soft particle
- Geometry shader
需求
- Geforce FX以上或Radeon 9500以上。推荐使用Geforce 6以上。
渲染引擎支持
- D3D11/OpenGL。
PNTriangles
用D3D11的Tessellator实现了Curved PN Triangles,把低模在运行期细分成高模曲面。
技术点
- PN Triangles算法
- Tessellation
- Hull Shader/Domain Shader
需求
- Geforce GTX 4系列以上或RadeonHD 5系列以上。
渲染引擎支持
- D3D11/OpenGL/OpenGLES2。
PostProcessing
演示后处理的能力。支持的特效有:
- Ascii Arts,把渲染的图像拟合成ascii字符的表示。
- 卡通渲染。使用两遍的方法,第一遍得出几何位置,第二遍进行光照和勾边。
- Tiling,砖块的效果。
- HDR。
- Night Vision,模拟夜视仪看到的效果。
- Old Fashion,老照片效果。
技术点
- post process
- 用GPU进行ascii匹配
- Cartoon post process
- 深度和法线间断点的查找
- MRT
需求
- Geforce 6600以上或Radeon 9500以上。
渲染引擎支持
- D3D11/OpenGL。
ProceduralTex
在GPU上使用Perlin noise来产生多种Procedural texture。
技术点
- Perlin noise
- Procedural texture
需求
- Geforce FX以上或Radeon 9500以上。
渲染引擎支持
- D3D11/OpenGL/OpenGLES2。
Refract
折射的演示。支持Fresnel和色散现象。
技术点
- 反射、折射和Fresnel
- 色散
- HDR渲染
- Tone mapping
- HDR纹理压缩
- 双面折射
需求
- Geforce FX以上或Radeon 9500以上。推荐使用Geforce 6以上。
渲染引擎支持
- D3D11/OpenGL。
Shadow cube map
把传统的shadow map扩展到cube map上,模拟了全方向的点光源和光源的投射。另一个改进是加入了[Variance Shadow Map]。
技术点
- 全方向的shadow map
- VSM
- 纹理投射
需求
- Geforce FX 5600以上或Radeon 9500以上。推荐使用Geforce 6以上。
渲染引擎支持
- D3D11/OpenGL。
Sub-surface
次表面散射的实时渲染。
技术点
- Sub-surface scattering
- Bump map
需求
- Geforce FX 5600以上或Radeon 9500以上。推荐使用Geforce 6以上。
渲染引擎支持
- D3D11/OpenGL。
Text
演示了基于signed distance field的字体显示方法。
技术点
- Font
需求
- Geforce FX以上或Radeon 9500以上。
渲染引擎支持
- D3D11/OpenGL/OpenGLES2。
Vertex displacement
在vertex shader中用sin计算顶点和法线的偏移。
技术点
- 顶点偏移
- 通过导函数直接计算法线
需求
- Geforce 4 Ti以上或Radeon 9200以上。
渲染引擎支持
- D3D11/OpenGL/OpenGLES2。
Video texture
演示了Show engine,解码后的视频作为纹理贴到3D物体上。其中用到的视频来自开源电影Big Buck Bunny。
技术点
- DirectShow解码到纹理
需求
- Geforce 4 Ti以上或Radeon 9200以上。
渲染引擎支持
- D3D11/OpenGL/OpenGLES2。
已知问题
- 在D3D11中无法全屏。