본문 바로가기

3D, 그래픽, 프로그래밍 관련/Material, Texture

[Texture] PBR Texture / PBR텍스쳐란 무엇인가?

PBR : Physical Base Rendering

namu.wiki/w/%EB%AC%BC%EB%A6%AC%20%EA%B8%B0%EB%B0%98%20%EB%A0%8C%EB%8D%94%EB%A7%81

 

물리 기반 렌더링 - 나무위키

물리 기반 렌더링(Physically Based Rendering, PBR) 또는 물리 기반 셰이딩(Physically Based Shading, PBS)은 표면의 재질에 따른 빛의 반사가 물리적으로 어떻게 이루어지는지를 시뮬레이션해서 그래픽을 표현

namu.wiki

PBR이란 "물리 기반 렌더링"인데 재질 표면에 따라 빛의 반사 정도가 물리적으로 어떻게 이루어지는지를 시뮬레이션하고 그것을 우리가 볼 수 있도록 시각적 표현을 하는 기법을 말합니다.

 

물질이 갖고 있는 성질을 포함하는 렌더링이라는 말인데요. 물리적? 물리? [물리적]의 사전적 의미를 네이버에서 검색해봤습니다.

 

(명사)

1. 물질의 원리에 기초한 것. - 이번 실험으로 다양한 물리적인 현상을 설명할 수 있을까요?

2. 신체와 관련되어 있거나 신체를 써서 폭력을 행사하는 것. - 우리는 물론 물리적인 방법으로 선생의 입을 열게 할 수도 있습니다.

(관형사)

물질의 원리에 기초한, 물리적 반응

 

컴퓨터 그래픽으로 표현하는 건 2D인데 그것을 사실적인 3D로 표현하려면 다양한 성질들이 필요합니다. (높이, 빛의 적용 범위, 굴곡, 거칠기 등등)

표현하려 하는 물질의 성질에 따라 다르겠지만 AO(Ambient Occlusion), Reflection, Refraction, Glossy, Displayment, Bump, Normal 등의 다양한 Map 파일들이 필요하죠.

이렇게 사실적인 재질 표현을 위해 다양한 텍스쳐 파일을 한 곳에 모아놓은 것들을 PBR texture라고 합니다.

 

구글링으로 다양한 무료 PBR 텍스쳐를 다운로드할 수 있고, 한 가지 재질의 PBR 텍스쳐를 다운로드하여서 확인해보면 그 안에는 위에 적은 다양한 종류의 텍스쳐 파일이 들어있습니다.

제작한 곳에 따라 텍스쳐 파일 이름이 조금씩 다르기도 합니다. 예를 들면 Diffuse와 Albedo 같은, 또는 어떤 파일에는 Gloss, High Gloss가 있지만 어떤 파일에는 Roughness파일만 있거나. 이런 것들이죠. 

 

PBR Texture에는 10가지 맵이 존재합니다.

  1. Albedo (또는 Diffuse, Base color)
  2. Normal, Bump, Displacement
  3. Rughness (또는 Glossiness)
  4. Metalness
  5. Specular (Reflection)
  6. Height
  7. Opacity
  8. Ambient Occlusion (AO)
  9. Refraction
  10. Self_Illumination (또는 Emissive)

1. Albedo (또는 Diffuse, Base color)

가장 기본이 되는 재질 컬러 맵으로 그 재질이 갖고 있는 본연의 컬러를 표현합니다.

엄밀히 따지면 Albedo는 Diffuse와 차이가 있는데, Diffuse는 AO나 스펙큘러의 개념이 포함된 텍스쳐(일반적인 손맵 텍스쳐)라고 볼 수 있습니다. Albedo는 광학적 특성을 제외한 완전한 표면의 색만 표현하는 텍스쳐를 말합니다.

 

Albedo 0%, 50%, 100%

 

2. Normal, Bump, Displacement

재질의 깊이감, 볼륨감을 표현해줄 때 쓰는 맵입니다.

시각적으로 깊이감이 있는 것처럼 표현하지만 실제 모델에는 적용이 되지 않기 때문에 각도에 따라서 효과가 없어 보일 수 있습니다.

RGB 값은 재질 표면의 XYZ값에 해당하는 거칠기 값에 해당합니다.

Normal map과 Bump map, Displacement map은 차이가 있습니다. 

 

Normal map은 color 이미지로 오브젝트의 형태를 변형된 것처럼 보이게 해 주는데 실제로 변형되는 건 아니기 때문에 오브젝트에 변화는 없지만 Bump 보다 우수한 깊이감을 표현해줍니다.

Bump map은 부조의 느낌이 들지만 Normal map은 깊이감이 Displacement map을 사용한 것처럼 우수합니다.

다만 Bump map보다 렌더링 타임이 깁니다.

 

Bump map은 grayscale의 이미지로 재질 표면에 요철을 표현합니다.

오브젝트는 역시 변형되지 않으며 깊이감 표현의 한계가 있어서 큰 형태의 변화를 표현하기보다는 자잘한 요철을 표현하는 데 사용합니다.

