Unity/수업내용

Unity Shader 21.05.06. - Hologram

HappyFrog 2021. 5. 6. 16:19

홀로그램이 RimLight와 다른 점은 홀로그램은 구한 rim의 값을 투명도(알파값)에 할당한다는 것이다.

크게 다를건 없지만 o.Emission으로 색상을 할당해도 홀로그램의 색깔이 변할 뿐, 속은 여전히 투명하다는 것이 다르다. 아마 알파에 rim값을할당해서 그런듯 하다.

 

-Transparent의 기능이 무엇인지 직관적으로 알고싶어서 빼보고도 해봤지만 육안으로 구별되지 않았다. 뭐가 다른지 직관적으로 보고싶다.

 

Unity - Manual

alpha:fade의 기능이다.

**주의. alpha:fade를 뺀다면 아래 사진처럼 투명한 홀로그램이 나오지 않는다. 반드시 alpha:fade를 사용하여 윤곽만 출력되도록 하자.

 

 

-----------------------------------------------------------------------------------------------------------------------------------

월드좌표를 색상정보로 바꾸는 과정에서 색상정보에 수를 곱하면 흰 줄이 하나씩 늘어난다. 처음엔 지름에 위치한 흰 선하나밖에 없었짐나 5를 곱하니 위 아래로 3줄, 2줄에 생겨나 Material이 이런 형태를 띄게 됐다.

 

현-란

월드좌표를 모두 색상정보로 바꾸어 선을 표현하고 시간에 따라 이동시키기 위해 _Time.y를 사용했다.

rgb = xyz이기 때문에

빨간색 = x

초록색 = y

파란색 = z

이다.

 

그리고 이것을 알파에 대입하면

 

 

 

이런식으로 나오며 o.Emission에서 조절하는 색상값은 올라가는 선과 홀로그램 모두에 동시적용된다.

또한, 색상값에서 했던 위 영상과는 다르게 IN.worldPos 또는 IN.worldPos.rgb는 세 선을 모두 출력하지 않고 x값만 출력한다. = 왜 그런진 모르겠다. 아마 컬러값은 float3 또는 4이고 Alpha는 float이기 때문이라고 생각한다.

그리고 Frac을 제곱할수록 올라가는 선의 굵기가 얇아진다.

 

o.Alpha의 pow(1-ndotv, 3)은 홀로그램 전체를 출력하고, 더해지는 frac은 올라가는 선을 표현한다.

 

보다보니 frac이란 함수도 정확히 무슨 기능을 구현하는지 궁금해서 찾아보았다. frac은 CG의 기능이다.

frac (nvidia.com)