????????GPU Gems 2??????????????????????????????????Perlin?????????
??
???????????????????????????????????????Cry Engine?Cry Engine?????????????????????????????????????????????????Cry Engine???????????
????6??Cry Engine 3????????????????????????????
????Cry Engine 5????????????
???????Cry Engine?????????????shader???????Cry Engine???????????????Water.cfx??????????????????
CRYTEK/CRYENGINEgithub.com
???????????????????????????Cry Engine 5??????????????
OK????????
????????Highlight
????????????GPU Gems 2??????????
???????????????????Using Vertex Texture Displacement for
Realistic Water Rendering?
??????????GPU Gems 2??????????
?????????????????????Efficient Soft-Edged Shadows Using Pixel Shader Branching?
??????????Generic Refraction?
???????????Fast Third-Order Texture Filtering?
?????????????High-Quality Antialiased Rasterization?
??????????Fast Prefiltered Lines?
??Nalu Demo??????????Hair Animation and Rendering in the Nalu Demo?
??????????????Using Lookup Tables to Accelerate Color Transformations?
???????Perlin???Implementing Improved Perlin Noise?
??????????Advanced High-Quality Filtering?
???Mipmap?????Mipmap-Level Measurement?
I????????
???????????????????Using Vertex Texture Displacement for Realistic Water Rendering?
??????
???????????????????????????????????????????????????????????????????????????????????
??????????????
??????
1.1?????????
Gems2??????????2005??????????????????????????????????FFT?[Tessendorf 2001],????????????????????????????
?????????????????????????????????????????????????????????????????????????????????
????????????????????????????????FFT??????????
1.2??????
???????????????????????????????????????????????????????????????????????????????????????????????
1.3???????
????????????????Height maps?????????????????????????????????harmonic?????octave?????????????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?18-2????????????
?????????????????????????????????????
??A?B??????????????????????????????????????????????????????4???????????????????????????????????????????????????10cm?40km?10???40??????
1.4??????
??????????????????
??????
????
??????????????????????????????????????????????????????????????????????????????????????????
1.5??????
????????????????????????????????????????????????????????????????radial grid???????????????????????????????
????????????????????????
???i=[0..N-1],j=[0..M-1]???a0?a1??
??????????????????????????????????LOD?????????ROAM?SOAR??????????????????????CPU??????????????????????????????GPU???????????????
???????????????????????????????????
00000000
1.6????????????????
1.6.1???????????
?????????????????GeForce 6???????????????????????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????????????
1.6.2????????????
?????????????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????
00000000000
???????????????????????????????????????????????????????
1.6.3??????????Render-to-Texture?
????????????????????????????????????????pass??????????????????????????????????????????????????????16??????????????????????????????????????????????????
?????????????????????pass?
?1??????????????32?????????????????????????????????????????????
?2??????????????????????????
1.6.4???????
?????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????
????????
??????????????????????????????????????????????????
?????????????????????????????????????????????????????????????
1.7?????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
1.7.1????????Analytical Deformation Model?
????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????????
???r????????????????b??????I_0???k??????????????????
?????????????????????????????????
1.7.2???????Dynamic Displacement Mapping?
?????????????????????????????????GPU?????GPGPU??????????????pass????????????pass???????????????????????????????????????????????octaves?????????????????????????
???????????????????????????????????cellular-automata??????????????????????????????????????????
????????????????????????????????
1.7.3??????Foam Generation?
?????????????????????????????????????????????????H0????????????????????????????
???H_max??????????H_0??????H??????
?????????????????????????????????????????????????????
????????
????????????????????????????????????????????Height maps???????????????????????????????????????????????????????????????radial grid???????????????
1.??????????????
1????????????:???????????????????????????????????????????????
2????????????????????????????????????????????????????????????
3???????????Render-to-Texture?
4????????????????????????????????????????????????????????
2.?????????
1?????????Analytical Deformation Model?
2.???????Dynamic Displacement Mapping?
3.??????????????????????H0????????????????????????????
???????
??????????????????????????
QianMo/GPU-Gems-Book-Source-Codegithub.com
??shader????fpWaterDM.cg?vpWaterDM.cg????????????????demo exe?????????
?????
????Water Rendering?
???????Vertex Texture Displacement?
?????Height Mapping?
??????Bilinear Filtering?
II?????????
?????????????????????Efficient Soft-Edged Shadows Using Pixel Shader Branching?
??????
???????????????????????????????soft
shadow?????????????????????????????????????????
????????????????PCF????????????????????????
??????
?????????????????????????/????Stencil Shadow/Shadow volume???????Shadow Map??
???????????????????????????????????????
??????????????????????????????????????????????????????Percentage-Loser Filtering,PCF??????????????????????????????????????????????????????????????????????
???????????????????
?????
????Soft Shadows?
???????Soft-Edged Shadows?
????/????Stencil Shadow/Shadow volume?
?????Shadow Map?
????????Percentage-Loser Filtering,PCF?
??????????Generic Refraction?
??????
??????????????????????????????????????????????????????????????????????????????????????????
??????
???Refraction???????????????????????????????????????????????
?????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????pass????????????????????pass??????????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????a????b????????c??????
???????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????alpha????????
?????
???Refraction?
?????Water Rendering?
??????Glass Rendering?
???????????Fast Third-Order Texture Filtering?
??????
?????????????????????????????????????????????cubic????[Bjorke 2004]???????????????????????????????mipmap???????????
??????????????????????????????????????1D?2D?3D??????B???B-spline???????????????????????????
??????
???????????????????????????????????????????????Repeated Nearest-Neighbor?????????????????????????????????????????????????2D?3D?????????8???????????????64??????????tricubic?????????????
???B???Cubic B-Spline?????
?a?f_1??????w_i?x????
?b??????????????c????????????
????????????????????????????????????????????????????????????????????????????????????B????????????????????????????????
????????????????????????????????????????
?????
?????Texture Filtering?
?????Higher-Order Filtering?
B?????B-Spline Filtering?
??B???Cubic B-Spline?
?????????Fast Recursive Cubic Convolution?
?????????????High-Quality Antialiased Rasterization?
??????
??????????????supersampling????????????????????????????????????????????????????
??????
???????????????????supersampling??????????????????tiles????buckers???????????????????downsample???????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????tiles
????????????????????
?1???????????????????????????????????3D?????????????????
?2??????????????????????????????????????????????????????????
?3????????????????????????????????CPU??????????????????????????
?????
???????Antialiased Rasterization?
??????tiled supersampling?
????downsample?
??????????Fast Prefiltered Lines?
??????
?????????????????????????????
??????
?????????Prefiltered??????McNamara,McCormack,?Jouppi?2000??????????????????????????????????????????????????????????????????????????????????????????????????????????GPU?????????????
??????????????
???????????????????????????????????????????????????????
?????????????????????????????????????CPU?GPU?????????????????????????????????????????????????????????????
?????
??????Prefiltered Lines?
???/????Antialiasing?
???????Antialiasing Lines?
??Nalu Demo??????????Hair Animation and Rendering in the Nalu Demo?
??????
?????NVIDIA???Nalu Demo????????????
?Nalu???
??????
NVIDIA?Nalu demo????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?Nalu?????????????????????????????????????????????????????/??????
??????4095?????????????????????????????123000???????????????????????????????????????control hair?????????????Nalu???????????????????????????????????????????
???????????????Marschner?????2003?????????????????????????????????????????Opacity shadow maps?(Kim and Neumann 2001)?
???Marschner?????????
?Marschner??????????Lookup Textures?
?????
?????Hair Rendering?
?????Hair Animation?
Marschner?????Marschner Reflectance Model?
???????Opacity Shadow Maps?
??????????????Using Lookup Tables to Accelerate Color Transformations?
??????
??????????????????????????????????
??????
???????????????????????????????????Lookup
Table???LUT???????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????GPU??????????????????????????????????
?????????
?????????????????????????????????????????????????????????????????
?????
????Lookup Table?LUT?
?????Color Transformations?
???????Perlin???Implementing Improved Perlin Noise?
??????
?????GPU Gems 1?????????Ken Perlin??????[Perlin
2004]??GPU Gems 1??Ken Perlin???????????3D????????????????????????????GPU??????????CPU?????
??????
Perlin????????????
?????3D????????x?y?z?????????????????????????????Perlin????????????????????????????0~255????????????????????????????????????????????????x????????y????????????????????????????????z???????????z??????????????????x?y?z??????????
?????????????????????????3D??????????????????8??????????????????????????????????????????????8???????????
Perlin?????????CPU?????????????????????????????????????????????????????????????????????????????????????????????????????????CPU??????
???????????????????????????????????????????????????????????
??????????pixel?????
?????
Perlin???Improved Perlin Noise?
???Perlin???Improved Perlin Noise?
??????????Advanced High-Quality Filtering?
??????
?????????GPU????????????????????????????????
??????
?????????????????????????????????????????????????????????????????????????????3D?????????????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????3D???????????????????????????????
?????????????????????????????????????Shock Filtering?????????????????????
??????Shock Filtering???
?????
GPU?????GPU-based texture-filter?
?????texture interpolation?
???/????antialiasing?
?????Shock Filtering?
???Mipmap?????Mipmap-Level Measurement?
??????
???????????false-colored??mipmap???????????????????????mipmap????????????????????GPU?????????????
??????
????false-colored??mipmap?????GPU?????????????????????mip????????????????????????????????????????????????????????????Climax?Leviathan????????????????????????80%????????????????????
???????????mipmap??
??a???????Climax?Leviathan?????b?????????????????????mipmap????????????????????????
?????
?????
?????texture management?
????false-colored?
Mipmap???Mipmap-Level?
???GitHub?
????????GitHub????????????
???MarkDown????????????????????????????????GitHub??????????????????????????????????Git?????????????????????,???????????????GitHub?Repo????
????GitHub???????
QianMo/Game-Programmer-Study-Notesgithub.com
?????????????
?????????GPU Gems 2???????????????????
PS:?????????????????????????????exe?????????????????
?GPU Gems 2????Web???
GPU Gemsdeveloper.nvidia.com
????????GPU-Gems-Book-Source-Code?GitHub???????GPU
Gems??????????????GPU Gems 2????CD?????????????
https://link.zhihu.com/?target=https%3A//github.com/QianMo/GPU-Gems-Book-Source-Code
??????
?????https://zhuanlan.zhihu.com/p/40288273
|