SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
Water Flow in


     Alex Vlachos, Valve
        July 28, 2010
Outline
• Goals & Technical Constraints

• How Artists Create Flow Maps

• Flowing Normal Maps in Left 4 Dead 2

• Flowing Color Maps in Portal 2
Left 4 Dead 2
Goals
• Visual
   – Solve repeating texture artifacts
   – Flow around obstacles
   – Vary water speed and bump strength
• Technical
   – Work with existing reflective surfaces
   – Min hardware ps2.0b (6-year-old hardware) & Xbox 360
• Gameplay…
Gameplay
• Early Left 4 Dead 2 playtests showed players were confused and
  got lost often in the swamps
   – Soft non-directional lighting
   – Trees provided too much cover
• My theory was that water flow would improve gameplay by
  highlighting the correct path
• We tested this theory through playtesting
• In practice, we found testers took 17% fewer wrong turns and
  decreased the time it took to traverse the level!
Technical Constraints
• Already at perf limits on the Xbox 360 & low-end PC

• Already at memory limits on the Xbox 360

• Our water shader had limited instructions left for our
  low end hardware ps2.0b
Algorithm Overview
• Pixel shader flow, not geometric flow
• Continue to use a normal map for water
  ripples
• Artists author a flow map (a texture
  containing 2D flow vectors)
• Use this flow map in a pixel shader to
  distort the normal map in the direction of
  flow
Flow Texture Mapped onto Surface
Covers entire water surface

                                   Flow Texture
Normal Map Mapped onto Surface
Tiled over the water surface

                                 Normal Map
Artists Author Flow Maps
• Flow map provides a unique 2D vector for every point on
  the water surface
• Relatively low resolution: ~4 texels/meter
• Impractical to paint directly
• We use Houdini to create vector flow maps
Houdini – Importing Level Geometry
Houdini – “Combing” Vector Field
Houdini – Procedural Masks
Houdini – Applying Masks
Houdini – Water Normal Maps

                              Normal Map
Left 4 Dead 2
• Wanted to replace our scrolling normal maps with
  flowing normal maps

• Keep the rest of the water shader the same

• This algorithm ultimately provides a new per-pixel
  normal generated from the normal map and flow map
Related Work
• Nelson Max and Barry Becker 1995. Flow visualization
  using moving textures. In Proceedings of the
  ICASW/LaRC Symposium on Visualizing Time-Varying
  Data, 77–87.

• Building on aspects of their algorithm and applying their
  approach to flowing normal maps
Flow Visualization
• Inputs: flow field & noise texture

• Distort a noise texture to visualize a flow field

• The UV is offset by the 2D flow vector scaled by time
Flow Visualization Textures
    Noise Texture
                        Flow Texture
Flow Visualization Experiment

                                Flow Texture
Max & Becker’s Observation
• The beginning of the distortion looks convincing

• Only distort a small amount

• In general, distortion looks reasonable for the
  first 1/3 of uv space
Smoothly Interpolating Layers
• Blend the short animated segment in two layers
• Each layer is offset half a phase so we can hide the
  restart for each layer
Smoothly Repeating Flow

                          Flow Texture
A Great Start
• We now have a method to flow a normal map

• We want to apply this to a larger surface

• But applying this to a large surface means tiling our
  normal map which will cause artifacts…
Portal 2 Test Map
Portal 2 Test Map (Programmer Art)
Flow Vectors on Water Surface
                                Flow Texture
Single Layer Normal Distortion

                                 Flow Vectors
Double Layer Normal Distortion

                                 Flow Vectors
Two Major Problems
• Repetition – The same normals will flow
  through the same point on the mesh

• Pulsing – The surface appears to pulse in a
  repeating pattern
Repetition Visualization Single Layer

                                        Flow Vectors




                                        Normal Map
Double Layer

               Flow Vectors




               Normal Map
Double Layer With Offset

                           Flow Vectors




                           Normal Map
