Version: 2020.2
언어: 한국어
사실적인 비주얼: 모델
사실적인 비주얼: 야외 조명

사실적인 비주얼: 머티리얼 및 셰이더

이 가이드는 원래 Unity 2017.3의 빌트인 렌더 파이프라인에서 사용하도록 작성되었습니다. 유니버설 렌더 파이프라인(URP) 및 고해상도 렌더 파이프라인(HDRP)에서 이 가이드를 사용하려는 경우 업데이트: URP 및 HDRP의 사실적인 비주얼을 참조하십시오.

머티리얼은 광원이 모델 표면과 반응하는 방법을 정의하며, 사실적인 비주얼을 만드는 데 필수적인 요소입니다. 모델을 생성한 후에는 셰이더를 사용하여 표면 프로퍼티를 정의합니다. Unity 스탠다드 셰이더는 사실적인 머티리얼을 쉽게 생성하는 데 사용할 수 있는 여러 포괄적인 기능이 있고 물리 기반 셰이딩(PBS)이라는 고급 조명 모델이 포함된 빌트인 셰이더입니다. ShaderLab, ShaderGraph(스크립터블 렌더 파이프라인) 또는 기타 셰이더 생성 툴에서 커스텀 표면 셰이더를 만들기 전에 스탠다드 셰이더 사용법을 숙지해야 합니다.

대부분의 실제 표면은 여러 머티리얼로 구성되므로, Unity 스탠다드 셰이더를 사용하여 게임 오브젝트를 텍스처링하는 경우 다음 사항을 고려해야 합니다.

참고: 여기서는 알베도, 평활도, 노멀 맵 및 AO에 대해서만 설명합니다. 자세한 내용은 스탠다드 셰이더 머티리얼 파라미터에 대한 문서를 참조하십시오.

스탠다드 또는 스탠다드 스페큘러 설정

Unity에서 머티리얼을 Standard 또는 Standard Specular 로 설정할 수 있습니다. 이 둘 중 하나로 작업할 때는 일반적으로 Standard 머티리얼을 사용하는 편이 더 쉽습니다. 스페큘러 밝기 및 컬러가 알베도, 평활도 및 메탈릭 입력값에 기반하여 자동으로 계산되기 때문입니다.

스탠다드 설정 머티리얼에서 메탈릭을 1로 설정하면 알베도가 스페큘러의 컬러와 해당 밝기를 평활도에 맞추며 이로 인해 표면의 밝기와 광택이 조정됩니다.

메탈릭을 0으로 설정하면 알베도 컬러가 스페큘러 컬러에 영향을 미치지 않고, 표면 컬러로 표시되지 않습니다.
메탈릭을 0으로 설정하면 알베도 컬러가 스페큘러 컬러에 영향을 미치지 않고, 표면 컬러로 표시되지 않습니다.

스페큘러 컬러가 머티리얼 알베도에 영향을 받지 않게 하려면 스탠다드 스페큘러를 사용하십시오. 스페큘러 컬러를 수동으로 조정하는 것이 더 효과적인 비금속 머티리얼이나 스탠다드 금속이 아닌 머티리얼이 이 경우에 해당합니다. 자세한 내용은 [스페큘러 모드: 스페큘러 파라미터](Specular mode: Specular parameter)를 참조하십시오.

알베도 값과 머티리얼 검증기

물리 기반 셰이더는 광원에 따라 스페큘러 밝기와 배포를 자동으로 계산하는 작업을 수행하지만, 머터리얼의 알베도가 사실적이어야 합니다. 머티리얼의 알베도는 직접 및 간접 조명에 모두 영향을 미치고 비현실적인 값을 씬의 나머지 조명에 전파합니다.

알베도가 매우 어두우면 빛을 많이 흡수하고 비정상적인 조명 리스폰스가 발생합니다. 알베도가 너무 밝으면 비현실적으로 많은 양의 빛과 간접 컬러를 반사합니다.

비금속 표면에 설정되어 간접 조명에 영향을 미치는 알베도
비금속 표면에 설정되어 간접 조명에 영향을 미치는 알베도

현실에서 매우 흔하게 볼 수 있는 페인트가 칠해진 비금속 표면에 대해 분명하게 정해진 값은 없습니다. 예를 들어 나무 벽을 차콜 블랙 또는 스노우 화이트 색으로 칠할 수 있지만, 이 벽 알베도는 하나의 확정된 값이 아닌 다양한 값으로 나타낼 수 있습니다. PBS 값 차트를 사용하면 알베도 값을 결정하는 데 유용합니다(머티리얼 차트 참조]). 일반적인 가이드라인으로서, 비금속 페인트 표면의 알베도 값이 0.2 미만이면 너무 어둡고 0.8보다 높으면 너무 밝습니다. 더 어두운 절연성 머티리얼에 대한 내용은 머티리얼 작성 가이드라인 1: 어두운 절연성 머티리얼(PDF)을 참조하십시오.

