본문 바로가기
카테고리 없음

GameProgramming Project - 유니티 Shader를 이용한 비와 물결 구현 "비 오는 거리" -1

by 배애앰이 좋아 2020. 8. 1.
반응형

기존에 결과 동영상만 올려놓았던 프로젝트 : https://88-it.tistory.com/21

 

GameProgramming Project - 유니티 Shader를 이용한 비와 물결 구현

많은 내용들이 있지만 정리하기에 벅참이 있기 때문에 관련 영상과 발표한 PPT 를 올려 놓겠습니다. 결과 동영상 1 : https://youtu.be/Sqs6AB1oXMw 낮 버전 결과 동영상 2 : https://youtu.be/uOzMHFREWpI 밤 버..

88-it.tistory.com

를 이 글에서 좀 더 자세히 다루고자 합니다.

 

개발 배경 : 유니티 Shader를 이용한 개발 및 사실적인 이미지 표현

주제 : 비 오는 거리 ( 아래 현상 참고 )

- 가로수 길 배경, 물결, , 물의 파동, 반사, 물이 차오르는 애니메이션, 화면 일그러지는 효과 구현

 

 

위 사진을 참고하여 구현

 

< 배경 구현 >

 

1. 벽 구현

 

 

Texture, Normal Map, Occlusion, Smoothness 사용

 

2. 바닥 구현 

 

 

Smoothness0.5 정도 주어서 매끄러움을 표현하여 물에 젖은 것처럼 표현

 

3. 보도 블럭 

 

 

< 물결 구현 >

 

구현하기 위해 Vertex shader 사용

 

 

Sin(_Time.y + v.vertex.x) 위 방정식을 v.vertex.y, v.normal.z 적용

 

세부 조정 사항들

-스피드

-높낮이

-한 번에 얼마나 많이 굴곡이 생겨날 것인지

 

_Scale * sin(_Time.w * _Speed * _Fre + (v.vertex.x + v.vertex.z))

 

 

평면보다는 대각선이 좀 더 생동감이 있어 식 변경

 

결과 영상 :

 

 

 

그 후에 Alpha:fade 적용하여 투명하게 설정

 

 

< 물의 특징 - 시점에 따른 깊이 변화 >

 

 

물의 특징 : 우리가 직각으로 내려다보는 각도에 가까워지면 투명함이 크고 각도가 평행해지면 반사가 큼

 

Fresnel 공식

카메라를 바라보는 면이 밝고 카메라와 각도가 벌어질수록 어두워 짐

 

float rim = saturate(dot(o.Normal, IN.viewDir));

rim= pow(rim, 1.5);

o.Emission = rim * 2;

 

물결 및 물의 특징에 대한 최종 영상 : 

 

 

 

< 비, 작은 물결 구현 >

 

비 Particle

 

물결 Particle

 

Particle을 이용하여 비 및 작은 물결 구현

 

2장에 이어서 설명.....

 

2019. 2학기 개발

반응형

댓글