Repetition Solved by Offset

                              Flow Vectors
Pulsing Solved by Noise
                          Noise Texture
Pulsing Solved by Noise

                          Flow Vectors




                          Noise Texture
Water Speed Affects Normals
We scale down the strength of the normal in tangent space by the
  flow speed (Flow speed is the length of the 2D flow vector)
Performance
Compared to scrolling two normal maps:
• Additional texture fetches: 2 - flow & noise
• Additional arithmetic pixel shader instructions: 21
Water Flow in Portal 2
• Wanted to also flow debris in dirty water

• Needed to modify our algorithm to support flowing a
  color map
Debris Flow Example

                      Flow Vectors
Debris Flow Example
                      Flow Texture
Debris Normal (Same as before)

                                 Flow Vectors
Flowing Debris Using Same Algorithm
Flowing Normals
• Flowing normals would repeat
  an interval from zero to some
  fraction with the peak (center)
  of the interval at half distortion
Flowing Debris
• Flowing colors works better by
  offsetting the interval from –
  fraction to +fraction so the
  peak of the interval is at zero
  (the at-rest position)
Flowing Debris Using Offset

                              Flow Vectors
Debris Flow

              Flow Vectors
Portal 2 Test Map
Left 4 Dead 2
Future Work
• Flow height maps and use tessellation hardware
• Multiple frequencies of normal maps
• Render dynamic flow vectors per-frame so animated
  objects cause flow changes
• Use flow map with our physics simulation to have
  objects flow on the water surface using the same data
Summary
•   Use an artist-authored flow map
•   Flow the normals in two layers and combine
•   Use noise to reduce pulsing artifact
•   Offset each phase of animation to reduce repetition
•   Flowing debris uses an offset distortion range that favors
    less distortion than the normal flow
Thank You!

Water textures created by Alireza Razmpoosh

            Alex Vlachos, Valve
         alex@valvesoftware.com

Weitere ähnliche Inhalte

Was ist angesagt?

Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Graham Wihlidal
 
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介Drecom Co., Ltd.
 
Crysis 2-key-rendering-features
Crysis 2-key-rendering-featuresCrysis 2-key-rendering-features
Crysis 2-key-rendering-featuresRaimundo Renato
 
Unity dojo amplifyshadereditor101_jpn-jp
Unity dojo amplifyshadereditor101_jpn-jpUnity dojo amplifyshadereditor101_jpn-jp
Unity dojo amplifyshadereditor101_jpn-jp小林 信行
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Tiago Sousa
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow MappingSukwoo Lee
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteElectronic Arts / DICE
 
シリコンスタジオの最新テクノロジーデモ技術解説
シリコンスタジオの最新テクノロジーデモ技術解説シリコンスタジオの最新テクノロジーデモ技術解説
シリコンスタジオの最新テクノロジーデモ技術解説Silicon Studio Corporation
 
中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~ProjectAsura
 
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect AndromedaElectronic Arts / DICE
 
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...Codemotion
 
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意UnityTechnologiesJapan002
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John HableNaughty Dog
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술Ki Hyunwoo
 
Z Buffer Optimizations
Z Buffer OptimizationsZ Buffer Optimizations
Z Buffer Optimizationspjcozzi
 
マテリアルエディタで作るVFX
マテリアルエディタで作るVFXマテリアルエディタで作るVFX
マテリアルエディタで作るVFXAkihito Chiba
 
CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"
CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"
CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"Ryo Suzuki
 

Was ist angesagt? (20)

Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016Optimizing the Graphics Pipeline with Compute, GDC 2016
Optimizing the Graphics Pipeline with Compute, GDC 2016
 
Hair in Tomb Raider
Hair in Tomb RaiderHair in Tomb Raider
Hair in Tomb Raider
 
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
 
Crysis 2-key-rendering-features
Crysis 2-key-rendering-featuresCrysis 2-key-rendering-features
Crysis 2-key-rendering-features
 
