마른 하늘에 날구름 넣기

69
마마 마마마 마마마 마마 Unity Procedural Sky System 마 마마마 마마마

Upload: ajin-kim

Post on 13-Apr-2017

2.900 views

Category:

Technology


0 download

TRANSCRIPT

PowerPoint

Unity Procedural Sky System

3ProgrammerEffect Artist! / Technical Artist 4

2

5

Unity5 Procedural Sky Shader

5 sky shaderColor

5 4

?- .

sky Color .Tint

5 5

?

,

5 6

Unity5 Procedural Sky Shader

.

5 7

Unity5 Procedural Sky Shader

. .

5 8

1

5 10

1 !!!!!!!!!!!!

5 11

2 TERA - (2011)

5 12

2 Alpha Blending() PBS Reflection Probe

5 13

3Procedural Sky Shader

5 14

! !

! ! .

.. ..

.. ..

. .

.

. .

?

22

?

.

. 23

? , .

.

24

? . .

25

: ? .

26

: ? .

27

? , .

Mie Scattering( ) .

28

?

,, .

29

Shader Forge !

LightDir viewDirFresnel ! Fake Specular

, Light Color

Sky Color

Horizon ColorSky ColorTop Color

Horizon ColorSky ColorTop Color

34

Horizon + Sky+ Top Horizon +Sky ColorTop Colorfloat3 Sunset3 = lerp(_SkyColor.rgb, _SunSetColor.rgb, normalizeWorldPostion.y);float3 SkyColor = lerp(Sunset3.rgb, _HorizonColor.rgb, pow((1.0 - max(0, dot(viewDirection, float3(0, -1, 0)))), 8.0));float3 FinalSkyColor = lerp(SkyColor, _SkyTopColor.rgb, max(0, dot(viewDirection, float3(0, -1, 0))));Sky Color

Horizon Color

35

Color . -> Lerp ! Day ColorNight Color

36

Color . -> Lerp ! Day ColorNight Color Day Colorsun90Lerp 1

37

Color . -> Lerp ! Day ColorNight Color Night Colorsun-90Lerp 0

38

Directional Light .

= = _WorldSpaceLightPos0 x,y,z _WorldSpaceLightPos0 x,y,z , Lerp 0~1 ?

39

.. X,Y,Z ..

40

.. X,Y,Z ..

_WorldSpaceLightPos0.x -> Rotation Y

41

.. X,Y,Z .. _WorldSpaceLightPos0.y -> Rotation x

42

.. X,Y,Z .. _WorldSpaceLightPos0.y -> Rotation x

43

float3 emissive = lerp(DayColor.rgb, NightColor.rgb,_WorldSpaceLightPos0.y);

-90 night Color .. Night Colorsun-90Lerp 0

44

float3 emissive = lerp(FinalSkyColor.rgb, FinalSkyColor2.rgb,_WorldSpaceLightPos0.y);

-90 ..,_WorldSpaceLightPos0.y 0 ! 1~-1

45

- _WorldSpaceLightPos0.Y *0.5+0.5 !!

46

Horizon ColorSky Color Horizon + Sky+ Top Horizon +Sky ColorTop Color

Sunset color Lerp float3 Sunset = lerp(_SunSetColor.rgb, _SkyColor.rgb, saturate(dot(float3(0,1,0),_WorldSpaceLightPos0.xyz)));

47

Sky Color

Sunset colorfloat3 Sunset = lerp(_SunSetColor.rgb, _SkyColor.rgb, saturate(dot(float3(0,1,0),_WorldSpaceLightPos0.xyz)));

SkyColorsun90Lerp 1 0 1

48

float3 Sunset = lerp(_SunSetColor.rgb, _SkyColor.rgb, saturate(dot(float3(0,1,0),_WorldSpaceLightPos0.xyz))); SunsetColorsun0Lerp 0Sky Color

Sunset color

49

50

!

?UV !

52

Vertex .

uv

53

UV ..

54

UV ..

55

. .

56

. .

i.uv.y= i.uv.y*0.5 + 0.5;i.uv.x = (PI+atan2(i.posWorld.x ,i.posWorld.z)) /(2*PI);

57

58

4

,

Layer3Layer2 Layer1 Layer0

59

4

,

Layer3Layer2 Layer1 Layer0

60

4

,

Layer3Layer2 Layer1 Layer0

61

4

,

Layer3Layer2 Layer1 Layer0

62

.

63

64

Procedural Sky

Reflection Probe Unity PBR

-

- Reflection Probe

66

/

4 / 1

Tint ( )

67

Draw call 1

Lerp 4 #ifdef

68

Thank you

Sky Color http://www.gamedevforever.com/85 : http://www.cyberschool.co.kr/gh/gh14.htm https://ko.wikipedia.org/wiki http://tip.daum.net/question/48470138Tera Rendering Techniques http://www.slideshare.net/valhashi/2011-03-gametechtadptforpdf

69