머티리얼 표면 하나를 처리하는 경우 머티리얼 차트를 매우 간편하게 사용할 수 있습니다. 하지만 복잡한 알베도 텍스처의 경우 결정을 내리기 어려울 수 있습니다. 머티리얼 검증기 툴을 사용해 머티리얼 값이 가이드라인에 부합하는지 확인할 수 있습니다. 씬 뷰에서 뷰포트의 왼쪽 상단에 있는 드롭다운 메뉴에서 Material Validation 을 선택하여 이 툴을 활성화할 수 있습니다. 참고: 머티리얼 검증은 스크립터블 렌더 파이프라인(SRP)를 사용하지 않는 경우에만 사용 가능합니다. SRP를 비활성화하려면 Edit > Project Settings 로 이동하여 Graphics 카테고리를 선택한 다음 Scriptable Render Pipeline SettingsNone 으로 설정합니다.

메탈릭 값

머티리얼의 메탈릭 값은 표면에 반사되는 환경의 정도를 정의하고 표면에 표시되는 알베도 컬러의 정도를 결정합니다. 표면이 순수한 금속이면 표면 컬러(알베도)가 환경 반사의 컬러를 결정합니다. 금속 머티리얼로 작업할 때는 다음 사항을 고려하십시오.

  • 순수 금속 광택 머티리얼은 산란광을 반사하지 않습니다. 전체 방을 금속으로만 만들면 방이 매우 어둡고 스페큘러 하이라이트 및 반사만 볼 수 있습니다.
전체가 포인트 라이트로 덮인 매끄러운 금속 방이 얼마나 어두운지 확인할 수 있는 예
전체가 포인트 라이트로 덮인 매끄러운 금속 방이 얼마나 어두운지 확인할 수 있는 예
  • 때로는 표면에 메탈릭을 적용해야 할지 판단하기가 어려울 수 있습니다. 게임 오브젝트의 코어 머티리얼을 고려하지 말고 최종 표면을 기준으로 생각하십시오. 예를 들어 파란색으로 칠한 금속 레일은 칠이 적용되지 않은 부분만 금속으로 지정해야 합니다.
색을 칠한 금속 레일에 텍스처를 입히는 방법의 예
색을 칠한 금속 레일에 텍스처를 입히는 방법의 예

참고: 페인트가 칠해진 금속 막대에서 칠이 벗겨진 부분은 메탈릭이 적용되지만, 표면의 녹슨 부분은 금속이 아닙니다.

  • 머티리얼의 금속 값은 0또는 1이면 된다고 생각하기 쉽지만, 표면 머티리얼이 혼합된, 즉 블렌드된 머티리얼인 경우가 있습니다. 예를 들어 일부분이 녹이나 먼지로 덮인 금속 게임 오브젝트의 금속 값은 블렌딩으로 인해 0과 1 사이입니다. 이런 경우를 제외하고 사실적인 머티리얼을 만들려면 0과 1 사이의 금속 값을 사용하지 않는 것이 좋습니다.

금속에 대한 자세한 내용은 메탈릭 모드: 메탈릭 파라미터를 참조하십시오.

평활도 값

평활도에 따라 표면의 마이크로서피스 디테일이 결정됩니다. 값이 0이면 매우 거칠고 무딘 표면이 생성되고 값이 1이면 거울 같은 반사 표면이 생성됩니다. 대부분의 경우 간단하고 직관적이지만, 다음 사항을 고려하면 도움이 됩니다.

  • 게임 오브젝트의 최종 표면 품질에 초점을 맞추십시오. 예를 들어 콘크리트로 만든 오브젝트는 표면이 거칠거나 위에 광택 페인트가 칠해져 있을 수 있습니다. 칠하지 않은 나무의 평활도 값은 나무에 광택을 냈는지 여부에 따라 다릅니다.

  • 흠, 먼지, 스크래치, 물 얼룩 같은 요소도 고려하십시오. 현실에서 머티리얼의 표면은 다양한 변수의 영향을 받습니다. 머티리얼이 순수한 단일 표면을 가진 경우는 드뭅니다.

  • 머티리얼의 특성을 파악하려면 표면 간에 요소들이 혼합되는 방식을 고려하십시오. 예를 들어, 흙에 고인 물에는 대개 고리 형태의 흡수된 물 자국이 있는데, 이 경우에는 직접 평활도 혼합이 아니라 어두운 알베도 값을 가집니다.

흡수된 물 자국 전환 시 어두운 평활도 및 알베도 예 ​ 평활도에 대한 자세한 내용은 평활도를 참조하십시오.

노멀 맵

일반적으로, 노멀 맵은 광원의 방향이 다른 방향에서 들어오는 것처럼 폴리곤의 표면 노멀을 휘게 하는 탄젠트 공간 노멀 맵을 뜻합니다. 노멀 맵은 일반적으로 단순해 보이는 메시에 여러 디테일을 추가하는 데 사용됩니다.