Unity dojo amplifyshadereditor101_jpn-jp
Unity dojo amplifyshadereditor101_jpn-jpUnity dojo amplifyshadereditor101_jpn-jp
Unity dojo amplifyshadereditor101_jpn-jp
 
Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)Rendering Technologies from Crysis 3 (GDC 2013)
Rendering Technologies from Crysis 3 (GDC 2013)
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow Mapping
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
シリコンスタジオの最新テクノロジーデモ技術解説
シリコンスタジオの最新テクノロジーデモ技術解説シリコンスタジオの最新テクノロジーデモ技術解説
シリコンスタジオの最新テクノロジーデモ技術解説
 
中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~
 
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
 
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
An introduction to Realistic Ocean Rendering through FFT - Fabio Suriano - Co...
 
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John Hable
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
Z Buffer Optimizations
Z Buffer OptimizationsZ Buffer Optimizations
Z Buffer Optimizations
 
マテリアルエディタで作るVFX
マテリアルエディタで作るVFXマテリアルエディタで作るVFX
マテリアルエディタで作るVFX
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
 
CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"
CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"
CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"
 

Ähnlich wie SIGGRAPH 2010 Water Flow in Portal 2

Around the World in 80 Shaders
Around the World in 80 ShadersAround the World in 80 Shaders
Around the World in 80 Shadersstevemcauley
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Tiago Sousa
 
Optic flow estimation with deep learning
Optic flow estimation with deep learningOptic flow estimation with deep learning
Optic flow estimation with deep learningYu Huang
 
Temporal Superpixels Based on Proximity-Weighted Patch Matching
Temporal Superpixels Based on Proximity-Weighted Patch MatchingTemporal Superpixels Based on Proximity-Weighted Patch Matching
Temporal Superpixels Based on Proximity-Weighted Patch MatchingNAVER Engineering
 
Computational Linear Algebra in Wireless Communications
Computational Linear Algebra in Wireless CommunicationsComputational Linear Algebra in Wireless Communications
Computational Linear Algebra in Wireless Communicationssoukhinov
 
Remote sensing water table
Remote sensing water tableRemote sensing water table
Remote sensing water tableWaterHackathon
 
Building Worlds - Codebits
Building Worlds - CodebitsBuilding Worlds - Codebits
Building Worlds - CodebitsFilipe Varela
 
Paris Master Class 2011 - 07 Dynamic Global Illumination
Paris Master Class 2011 - 07 Dynamic Global IlluminationParis Master Class 2011 - 07 Dynamic Global Illumination
Paris Master Class 2011 - 07 Dynamic Global IlluminationWolfgang Engel
 
X2M water by 巨人网咯 2018
X2M water by 巨人网咯 2018X2M water by 巨人网咯 2018
X2M water by 巨人网咯 2018Lee Jungpyo
 
andreadis_swot_igarss.pdf
andreadis_swot_igarss.pdfandreadis_swot_igarss.pdf
andreadis_swot_igarss.pdfgrssieee
 
Massively Parallel Landscape-Evolution Modelling using General Purpose Graphi...
Massively Parallel Landscape-Evolution Modelling using General Purpose Graphi...Massively Parallel Landscape-Evolution Modelling using General Purpose Graphi...
Massively Parallel Landscape-Evolution Modelling using General Purpose Graphi...asm100
 
Multichannel analysis of surface waves
Multichannel analysis of surface waves  Multichannel analysis of surface waves
Multichannel analysis of surface waves Harish Parimi
 

Ähnlich wie SIGGRAPH 2010 Water Flow in Portal 2 (15)

Around the World in 80 Shaders
Around the World in 80 ShadersAround the World in 80 Shaders
Around the World in 80 Shaders
 
Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)Crysis Next-Gen Effects (GDC 2008)
Crysis Next-Gen Effects (GDC 2008)
 
3 D texturing
 3 D texturing 3 D texturing
