inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12

Normal Mapping

Normal Mapping 질문.

471

dkzndk1100

작성한 질문수 5

0

  1. Texture를 일반 Color Texture와 텍스쳐의 질감을 나타내는 Normal Texture로 분할함.
    Normal Texture는 각 픽셀에 해당하는 Normal Vector값을 가지고 있음

  2. Normal Texture가 푸른 빛을 띄는 이유는 RGB 값을 X,Y,Z축으로 표현할 수 있는데 Z축은 기본적으로 텍스쳐에서 조명방향이고 이를 통해 텍스처의 각 픽셀이 조명방향으로 얼마나 입체감을 나타내느냐
    ( ex) 움푹 파인 정도?
    => -1에 가까울 수록 움푹 파임. 1에 가까울 수록 튀어나온다?)

  1. Texture가 덧씌워진 물체는 움직일때마다 좌표가 바뀜. 좌표가 바뀌는 것을 모두 고려하여 Normal Texture를 준비하는 것은? => 좋은 방법이 아님

  2. 그래서 기본적으로 해당 Normal Texture가 가지고 있는 좌표계가 있고 이를 TangentSpace라고 함.
    접하는 평면을 기준으로 좌표계를 구함.
    TangentSpace의 T, B(X축, Y축) 좌표계는

    위의 그림으로 표현할 수 있음.

  3. 해당 그림의 법선벡터값을 Normal Texture에 기입함.

  4. 해당 TangentSpace를 활용하기 위해서는 카메라좌표계(우리가 바라보는) 좌표계로 변환할 필요성이 있음 TangentSpace => ViewSpace 변환

  5. 실제 Object가 움직일때 변환된 ViewSpace에서 법선벡터 값을 이용하여 Texture의 질감(움푹 패인 정도 => 곡률?)을 나타낼 수 있음.

     

    요약


    - 기본 Texture의 법선 벡터 값을 담은 Normal Texture가 있다.
    - 해당 Normal Texture는 별도의 좌표계가 있으며 이를 TangentSpace라고 부른다.
    - TangentSpace에서의 법선벡터 값은 Z축(B) 에 가까운 경우가 많다. 그래서 NormalTexture는 푸른빛
    (B)에 가까운 형태로 표현된다.
    - TangentSpace는 NormalTexture의 별도 좌표계이므로 카메라(우리가 바라보는) View Space로 변환될 필요성이 있다.
    - View Space로 변환 후 법선벡터의 값을 이용하여 텍스쳐의 질감을 나타낼 수 있다. (움푹패인 정도? => 곡률)

    • 위의 요약이 전달해주시려는 내용을 잘 요약한것인지가 궁금합니다..

    • 질문이 너무 장황해서 죄송합니다..

directx 게임수학

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

당신의 질문에 대한 요약은 정확하게 이루어진 것 같아요. Normal Mapping에 대한 기본적인 개념과 변환을 통해 어떻게 움푹패인 정도를 나타낼 수 있는지를 설명해주셨네요.

만약 추가적인 질문이 있다면 언제든지 물어보세요. 감사합니다.

복습중에 커맨드 큐 관련 질문이 있습니다.

0

39

1

_vsBlob와 _psBlob에서 nullptr이 뜨면서 실행이 안됩니다

0

60

1

#include d3dx12.h 추가했지만 오류

0

83

1

LNK1104 error, DirectXTexD.lib 파일을 열 수 없습니다.

0

124

1

[DirectXTex LNK2019 에러]

0

247

2

UI 랜더링이 이해가 안되어 질문드립니다

0

177

1

insideTess 값 관련 질문

0

126

1

렌더 타겟을 SRV로 사용하려고 합니다.

0

184

1

C++ 언어 표준과 Engine.lib 오류에 관하여..

0

283

2

실행과정에서의 문제

0

402

3

결과물에 의문이 생겨서 한가지 질문 드립니다

0

149

1

uv좌표변환

0

150

1

Shader 관련 문제

0

224

1

Load 부분에서 문제가 있어 질문드립니다

0

167

1

강의에서 보여진 모습과 다른모양이 되어서 질문드립니다

0

174

1

enumclass 질문입니다

0

155

1

nullptr오류가 발생해요.

0

363

2

Normal Mapping / Assertion failed! 오류

0

223

1

1>LINK : fatal error LNK1104: 'Engine.lib' 파일을 열 수 없습니다.

0

432

2

shared_ptr 과 헤더파일 관련하여 질문있습니다

0

210

1

질문있습니다.

0

178

1

장치 초기화 nullptr이 자꾸 발견 되네요.

0

302

2

용 모델에 분명 Diffuse 텍스쳐가 있는것같은데 왜 적용이 안되나요?

0

255

1

안녕하세요 질문있습니다

0

207

1