인프런 커뮤니티 질문&답변

dkzndk1100님의 프로필 이미지
dkzndk1100

작성한 질문수

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

Normal Mapping

Normal Mapping 질문.

작성

·

382

·

수정됨

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로 변환 후 법선벡터의 값을 이용하여 텍스쳐의 질감을 나타낼 수 있다. (움푹패인 정도? => 곡률)

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

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

답변 1

0

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

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

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

dkzndk1100님의 프로필 이미지
dkzndk1100

작성한 질문수

질문하기