노멀 맵을 사용하여 머티리얼을 정의할 수도 있습니다. 예를 들어 광택도가 높은 빨간색으로 마감한 나무 조각의 원래 표면 머티리얼을 표시할 수 있습니다.

노멀 맵에 대한 자세한 내용은 노멀 맵(범프 매핑) 문서를 참조하십시오.

오클루전 맵

오클루전 맵은 주변광 감소를 모방하고, 표면이 오목한 정도와 그 형태가 더 분명하게 인식되도록 할 수 있습니다.

주변광을 가리는 데 유용한 미리 베이크된 앰비언트 오클루전
주변광을 가리는 데 유용한 미리 베이크된 앰비언트 오클루전

오클루전 맵을 사용하면 다음과 같은 이점이 있습니다.

  • 특히 디테일 수준이 더 높은 모델에서 데이터를 가져오는 경우(노멀 맵을 디테일 수준이 높은 모델에서 낮은 모델에 베이크하는 경우와 비슷함) 오프라인 렌더링 중에 품질이 훨씬 더 높으며 상세한 오클루전 맵 버전을 얻을 수 있습니다.

  • 오클루전 맵은 동적 조명을 받는 게임 오브젝트에 매우 유용합니다. 동적 게임 오브젝트는 광원 베이킹에서 오클루전을 가져오지 않고 라이트 프로브 또는 주변광과 디테일 수준이 낮은 스크린 공간 앰비언트 오클루전(SSAO)만 받기 때문입니다.

오클루전 맵에 대한 자세한 내용은 오클루전 맵을 참조하십시오.

레퍼런스 사진, 컬러 차트 및 사진 소스

디지털 콘텐츠를 제작하는 일반적인 원리를 익히면 더 나은 결과물을 만들 수 있습니다. 레퍼런스 또는 텍스처 소스로 사용하기 위해 실제 표면의 사진을 찍으면 때에 따라 3D 모델링 애플리케이션에서 표면 머티리얼을 더욱 빠르게 제작할 수 있습니다.

레퍼런스를 캡처하려면 특정 피사체의 사진을 많이 찍기만 하면 됩니다. 이미지 검색 엔진을 사용하여 특정 레퍼런스 이미지를 검색하는 것과 비슷합니다.

텍스처 소스로 사용할 사진을 찍는 경우 항상 색조를 중화하고 표면의 광원 밝기 효과를 억제하십시오. 화이트 밸런싱과 18% 그레이 카드(Kodak R–27 카드 등)에 해당하는 적절한 노출을 사용하십시오. 예:

18% 그레이 카드는 텍스처 소스용 사진을 촬영할 때 믿을 수 있는 참조 값입니다. 18% 그레이 카드를 직접 인쇄하지 마십시오. 색상이 정확하게 표현되지 않아 컬러 밸런스가 맞지 않을 가능성이 큽니다. 적합한 18% 그레이 카드는 RGB(124,124,124) 또는 sRGB 색 공간의 #7C7C7C에 해당합니다. 카메라는 이 그레이 카드를 사용하여 광원 밝기가 상쇄된 적절한 노출값을 얻고, 화이트밸런스 작업(광원 컬러 캐스트 효과 제거)을 수행합니다.

그레이 카드에 대한 자세한 내용은 중간 회색(Wikipedia)을 참조하십시오.

가장 좋은 결과를 얻으려면 디지털 SLR/전문가용 카메라를 사용하는 것이 좋습니다. 하지만 위와 같은 방법을 사용하기만 해도 수동 노출 제어 및 RAW 기능이 있는 스마트폰 카메라 등 모든 카메라로 좋은 결과를 얻을 수 있습니다.

수동 노출 및 RAW 캡처를 사용하기 위한 스마트폰 설정 예
수동 노출 및 RAW 캡처를 사용하기 위한 스마트폰 설정 예

편광과 렌즈를 사용한 X-Rite ColorChecker로 프로파일링된 RAW 이미지를 사용하면 알베도 텍스처가 더 정확하게 캡처됩니다.

ColorChecker 차트 예
ColorChecker 차트 예

ColorChecker는 R–27 그레이 카드처럼 앵커로 사용 가능한 신뢰할 수 있는 컬러 레퍼런스입니다. 카메라 센서 + 렌즈 + 필터 + 조명 조건 특성 프로파일을 생성하여 RAW 이미지를 보정하는 데 사용할 수 있습니다.

텍스처 소스를 캡처하는 경우 흐린 날이나 빛이 고르게 비춰지는 그늘 같은 산란광이 있는 환경을 선택하십시오.

캡처된 이미지를 처리할 때 더 순수한 알베도 텍스처를 얻기 위해 Unity의 De-lighting 툴을 사용하여 추가 프로세싱을 적용할 수 있습니다.


  • 2018–03–21 페이지 게시됨
  • 실제 같은 시각 요소 만들기 베스트 프랙티스 가이드가 Unity 2017.3에 추가됨
사실적인 비주얼: 모델
사실적인 비주얼: 야외 조명