가장 짧은 렌더링 타임을 갖고 있습니다.

 

Displacement map은 grayscale의 이미지로 오브젝트를 실제 변형시킵니다. 

실제로 3D 오브젝트가 변형이 되기 때문에 환경 맵이나 조명에 따라 그림자가 생깁니다. 

가장 긴 렌더링 타임을 갖고 있으며 주로 바위나 나무껍질 등 자연물이나 공룡 피부 등 거친 표면을 표현할 때 사용합니다.

 

Normal map 0%, 50%, 100% 

 

 

3. Roughness (또는 Glossiness)

외부의 빛이 재질에 부딪혀 반사될 때 그 양과 분산되는 정도를 설정합니다.

grayscale 맵이고 white 부분이 roughness / black 부분이 smooth, glossy를 표현합니다.

 

Albedo map + Normal map 적용 하고 Roughness map 적용 전
Roughness map 적용 후

차이가 보이시나요? 아래와 같은 Roughness map을 적용하였고 결과물에 따라 빛의 산란과 반사되는 정도를 조절해서 표현됩니다.

Roughness map을 적용하니 전반적으로 하이라이트가 들어가지 말아야 하는 부분이 정리된 느낌입니다.

 

적용된 Roughness map
Roughness map 적용 전과 후

 

 

4. Metalness

Metal 재질 표현에 사용하고 grayscale map입니다. Albedo map의 표현을 더 강하게 하는 범위를 조절할 수 있고, map의 black 부분은 Albedo map의 표현을 강하게 합니다. 반대로 white 부분은 쉐이더가 갖고 있는 금속 느낌을 본래대로 표현해줍니다.

 

Metalness map 적용 전 / 적용 후
적용된 Metalness map

 

5. Specular (Reflection)

빛이 물체에 부딪혀 반사되는 양이나 범위를 조절할 수 있는 맵인데 기본적으로 쉐이더에 Specular 값만 준다면 3D 공간에서 직접 준 조명에서 나오는 빛이 다이렉트로 전달되는 부분에 반사되는 하이라이트가 생기게 됩니다.

여기서 물체의 종류에 따라 차이가 나게 되는데 전도체(금속)와 절연체(비금속)로 구분됩니다.

전도체의 경우 빛이 물체에 닿을 때 특정 가시광선을 흡수하는데 이것이 금속 종류마다 달라서 (금, 은, 황동, 구리, 주철 등) 금속마다 반사되는 빛의 색이 다릅니다.

반대로 절연체의 경우 빛에 따른 명도 차이만 발생합니다. (플라스틱, 사과 등)

그래서 Specular map은 이때 반사되는 색이나 범위를 조절하게 하는 텍스쳐입니다.

 

 

6. Height

Normal map과 비슷하지만 실제 3D 오브젝트의 형태를 변형시킵니다. Displacement map과 동일하게 간주 하지만 Height map은 지형과 같은 큰 지역의 표현에 주로 사용하고 Displacement map은 작고 세부적인 표현에 사용합니다.

역시나 상당히 긴 렌더링 타임을 갖고 있고, 오브젝트 형태가 변경되기 때문에 조명에 따른 그림자가 생깁니다.

 

 

7. Opacity

투명한 부분의 투명도와 범위를 조절할 수 있는 맵입니다.

grayscale map이고 white는 불투명, black은 투명에 가깝습니다.

 

 

 

8. Ambient Occlusion (AO)

주변 환경에 (물체의 위치나, 좁거나, 넓거나, 또는 구석진 곳이나) 반사되는 빛이 다시 영향을 주는 정도를 표현하기 위한 맵입니다.

이 맵을 사용 하면 구석이나 틈, 인물의 턱 아래처럼 어둡게 표현해야 하는 부분은 더욱 어둡게 표현할 수 있고 그에 따라 명도가 올라가는 효과를 볼 수 있습니다.

AO map을 적용하지 못하는 경우에는 포토샵에서 편집해 사용하는데, Albedo map에 AO map을 Multiply로 씌운 다음 Opacity값을 조절하는 방법으로 합성해서 Albedo map만 사용합니다.

grayscale 맵이고, white 부분이 간접 조명의 영향을 많이 받습니다. 

 

 

 

9. Refraction

굴절되는 정도를 나타내는데 투명한 물체에 빛이 통과되면서 빛의 방향이 바뀌는 정도를 조절합니다.

물속에 있는 물체를 표현하거나 투명한 유리 뒤에 보이는 물체를 표현할 때 사용합니다.

 

 

 

10. Self_Illumination (또는 Emissive)

스스로 빛을 발산하는 물체를 표현할 때 사용하는데 (형광등, LED) 강하게 사용하면 물체가 갖고 있는 형상이 날아가버리는 경우가 있습니다. 

RGB 컬러 맵을 사용하고 베이스 컬러 바깥으로 발산하는 빛의 컬러와 양을 조절하기 위한 맵입니다.