-
UE5 Material, Transform Vector 활용 예시 - (Tangent Space to World Space)쓰리디/Unreal, 언리얼 2025. 2. 14. 09:06반응형
Dot, Fresnel을 활용하여
Transform Vector의 예시를 하나 알아봅시다.Fresnel + NormalTexture
Transform Vector
TransformVector Transform Vector는 특정 Vector를 Tangent => World 같은 다른 공간으로 변환시켜주는 개념입니다.
Dot과 Fresnel에서의 예시를 알아봅시다.Dot Product, Fresnel
DotProduct??
Dot Product, 내적
01 카메라가 바라보는 각도에 따라서 도출되는 값이 다릅니다.
02 두 Vector의 방향 차이에 따라서 값이 달라집니다.Fresnel!
Fresnel도 마찬가지로 Dot product 기술을 기반으로, 화면이 돌아갈 때,
카메라의 각도와 Vertex Normal의 각도를 계산하여 OUTPUT을 내줍니다.그렇다면, Vertex Normal의 각도가 아닌 특정 Normal Texture를 기준으로 각을 계산하게 해 볼까요?
Transform Vector (Tangent space to World Space)
Normal Texture, Frensel에서의 활용
Fresnel의 활용은 Vertex normal과 Camera Vector의 Dot 계산이 기본입니다.
그럴 때, Vertex Normal대신, Normal Texture의 Data를 사용해 각도를 계산할 수 있습니다!
01 Texture는 Mapping을 Mesh의 Uv를 따라 적용이 되는 Texture Data이기에,
Mesh의 각 면인, Tangent Space의 기준으로 Normal 방향이 저장된답니다.말이 살짝 어렵죠? 다시 설명해볼게요.
02 Normal Map은 UV기반으로 적용되어서, 각 Mesh 면인, Tangent Space 기준으로 Normal 방향이 된답니다.=> Normal Map을 World Space로 변환해야 카메라 시점이 바뀌더라도 올바르게 적용이 된답니다.Normal Texture, Dot에서의 활용
위 Fresnel 예시에서 말한 것과 같이, Vertex Normal 대신, Normal Texture를 변경하였습니다.
마무리
Mesh의 Tangent 기반으로 저장된 Texture이니, Normal Map을 사용할 때는
Transform vector를 활용해서 Tangent Space => World Space로 변형해야 한다는 사 실!이렇게 변환해야 Camera 각도에 따라 자연스레 Fresnel 효과가 적용되겠죠~?
남만 알고 있는 쓰리디에 대한 정보를
속이 쓰리지 않게,
소기쓰리디반응형'쓰리디 > Unreal, 언리얼' 카테고리의 다른 글
Niagara Namespace 종류와 활용도 (0) 2025.02.08 Niagara Namespace01 - System Emitter Particles (0) 2025.02.05 Mixamo to Unreal Animation (for Mannequins) (0) 2025.01.12 Unreal Auto Exposure 좀 꺼줘라.. (0) 2024.09.12 Unreal Engine HLSL기초 Custom Material? (0) 2024.09.07