33
1 Game Programming Tricks Part I Next-Gen Shaders Korhan Bircan April 8 th , 2008

Next-Gen shaders (2008)

Embed Size (px)

Citation preview

Page 1: Next-Gen shaders (2008)

1

Game Programming Tricks

Part INext-Gen Shaders

Korhan BircanApril 8th, 2008

Page 2: Next-Gen shaders (2008)

2

Shader Models

Page 3: Next-Gen shaders (2008)

3

Post Processing EffectsBlur – Combine pixel color with surrounding pixel colorsMotion Blur – Combine current frame with previous frame(s)Depth of Field – Blur pixel based on their depth valueHDR effects – Bloom, lens flare etc.Magnify bright spots Edge Glow – Find edges and blur themParallax Mapping – improved bump mapping

Page 4: Next-Gen shaders (2008)

4

Gaussian Blur// f(x) = a*e^-((x-b)^2)/r// a = 1; b = 0; r = radius;// f(x) = pow(e, -(x)^2/r)weights[i*width + j] = pow(E, -pow(dist, 2.0)*_1_over_r) );// usually just have a precomputed table

float4 PostProcessPS(float2 Tex : TEXCOORD0) : COLOR0{

float4 Color = 0;

for (int i = 0; i < m_KernelSize; i++){

Color += tex2D(m_SrcColor, Tex + TexelKernel[i].xy ) * weights[i];

}

return Color;}

Page 5: Next-Gen shaders (2008)

5

Gaussian Blur

Page 6: Next-Gen shaders (2008)

6

Radial Blur

Page 7: Next-Gen shaders (2008)

7

Radial Blur

Page 8: Next-Gen shaders (2008)

8

Motion Blur

Page 9: Next-Gen shaders (2008)

9

Depth of Field

Page 10: Next-Gen shaders (2008)

10

Depth of Field

Page 11: Next-Gen shaders (2008)

11

Depth of Field

Page 12: Next-Gen shaders (2008)

12

Depth of Field

Page 13: Next-Gen shaders (2008)

13

Page 14: Next-Gen shaders (2008)

14

Haze

Page 15: Next-Gen shaders (2008)

15

Haze

Page 16: Next-Gen shaders (2008)

16

Haze

Page 17: Next-Gen shaders (2008)

17

Haze

1

32

64

96

128

Page 18: Next-Gen shaders (2008)

18

Haze

Page 19: Next-Gen shaders (2008)

19

Haze – Particle System

Page 20: Next-Gen shaders (2008)

20

High Dynamic Range (HDR) Rendering

Page 21: Next-Gen shaders (2008)

21

HDR Rendering

Page 22: Next-Gen shaders (2008)

22

HDR Rendering

•down filter 4x

•bright pass

•bloom horizontal

•bloom vertical

•up filter 4x

•combine

Page 23: Next-Gen shaders (2008)

23

HDR Rendering

Page 24: Next-Gen shaders (2008)

24

Exposure Control

Page 25: Next-Gen shaders (2008)

25

Glow

•edge detection

•down filter 4x

•blur horizontal

•blur vertical

•combine 4x

Page 26: Next-Gen shaders (2008)

26

Light Streaks

Page 27: Next-Gen shaders (2008)

27

Lens Flare

Page 28: Next-Gen shaders (2008)

28

Parallax Mapping

diffuse shading bump mapping parallax mapping

Page 29: Next-Gen shaders (2008)

29

Bump Mapping

texture map

height map

bump map

Page 30: Next-Gen shaders (2008)

30

Parallax Mappingbump mapping:

naive parallax mapping:

Page 31: Next-Gen shaders (2008)

31

Parallax Mapping

Page 32: Next-Gen shaders (2008)

32

Steep Parallax Mapping

Page 33: Next-Gen shaders (2008)

33

References•Shaders for Game Programmers and Artists, Sebastian St-Laurent

•Programming Vertex and Pixel Shaders, Wolfgang Engel

•DirectX SDK Documentation

•NVIDIA Gpu Gems Series

•Steep Parallax Mapping, Morgan McGuire, Max McGuire