금속에 다양한 텍스쳐 맵 입히기

Renderman의 PxrSurface을 활용해서 기본 금속 재질을 만들어보고, 스크래치 자국을 텍스쳐 맵을 이용하여 표현해보도록 하겠습니다.

PxrSurface의 Specular

우선 가장 기본적인 금속 재질은 PxrSurface의 Specular를 조정해서 만들 수 있습니다.

Specular를 사용하기 전에 두 가지를 미리 설정하고 시작해야합니다. 우선, PxrSurface의 Specular는 Artistic Mode와 Physical Mode를 제공하는데 여기선 Artistic Mode를 활용하겠습니다.
Artistic Mode는 다소 비사실적인 표현이더라도 미적으로 창의적인 Specular 표현을 가능하게 합니다.
Physical Mode는 설정값을 조정하는 방식으로 Specular를 설정하되 사실적인 표현을 가능하게 합니다.

둘째로, Specular의 Advanced탭을 누르면 Specular Model을 선택할 수 있습니다. PxrSurface는 Beckmann과 Ggx 두 모델을 제공합니다. Beckmann은 거울이나 크롬같이 반사율이 엄청 높은 재질을 표현할 때 좋습니다. 그 외에는 Ggx 모델을 선택하는 것이 좋으므로 여기서는 Ggx 모델을 선택하고 진행하겠습니다.

PxrSurface는 세 가지 Specular를 제공합니다.
Primary Specular, Rough Specular, Clear Coat.
Primary Specular 우리가 아는 Specular로 재질의 반사를 설정할 수 있습니다. Rough Specular는 Specular와 똑같은 parameter들을 가지지만 디폴트 roughness가 높게 설정되어있습니다. 러프한 반사를 원한다면 Rough Specular를 Primary Specular와 함께 쓰는 것이 좋습니다.
Clear Coat는 코팅된 재질 느낌을 만들어 줍니다.

기본적인 금속 재질 만들기

기본적인 금속을 만들기 위해선 Primary Specular를 설정하면 됩니다.

  1. Diffuse color를 검은색으로 설정한다.
  2. Primary Specular에서 Edge Color를 하얀색으로 설정한다.
  3. Primary Specular에서 Face Color를 원하는 금속의 색으로 설정한다.
  4. Primary Specular에서 적당한 Roughness를 설정하여 광을 표현한다.

위와 같은 방식으로 아이언맨 얼굴을 황금(Gold) 재질로 만들어보겠습니다. base_gold

Primary Specular를 조정해서 황금(Gold)을 만들었습니다. 저는 조금 더 밝고 매트한 황금을 만들기 위해서 Diffuse Color를 추가하고 Rough Specular 설정값들과 Clear Coat 설정값들도 조정하겠습니다. refined_gold

결과물 complete_base

Anistrophy

Primary Specular, Rough Specular, Clear Coat 모두 Advanced탭으로 들어가서 좀 더 세밀한 표현을 설정할 수 있습니다. 그 중 Anistrophy는 재질의 결을 만들어줍니다. Anistrophy가 1에 가까울 땐 재질의 결이 가로로 생기고, -1에 가까울 땐 세로로 생깁니다.

anistrophy

텍스쳐맵으로 스크래치 만들기

이제 아이언맨 얼굴에 스크래치를 내보겠습니다.

일단 스크래치를 표현할 텍스쳐맵을 가져옵니다. 저는 Surface Imperfection 사이트에서 무료로 제공하는 텍스쳐맵을 사용하도록 하겠습니다. Surface Imperfection 링크

texturemap

텍스쳐맵을 Primary Specular의 Roughness에 연결할 것입니다. 그렇게 되면 텍스쳐맵의 어두운 부분은 Roughness 0에 가까운 값을, 밝은 부분은 1에 가까운 값을 가지게 되어 위 텍스쳐맵 기준 스크래치를 표현하고 싶은 부분만 Roughness가 높게 보이게 됩니다. 아무래도 날카로운 물체에 스크래치가 나면 표면이 거칠어지겠죠.

텍스쳐맵을 입히기 전에 UV를 잘 펴주세요! uv

UV를 잘 폈다면 아래를 순서대로 진행합니다.

  1. Hypershade를 켭니다.
  2. PxrTexture 노드를 생성하고 Filename 파라미터에 텍스쳐맵 파일을 불러옵니다.
  3. 텍스쳐맵의 어두운 부분과 밝은 부분의 명도 차이가 적어 스크래치가 잘 보이지 않을 것 같아 PxrRemap 노드를 활용하여 color correction을 해줍니다. PxrTexture의 ResultRGBPxrRemap의 InputRGB와 연결합니다. (3은 필수는 아니지만 유용, 노드를 solo하여 실시간으로 확인하면서 수정)
  4. PxrRemap의 ResultRGBR을 미리 만들어둔 황금 재질 PxrSurface의 Specular Roughness와 연결합니다. Specular Roughness는 하나의 float값이기 때문에 ResultRGB가 아닌 ResultRGBR을 받아야합니다.

hypershade

다시 랜더링을 해보면 다음과 같이 스크래치가 난 금속을 표현할 수 있습니다. scratched

같은 방법으로 다양한 텍스쳐맵들을 활용하여 다양한 표현을 할 수 있습니다.

other

더 나아가, Noramal Map, Specular의 Shading Tangent 등을 더 활용하면 더욱 더 사실적인 스크래치를 만들 수 있습니다.


  • 모델: free3d 무료 모델 링크
  • 텍스쳐맵: surfaceimperfections Sample Textures 링크