Changwoo Hahn

email icon
Liquid height
Additional light and shadow receiving

[1] step()을 적용하여 액체의 범위를 정해준다.

[2] clip()을 활용하여 윗부분을 투명하게 만든 후 뒷면의 색을 바꿔 윗부분이 채워진 것처럼 보이게 만든다.

Color changing

[3] 액체의 각도를 X, Z 축으로 분리하여 관리한다. Rotate About Axis Node 유니티 공식 Doc

Liquid height
Additional light and shadow receiving

[4.a]에서 볼 수 있듯이 액체의 높이는 world space를 기반으로 하기 때문에 옆으로 눕혔을 시에 물이 꽉 채워지는 것을 볼 수 있다. 이 문제를 해결하기 위해서는 물병의 가로와 세로의 비율을 구하고 내적으로 기울기를 구하여 물병이 기울어질수록 일정 비율로 물의 높이를 낮춰주는 방식으로 문제를 해결했다. 이 방법은 물병이 대칭일 때만 자연스럽게 적용되는 단점이 있다. [4.b] 참고.

Liquid Velocity
Liquid Angular Velocity

[5] position 기반 속력과 각속도(angular velocity)를 구하여 액체의 기울기에 영향을 주도록 만든다. 좌우로 물이 흔들리는 기능을 구현하기 위해서는 sin() 값을 흔들림 값에 곱해 구현했다.

Liquid foam and rim light
[6] Rim light와 윗면에 거품을 추가해주었다.

Liquid Example