석류 작업노트
Normal 공간 의 종류 ( Tangent,Object,World,View Space ) 본문
섭페에서 흔하게 보는 World Space Normal 이라던가
굉장히 여러군데에서 확인할 수 있다.
다만 섭페에서 노말을 뽑아 엔진에 넣는것만 했었지
정확하게 노말공간이 어떤 종류가 있는지, 어떻게 사용되는것인지 제대로 알지못했기에
노말의 공간에 대해 , 또한 사용법 예시에 대해 한번 정리해보려고 한다.
1.1 Tangent Space Normal
( Surface Space Normal )
탄젠트 스페이스 노말은 우리가 흔히 사용하는 노말 이라고 보면된다.
Tangent Space는 표면의 각 Vertex 마다 로컬좌표계를 정의한다.
노말맵의 각 픽셀마다 이 좌표계 기준의 Normal Vector 를 저장한다.
버텍스를 기준으로 노말을 뽑기에 오브젝트가 회전하든,이동하든 어떠한 경우에도 상관없이
거의 모든 경우에서 사용할 수 있다는 장점이 있다.
변형되거나 움직임 , 애니메이션이 들어가도 언제나 자연스럽기에
현재 게임업계 작업물에서 표준이 되었다.
Tangent Space Normal Map 의 작동방법
머테리얼에서 Normal Texture 를 연결하면
Tangent Space Normal 을 메시 표면의 Tangent Space 에서 World/View Space 로 엔진이 자동변환하여 사용한다.
1.2 Object Space Normal
( Local Space Normal )
오브젝트 스페이스 노말은
오브젝트 자체가 바라보고있는 로컬의 방향을 기준으로 Normal 을 뽑아낸다.
Tangent Normal 은 오브젝트가 회전함에 따라 자연스러운 노말계산을 표현해야 하지만
Object Space Normal 은 따로 회전됨이나 움직임이 없는 오브젝트를 표현하기에 적합하여
정적인 에셋 Ex)배경 Static Mesh 에 사용하기 적합하다
단점으로써도 명확한데
정적인 에셋을 표현하는데에 적합하다고 했지만
만약 에셋이 회전하거나 변형이 일어나게 된다면 다시금 Normal 계산을 뽑아내야 하기에
사용범위가 제한적이다.
1.3 World Space Normal
월드 스페이스 노말은 버텍스나 로컬방향 과는 상관없이
씬 자체의 좌표 절대값을 기준으로 Normal을 뽑아낸다.
다만 이 또한 오브젝트가 회전/변형하게 된다면 사용할 수 없으므로
정적인 데이터에서만 사용이 가능하다.
보통 월드 기준으로 표면방향을 활용해 마스크, 환경효과, 특수머테리얼 등에 활용된다.
섭페에서의 먼지 , 빛바램 , 테이블 위면묘사 마스크 등 원하는 영역을 빠르게 잡아주거나
엔진에서 자동으로 잔디넣기 , 눈 , 하늘방향에 대한 묘사를 넣을때 주로 사용된다.
World Space Normal Map 의 사용방법
월드스페이스노말 을 사용하려면 VertexNormalWS 를 연결해 뽑을 수 있다.
1.4 Camera Space Normal
( View Space Normal )
오브젝트의 노말을 카메라의 시점을 기준으로 뽑아낸 것을 Camera Space Normal 이라고 한다.
Camera Space 에서는 카메라의 위치가 항상 원점 ( 0 , 0 , 0 ) 이며
카메라의 방향은 -z 방향 을 기준으로 한다.
카메라 스페이스 노말은 기본적으로 오브젝트의 조명계산,포스트프로세싱,클리핑 등 을 계산할 때 사용되며
림라이트 , 엣지 , 노말기반 아웃라인 등 에서 다양하게 사용할 수 있다.
View Space Normal Map 의 사용방법
월드스페이스노말 을 사용하려면
Tangent Space Normal ( 기본적인 노말맵 ) 을 Transform 노드를 이어
Camera/View Space 로 변환하여 사용할 수 있다.
Ai 요약
참고자료
https://peudann.tistory.com/103
25.04.15 / 스페이스(Space), 좌표 공간
3D 게임 엔진에서 객체가 렌더링될 때는 여러 가지 "좌표 공간(Coordinate Space)"을 거치며 변환이 이루어진다. 다음은 주로 사용되는 공간들이다. 1. 오브젝트 스페이스(Object Space) 또는 로컬 스페이
peudann.tistory.com
https://chulin28ho.tistory.com/704
Space 별 Normal 차이
오브젝트가 기반이라서 노말 방향이 오브젝트에 딱 붙어서 같이 따라오는 느낌. 용 해골 윗부분이 녹색인건 어느 방향으로 회전시켜도 계속 녹색이다. 카메라에 노말 좌표가 딱 붙어 있는 느낌.
chulin28ho.tistory.com
https://lightbakery.tistory.com/52
[Unity] URP 셰이더 Normal Vector 정리
[Normal Vector] 노드에는 아래 사진과 같이 여러 종류의 Space를 설정할 수 있다. 책에 나온 예제 오브젝트로 그 차이를 정리하려고 한다. Object Space 오브젝트가 스스로 가지고 있는 공간이며 피봇점
lightbakery.tistory.com
https://neighborfish.tistory.com/9
Chapter 9.4 Object space Normal mapping
이 문서는 개인 공부용으로 쓰였습니다.- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현) Chapter 9.4 Object space Normal mapping 0. 정의 - 오브젝트 좌표계 상에서의 노말을 저장함 1. 노멀맵 제작 - 저
neighborfish.tistory.com
[그래픽스] 좌표계 변환 (= 공간 이전, space change)
⭐ object space -----world transform-----> world space⭐ world space -----view transform-----> camera space⭐ camera space -----projection transform-----
velog.io
https://www.artstation.com/blogs/typhen/GZdL/this-is-normal-3-types-of-normal-maps
'스터디 > Unreal Engine' 카테고리의 다른 글
언리얼엔진_PBR 스페큘러/러프니스 의 차이 & Specular가 더이상 사용되지 않는 이유 (0) | 2025.01.15 |
---|---|
Unreal Englne 집 벽 머테리얼 구현 ( Mesh Paint Brick Wall ) (3) | 2024.10.21 |
언리얼엔진_UV 커스텀 회전(로테이트) 에 대한 분석 With Dot(내적) (0) | 2024.10.14 |
언리얼엔진_카툰렌더링 아웃라인 표현식 (WorldPositionOffset/Twosidedsign/Fresnel) (0) | 2024.08.30 |
언리얼엔진 Translucent PBR 표현 연구 (0) | 2024.08.13 |