3 D texturing
 
Optic flow estimation with deep learning
Optic flow estimation with deep learningOptic flow estimation with deep learning
Optic flow estimation with deep learning
 
Real-time lightmap baking
Real-time lightmap bakingReal-time lightmap baking
Real-time lightmap baking
 
Temporal Superpixels Based on Proximity-Weighted Patch Matching
Temporal Superpixels Based on Proximity-Weighted Patch MatchingTemporal Superpixels Based on Proximity-Weighted Patch Matching
Temporal Superpixels Based on Proximity-Weighted Patch Matching
 
Computational Linear Algebra in Wireless Communications
Computational Linear Algebra in Wireless CommunicationsComputational Linear Algebra in Wireless Communications
Computational Linear Algebra in Wireless Communications
 
Remote sensing water table
Remote sensing water tableRemote sensing water table
Remote sensing water table
 
Building Worlds - Codebits
Building Worlds - CodebitsBuilding Worlds - Codebits
Building Worlds - Codebits
 
Paris Master Class 2011 - 07 Dynamic Global Illumination
Paris Master Class 2011 - 07 Dynamic Global IlluminationParis Master Class 2011 - 07 Dynamic Global Illumination
Paris Master Class 2011 - 07 Dynamic Global Illumination
 
X2M water by 巨人网咯 2018
X2M water by 巨人网咯 2018X2M water by 巨人网咯 2018
X2M water by 巨人网咯 2018
 
andreadis_swot_igarss.pdf
andreadis_swot_igarss.pdfandreadis_swot_igarss.pdf
andreadis_swot_igarss.pdf
 
Mc qs us (1)
Mc qs us (1)Mc qs us (1)
Mc qs us (1)
 
Massively Parallel Landscape-Evolution Modelling using General Purpose Graphi...
Massively Parallel Landscape-Evolution Modelling using General Purpose Graphi...Massively Parallel Landscape-Evolution Modelling using General Purpose Graphi...
Massively Parallel Landscape-Evolution Modelling using General Purpose Graphi...
 
Multichannel analysis of surface waves
Multichannel analysis of surface waves  Multichannel analysis of surface waves
Multichannel analysis of surface waves
 

