Parameter에 Min ~ Max 범위를 지정하면 머티리얼 인스턴스에서 슬라이더 형태로 편집 가능
6) Time 시간
Time 노드가 있음. DeltaTime 노드도 있음
언리얼 엔진에서 Delta Time은 시간 기반 계산에 중요한 개념이다. 머티리얼에서도 이를 활용하여 애니메이션이나 효과를 구현할 때 사용되기도 한다. 💠Delta Time은 두 프레임 사이에 걸린 시간, 즉 한 프레임이 끝나고 다음 프레임이 시작될 때까지의 시간. 💠머티리얼에서 애니메이션과 같은 시간 의존적 작업을 수행할 때 유용. 프레임 레이트가 일정하지 않더라도 애니메이션이 매끄럽게 재생될 수 있도록 도와준다.
7) Vector1, Vector2, Vector3, Vector4 (벡터의 연산)
유니티에서는 낮은 차원으로 전환돼서 계산이 되지만, 언리얼에서는 오류가 난다.
2. Geometry 기하학
1) Bitangent Vector, Normal Vector (✨중요✨)
노말 벡터(Normal Vector): 3D 오브젝트의 표면에서 노말 벡터는 그 표면이 “어느 방향을 향하고 있는지”를 알려주는 화살표라고 생각하면 된다.
예를 들어, 평평한 종이가 있다고 할 때, 그 종이에서 수직으로 튀어나온 화살표가 바로 노말 벡터다. 이 화살표는 조명이 어디서 오더라도 빛이 어떻게 반사되는지 계산할 때 중요한 역할을 한다.
Tangent Space에서의 노말: 3D 오브젝트에 기록된 노멀 정보(ex. 노멀 맵)가 없으면 기본적인 상태로("평평하다") (0,0,1)이라는 노멀 벡터를 사용한다. ➡️ (R=0, G=0, B=1)이므로 파란색으로 표현된다.
표면의 방향을 표현할 때 노멀 벡터뿐만 아니라 탄젠트 벡터 (Tangent Vector)와 비탄젠트 벡터 (Bitangent Vector)도 같이 사용된다. 탄젠트 벡터는 표면 위의 한 쪽 방향. 가로 방향(U)을 나타낸다. 바이탄젠트 벡터는 탄젠트 벡터의 수긴인, 세로 방향(V)을 나타낸다. 두 벡터는 노말 벡터와 함께 오브젝트 표면에서 직교(서로 수직)하는 기본 좌표계를 형성한다. 이 좌표계 덕분에 텍스처에 담긴 정보(주로 UV 좌표에 기록!)와 실제 3D 공간의 방향 정보를 연산할 수 있게 된다.
이 세 벡터 T (탄젠트), B (비탄젠트), N (노말)로 TBN 행렬을 구성하여 :
텍스처에 기록된 노멀 데이터(보통 RGB값으로 표현됨) ➡️ 실제 3D 모델의 조명 계산에 필요한 노멀 데이터(월드 스페이스 혹은 오브젝트 스페이스의 노멀)로 바꿀 수 있다.
다시 말해 TBN 행렬은 텍스처와 3D 공간 사이의 번역기 역할을 한다고 보면 된다.
역행렬(역치환)을 통한 기본 노멀 복원: 때에 따라 이 변환을 반대로 적용해서, 3D 모델의 노멀 정보에서 다시 탄젠트 공간의 기본 노멀인 (0,0,1)로 돌려보내야 할 때가 있다.
디버깅 또는 테스트용 : 3D 그래픽 작업 중에 노멀 맵 데이터가 잘못 렌더링 되거나 왜곡된 경우, 원래 기본 노멀 데이터로 복원해서 문제를 찾는 데 도움을 줄 수 있다.
누락된 노멀 데이터 복원 : 텍스처 맵의 노멀 정보가 불완전하여 누락된 경우, 기본값으로 복원해서 "평평한 표면"으로 처리할 수 있다. 이렇게 하면 비정상적인 렌더링 문제는 방지할 수 있다.
2) Screen Position 화면 UV (굴절 셰이더) 📌
모드를 Tiled로 하면 씬의 UV를 바둑판식으로 표현한 것처럼 보여진다. 이 씬 UV는 굴절 셰이더를 만들 때 유용하다. 굴절 셰이더는 주로 물, 유리, 얼음과 같은 투명한 재질을 표현할 때 사용한다.
구현 방식:
카메라 정보 가져오기 : GrabPass를 사용하여 화면의 텍스처 정보를 가져온다.
GrabPass ? : 카메라가 현재 화면에 렌더링한 정보를 텍스처로 가져오는 기능. 이를 통해 화면의 배경 정보를 활용하여 굴절 효과를 계산할 수 있다.
Screen Position : 화면 좌표 기준으로 빛의 경로를 계산. 이를 통해 굴절된 이미지를 표현할 수 있다.
UV 좌표 왜곡 : 굴절 효과를 위해 텍스처 좌표를 노이즈 값이나 수학적 계산을 통해 변형한다.
UV 매핑 : 굴절 효과를 적용하기 위해 텍스처 좌표를 왜곡시켜 빛이 굴절된 것처럼 보이게 한다.