SIGGRAPH 2010 Water Flow in Portal 2

  • 1. Water Flow in Alex Vlachos, Valve July 28, 2010
  • 2. Outline • Goals & Technical Constraints • How Artists Create Flow Maps • Flowing Normal Maps in Left 4 Dead 2 • Flowing Color Maps in Portal 2
  • 4.
  • 5.
  • 6. Goals • Visual – Solve repeating texture artifacts – Flow around obstacles – Vary water speed and bump strength • Technical – Work with existing reflective surfaces – Min hardware ps2.0b (6-year-old hardware) & Xbox 360 • Gameplay…
  • 7. Gameplay • Early Left 4 Dead 2 playtests showed players were confused and got lost often in the swamps – Soft non-directional lighting – Trees provided too much cover • My theory was that water flow would improve gameplay by highlighting the correct path • We tested this theory through playtesting • In practice, we found testers took 17% fewer wrong turns and decreased the time it took to traverse the level!
  • 8. Technical Constraints • Already at perf limits on the Xbox 360 & low-end PC • Already at memory limits on the Xbox 360 • Our water shader had limited instructions left for our low end hardware ps2.0b
  • 9. Algorithm Overview • Pixel shader flow, not geometric flow • Continue to use a normal map for water ripples • Artists author a flow map (a texture containing 2D flow vectors) • Use this flow map in a pixel shader to distort the normal map in the direction of flow
  • 10. Flow Texture Mapped onto Surface Covers entire water surface Flow Texture
  • 11. Normal Map Mapped onto Surface Tiled over the water surface Normal Map
  • 12. Artists Author Flow Maps • Flow map provides a unique 2D vector for every point on the water surface • Relatively low resolution: ~4 texels/meter • Impractical to paint directly • We use Houdini to create vector flow maps
  • 13. Houdini – Importing Level Geometry
  • 17. Houdini – Water Normal Maps Normal Map
  • 18. Left 4 Dead 2 • Wanted to replace our scrolling normal maps with flowing normal maps • Keep the rest of the water shader the same • This algorithm ultimately provides a new per-pixel normal generated from the normal map and flow map
  • 19. Related Work • Nelson Max and Barry Becker 1995. Flow visualization using moving textures. In Proceedings of the ICASW/LaRC Symposium on Visualizing Time-Varying Data, 77–87. • Building on aspects of their algorithm and applying their approach to flowing normal maps
  • 20. Flow Visualization • Inputs: flow field & noise texture • Distort a noise texture to visualize a flow field • The UV is offset by the 2D flow vector scaled by time
  • 21. Flow Visualization Textures Noise Texture Flow Texture
  • 23. Max & Becker’s Observation • The beginning of the distortion looks convincing • Only distort a small amount • In general, distortion looks reasonable for the first 1/3 of uv space
  • 24. Smoothly Interpolating Layers • Blend the short animated segment in two layers • Each layer is offset half a phase so we can hide the restart for each layer
  • 25. Smoothly Repeating Flow Flow Texture
  • 26. A Great Start • We now have a method to flow a normal map • We want to apply this to a larger surface • But applying this to a large surface means tiling our normal map which will cause artifacts…
  • 28. Portal 2 Test Map (Programmer Art)
  • 29. Flow Vectors on Water Surface Flow Texture
  • 30. Single Layer Normal Distortion Flow Vectors
  • 31. Double Layer Normal Distortion Flow Vectors
  • 32. Two Major Problems • Repetition – The same normals will flow through the same point on the mesh • Pulsing – The surface appears to pulse in a repeating pattern
  • 33. Repetition Visualization Single Layer Flow Vectors Normal Map
  • 34. Double Layer Flow Vectors Normal Map
  • 35. Double Layer With Offset Flow Vectors Normal Map
  • 36. Repetition Solved by Offset Flow Vectors
  • 37. Pulsing Solved by Noise Noise Texture
  • 38. Pulsing Solved by Noise Flow Vectors Noise Texture
  • 39. Water Speed Affects Normals We scale down the strength of the normal in tangent space by the flow speed (Flow speed is the length of the 2D flow vector)
  • 40. Performance Compared to scrolling two normal maps: • Additional texture fetches: 2 - flow & noise • Additional arithmetic pixel shader instructions: 21
  • 41. Water Flow in Portal 2 • Wanted to also flow debris in dirty water • Needed to modify our algorithm to support flowing a color map
  • 42. Debris Flow Example Flow Vectors
  • 43. Debris Flow Example Flow Texture
  • 44. Debris Normal (Same as before) Flow Vectors
  • 45. Flowing Debris Using Same Algorithm
  • 46. Flowing Normals • Flowing normals would repeat an interval from zero to some fraction with the peak (center) of the interval at half distortion
  • 47. Flowing Debris • Flowing colors works better by offsetting the interval from – fraction to +fraction so the peak of the interval is at zero (the at-rest position)
  • 48. Flowing Debris Using Offset Flow Vectors
  • 49. Debris Flow Flow Vectors
  • 52. Future Work • Flow height maps and use tessellation hardware • Multiple frequencies of normal maps • Render dynamic flow vectors per-frame so animated objects cause flow changes • Use flow map with our physics simulation to have objects flow on the water surface using the same data
  • 53. Summary • Use an artist-authored flow map • Flow the normals in two layers and combine • Use noise to reduce pulsing artifact • Offset each phase of animation to reduce repetition • Flowing debris uses an offset distortion range that favors less distortion than the normal flow
  • 54. Thank You! Water textures created by Alireza Razmpoosh Alex Vlachos, Valve alex@valvesoftware.com