AxF 셰이더
AxF 셰이더로 고해상도 렌더 파이프라인(HDRP)의 X-Rite AxF 머티리얼을 렌더링할 수 있습니다. AxF는 머티리얼 형상 데이터를 교환할 수 있게 해주는 표준화된 포맷입니다. AxF 파일 생성은 일반적으로 다양한 텍스처와 모델 프로퍼티를 생성할 수 있는 실제 머티리얼 측정이 포함된 저작 모음입니다.
AxF 파일 데이터를 HDRP의 AxF 셰이더가 이해하고 렌더링할 수 있는 데이터와 머티리얼 프로퍼티로 변환하기 위해 Unity는 AxF Importer 패키지를 사용합니다. 이 임포터를 사용할 필요는 없으며 대신 인스펙터를 사용하여 값을 직접 할당할 수 있습니다. 하지만 AxF 셰이더는 AxF 파일에서 AxF 임포터가 변환하는 데이터와 작동하도록 구체적으로 설계되었습니다. 현재 Unity는 AxF 머티리얼이 나타내는 실제 머티리얼을 정확히 묘사하기 위해 의존하는 특정 에셋을 저작하는 메서드를 제공하지 않습니다. 즉 AxF 머티리얼을 수동으로 생성하려면 임포트된 AxF 파일에서 사용할 수 있는 특정 결과를 재현하지 못할 수도 있다는 의미입니다.
머티리얼 임포트 및 생성
Unity에서 AxF 머티리얼을 처음부터 생성할 수는 있지만 대신 AxF 파일을 만들어서 Unity로 그 결과를 임포트하려면 X-Rite의 Total Appearance Capture (TAC™)와 같은 외부 저작 툴을 사용해야 합니다. AxF 임포터 패키지를 설치하는 경우 Unity가 자동으로 AxF 파일을 AxF 머티리얼로 임포트합니다.
AxF 임포터는 제품 수명 주기를 위한 Unity 엔터프라이즈에서 사용 가능합니다. AxF 임포터 패키지를 다운로드할 때 패키지 매니저를 사용하여 로컬에 설치합니다. 로컬 패키지 설치 방법에 대한 자세한 내용은 로컬 패키지 설치를 참조하십시오.
AxF 임포터 패키지 사용
AxF 파일을 임포트할 때 해당 프로퍼티는 수정할 수 없습니다. AxF 머티리얼을 편집하고자 하고 AxF 임포터 패키지가 설치되어 있는 경우 임포트된 AxF 머티리얼의 편집 가능한 사본을 만들 수 있습니다. 사본을 만들려면 다음 단계를 따르십시오.
- Unity 프로젝트에서 AxF 파일을 선택하고 인스펙터에서 확인합니다.
- Imported Object 헤더 영역에서 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴에서 Create AxF Material From This를 선택합니다.
이 프로세스는 원본 AxF 파일이 사용하는 텍스처와 다른 리소스를 복제하지 않습니다. 대신 중복된 머티리얼은 원본 파일의 텍스처와 리소스를 참조하지만 해당 인스펙터의 모든 값을 편집할 수 있습니다.
참고: 새로운 텍스처를 수동으로 참조하는 경우 교체하는 텍스처와 동일한 인코딩을 사용해야 합니다. 그렇지 않으면 일관적이지 않은 입력 값으로 인해 예측할 수 없거나 결함이 있는 렌더링이 발생합니다.
AxF 머티리얼 완전히 새로 만들기
HDRP에서 새로운 머티리얼은 기본적으로 릿 셰이더를 사용합니다. AxF 머티리얼을 완전히 새로 만들려면 머티리얼을 생성한 다음 AxF 셰이더를 사용할 수 있도록 만들어야 합니다. 이렇게 하려면 다음 단계를 따르십시오.
- Unity 에디터에서 프로젝트의 Asset 창으로 이동합니다.
- Asset 창을 오른쪽 클릭한 후 Create > Material을 선택합니다. 그러면 Unity 프로젝트의 Asset 폴더에 새 머티리얼이 추가됩니다.
- 머티리얼 인스펙터 상단의 Shader 드롭다운을 클릭하여 HDRP > AxF를 선택합니다.
임포트된 AxF 머티리얼에서 새로 만든 AxF 머티리얼로 AxF 머티리얼 프로퍼티를 복사할 수 있습니다. 이렇게 하려면 다음 단계를 따르십시오.
- Unity 프로젝트에서 AxF 파일을 선택하고 인스펙터에서 확인합니다.
- 헤더 영역에서 Shader 드롭다운을 오른쪽 클릭하여 컨텍스트 메뉴에서 Copy AxF Material Properties를 선택합니다.
- 새로운 AxF 머티리얼을 선택하여 인스펙터에서 확인합니다.
- 헤더 영역에서 Shader 드롭다운을 오른쪽 클릭하여 컨텍스트 메뉴에서 Paste AxF Material Properties를 선택합니다.
프로퍼티
표면 옵션
Surface Options는 머티리얼 표면의 전반적인 모습과 Unity가 화면에 머티리얼을 렌더링하는 방식을 제어합니다.
참고: AxF 임포터는 모든 텍스처를 하프 플로트, 리니어, sRGB 영역으로 임포트합니다(색을 나타내는 경우).
프로퍼티 | 설명 |
---|---|
Surface Type | 드롭다운을 사용하여 머티리얼이 투명도를 지원하는지 여부를 정의합니다. Transparent Surface Type이 있는 머티리얼은 Opaque Surface Type이 있는 머티리얼보다 더 리소스를 많이 소모합니다. HDRP는 선택한 Surface Type에 따라 더 많은 프로퍼티를 노출합니다. 해당 기능과 각 Surface Type이 노출하는 프로퍼티 리스트에 대한 자세한 내용은 표면 타입 문서를 참조하십시오. |
- Rendering Pass | 드롭다운을 사용하여 HDRP가 이 머티리얼을 처리하는 렌더링 패스를 설정합니다. 이 프로퍼티에 대한 자세한 내용은 표면 타입 문서를 참조하십시오. |
Double-Sided | HDRP가 지오메트리에 있는 폴리곤의 두 면을 렌더링하도록 하려면 이 체크박스를 활성화합니다. 이 기능과 이 기능이 노출하는 프로퍼티 리스트에 대한 자세한 내용은 양면 문서를 참조하십시오. |
Receive Decals | HDRP가 이 머티리얼 표면의 데칼을 드로우하도록 허용하려면 이 체크박스를 활성화합니다. |
Receive SSR (Transparent) | HDRP가 스크린 공간 반사 패스를 처리할 때 이 머티리얼을 포함하도록 하려면 이 체크박스를 활성화합니다. 투명 표면 타입에 대한 별도 옵션이 있습니다. |
메인 매핑 설정
프로퍼티 | 설명 |
---|---|
Mapping Mode | 모든 텍스처에 대해 머티리얼의 텍스처 매핑 모드를 제어합니다. • UV0..UV3: 릿에서처럼 UV0에서 UV3 버텍스 속성까지 UV 세트를 사용합니다. UV1은 Unity의 베이크된 라이트맵에 사용되므로 이 세트 사용은 권장하지 않습니다. • PlanarXY,YZ,ZX: 지정된 평면을 따라 평면 매핑을 사용합니다. • Triplanar: 삼평면 매핑을 사용합니다. • Planar Space: 평면이나 삼평면 매핑 모드를 선택하면 사용된 좌표가 월드 공간인지 오브젝트 공간인지를 각각 "world" 또는 "local"로 설정된 "planar space" 옵션을 사용하여 선택할 수 있습니다. |
Main Tiling & Offset | Surface Inputs 섹션의 모든 텍스처에 타일링 속도(xy)와 오프셋(zw)을 설정합니다. HDRP는 이러한 값을 사용하여 머티리얼 표면의 xy축을 따라 오브젝트의 탄젠트 공간에 텍스처를 타일링합니다. 각 텍스처 프로퍼티는 또한 이러한 메인 값 위에 적용되는 오프셋 값과 추가 타일링을 지정할 수 있습니다(텍스처 프로퍼티별 타일링 속도는 곱해지고 오프셋은 여기에 설정된 메인 값에 더해짐). 이러한 추가 타일링과 오프셋은 같은 행의 각 텍스처 프로퍼티 옆에 나타납니다. |
고급 표면 입력
프로퍼티 | 설명 |
---|---|
BRDF Type | 메인 AxF 머티리얼 표현을 제어합니다. • SVBRDF: 이 옵션을 선택하면 Unity에 표시되는 프로퍼티에 대한 자세한 내용은 BRDF 타입 - SVBRDF을 참조하십시오. •CAR_PAINT: 이 옵션을 선택하면 Unity에 표시되는 프로퍼티에 대한 자세한 내용은 BRDF 타입 - CAR_PAINT을 참조하십시오. |
BRDF 타입 - SVBRDF
프로퍼티 | 설명 |
---|---|
Diffuse Type | SVBRDF BRDF Type 표현은 다음의 두 난반사 모델을 지원합니다. • LAMBERT: 반사율이 모든 뷰 방향에서 일정한 간단한 디퓨즈 모델입니다. 이 모델은 단일 알베도 컬러 프로퍼티를 사용합니다. • OREN_NAYAR: 이 난반사 모델은 거친 디퓨즈 표면을 잘 나타냅니다. 이 모델은 거칠기 프로퍼티와 알베도 컬러 프로퍼티를 사용합니다. |
Specular Type | SVBRDF BRDF Type은 다음과 같은 여러 정반사 모델을 지원합니다. • WARD: 미세 표면 방향의 가우스 분포로 표면을 미세하게 묘사하는 미세 표면 파생 모델입니다. 이 옵션에는 여러 배리언트와 설정 가능한 프레넬 효과가 있습니다. 이러한 프로퍼티에 대한 자세한 내용은 Ward Variants와 Fresnel Variant를 각각 참조하십시오. • BLINN_PHONG: 기존의 Blinn-Phong 경험적 반사율 모델의 이방성 버전입니다. 스페큘러 감쇠는 뷰와 광원 방향(가우스 대신) 사이의 중앙값 각도의 코사인에 비례합니다. 이 옵션에는 여러 배리언트가 있지만 프레넬 효과는 포함하지 않습니다. 해당 배리언트에 대한 자세한 내용은 Blinn Variant를 참조하십시오. • COOK_TORRANCE: WARD와 반대되는 미세 표면 파생 모델입니다. 이 모델은 등방성이며 미세 표면 분포는 가우스 분포입니다. • GGX: HDRP의 릿 머티리얼과 마찬가지로 가우스나 코사인 모델보다 더 넓은 영역에서 더 느리게 감소하는 하이라이트를 생성하는 느린 스페큘러 감쇠를 가진 모델입니다. |
Fresnel Variant | WARD Specular Type을 사용하여 HDRP가 머티리얼에 대해 다음과 같이 프레넬 효과를 계산하는 방법을 지정할 수 있습니다. • NO_FRESNEL: 머티리얼에서 프레넬 효과를 제거합니다. • FRESNEL: 정확한 방정식을 사용하여 프레넬 효과를 계산합니다. • SCHLICK: 근사치를 사용하여 프레넬 효과를 계산합니다. 이렇게 하면 FRESNEL 옵션보다 계산하는 데 리소스를 더 적게 소모합니다. 이 프로퍼티는 Specular Type을 WARD로 설정한 경우에만 표시됩니다. |
Ward Variant | WARD Specular Type은 주로 정규화 용어로의 변경 사항을 기반으로 다음의 여러 서브 배리언트를 지원합니다. • WARD: Ward 그 외, 1992, 논문 원본 기반 • DUER: Duer 그 외, 2004, 논문 수정 사항 기반 • GEISLERMORODER: Geisler와 Moroder, 2010, 수정 사항 기반. 주로 Radiance 예측 렌더링 소프트웨어용으로 개발되어 이 모델은 Ward의 가장 진보된 형태이며 지표각에서 특히 더욱 사실적입니다. 이 프로퍼티는 Specular Type을 WARD로 설정한 경우에만 표시됩니다. |
Blinn Variant | BLINN Specular Type은 다음과 같이 여러 배리언트를 지원합니다. • BLINN: 이 배리언트는 기존 Blinn-Phong 모델이며 이방성이 영향을 미치지 않습니다. • ASHIKHMIN_SHIRLEY: Ashikhmin과 Shirley를 기반으로 하는 이 모델의 이방성 버전입니다. 이 프로퍼티는 Specular Type을 BLINN_PHONG으로 설정하는 경우에만 표시됩니다. |
Diffuse Color | 머티리얼 컬러를 제어하는 RGB 텍스처를 지정합니다. 텍스처를 이 필드에 할당하려면 라디오 버튼을 클릭하고 Select Texture 창에서 해당 텍스처를 선택합니다. |
Specular Color | 머티리얼의 정반사 컬러에 대한 멀티플라이어로서 역할을 하는 RGB 텍스처를 지정합니다. 참고: 이 프로퍼티는 보통의 PBR 워크플로에서 흔히 "스페큘러 컬러"(일명 "F0", 표면에 수직 방향으로 프레넬 반사율)라고 부르는 것을 나타내지 않습니다. 즉 스페큘러 컬러 머티리얼 타입이 나타내는 것과 동일한 것을 나타내지 않습니다. 대신 이 프로퍼티는 HDRP가 스페큘러 BRDF 평가 결과와 곱하는 컬러 틴트를 나타냅니다. |
Specular Lobe | 머티리얼 표면의 거칠기를 인코딩하는 텍스처를 지정합니다. 선택하는 Specular Type에 따라 HDRP는 다음과 같이 다른 컬러 채널을 사용합니다. • Isotropic specular models: HDRP는 빨강 컬러 채널을 사용합니다. • Anisotropic specular models: HDRP는 빨강과 초록 컬러 채널을 사용합니다. HDRP는 텍스처의 값을 0과 1 사이로 해석합니다. 릿 셰이더의 GGX와 비교하는 경우 비교 가능한 AxF 거칠기(Specular Model이 GGX로 설정된 경우)는 다음과 같습니다. axf_roughness = (1 - hdrp_lit_user_smoothness)^2 |
Specular Lobe Scale | Specular Lobe 거칠기 값에 대한 멀티플라이어입니다. 낮은 값은 머티리얼이 더 부드럽고 이방성이 더 적습니다. 참고: AxF 파일에는 이 값이 포함되지 않습니다. 따라서 머티리얼을 AxF 파일에서 의도한 형상과 일치하도록 하려면 이 값을 1로 설정해야 합니다. |
Fresnel | 노멀의 0에 표면의 스페큘러 모델 반사율을 정의하는 텍스처(빨강 채널만 해당)를 지정합니다. |
Normal | 탄젠트 공간에 노멀 맵을 정의하는 RGB 텍스처를 지정합니다. HDRP는 이 텍스처의 빨강, 초록, 파랑 채널의 값을 세 가지 컴포넌트 정규화된 벡터 값으로 사용합니다. 이것은 해당 벡터의 두 가지 컴포넌트만 설명하는 일반 RG 또는 AG의 대신입니다. |
Alpha | 머티리얼 표면의 투명도를 설명하는 텍스처(빨강 채널만 해당)를 지정합니다. 해당 머티리얼은 이 텍스처의 빨강 채널을 투명도 값으로 사용합니다. |
Is Anisotropic | 머티리얼이 이방성을 지원하는 점을 나타냅니다. |
- Anisotropy Angle | 탄젠트 프레임 회전 맵을 정의하는 텍스처(빨강 채널만 해당)를 지정합니다. 이 맵은 HDRP가 이방성 거칠기 프로퍼티를 정렬하는 탄젠트 프레임의 x축과 y축 방향을 결정합니다. HDRP는 원래의 범위(0부터 1)에서 -pi / 2와 pi / 2 사이로 빨강 컬러 채널을 매핑합니다. 참고: HDRP는 보간된 버텍스 탄젠트로 x축에 대한 원래의 탄젠트 프레임을 결정하고 z축에 대해서는 보간된 버텍스 노멀로 결정하며 이 둘은 모두 메시 지오메트리에서 가져옵니다. |
Enable Clearcoat | 머티리얼 표면에 클리어 코트 존재 여부를 나타냅니다. |
- Clearcoat Color | 코트를 통해 들어오고 나가는 광원을 조정하는 RGB 텍스처를 지정합니다. 이는 클리어 코트에 대한 틴트 역할을 합니다. |
- Clearcoat Normal | 탄젠트 공간에서 코트에 대해 노멀 맵을 정의하는 RGB 텍스처를 지정합니다. HDRP는 이 텍스처의 빨강, 초록, 파랑 채널의 값을 세 가지 컴포넌트 정규화된 벡터 값으로 사용합니다. 이것은 해당 벡터의 두 가지 컴포넌트만 설명하는 일반 RG 또는 AG의 대신입니다. |
- Enable Refraction | 클리어 코트의 굴절 여부를 나타냅니다. 이 체크박스를 활성화하는 경우 HDRP는 클리어 코트로 굴절된 각도를 사용하여 머티리얼 표면의 언더코트를 평가합니다. |
- - Clearcoat IOR | 단색(단일 값) F0(일명 스페큘러 컬러 또는 0도 입사에서 프레넬 반사율이라고도 함, 또한 코트가 공기와 접촉한다고 가정)에 인코딩하여 클리어 코트에 대한 굴절 인덱스(IOR)를 정의하는 텍스처(빨강 채널만 해당)를 지정합니다. 따라서 값의 범위는 0에서 1이며 HDRP는 최종 IOR을 다음 식으로 계산합니다.IOR = (1.0 + squareRoot(R) ) / (1.0 - squareRoot(R)) 여기서 R은 이 텍스처의 빨강 컬러 채널의 정규화된 값입니다. 참고: HDRP는 이 IOR을 코트 굴절과 활성화된 경우 코트를 통한 투과와 코트 반사율 계산에 사용합니다. 그러므로 클리어 코트를 활성화할 때 항상 텍스처를 이 프로퍼티에 할당해야 합니다. |
BRDF 타입 - CAR_PAINT
프로퍼티 | 설명 |
---|---|
BRDF Color | 무지갯빛 페인트 컬러를 모델링하는 것과 유사하게 자동차 페인트 틴트의 각도 종속 배리에이션을 캡처하는 RGB 텍스처를 지정합니다. 각 UV축은 다음을 나타냅니다. u축은 중앙값 벡터(뷰 방향과 광원 방향 사이의 중간 벡터)와 표면 노멀 사이의 각도에 따른 배리에이션을 나타냅니다. v축은 뷰 또는 광원과 이 중앙값(일명 “차이” 각도) 사이의 각도를 나타냅니다. 해당 프로퍼티 공간은 U가 1(최대 범위)과 같고 각도가 pi / 2에 해당하는 왼쪽 상단에서 시작합니다. |
BRDF Color Scale | BRDF Color 컬러 값에 대한 멀티플라이어입니다. 참고: AxF 파일에는 이 값이 포함되어 있지 않습니다. 따라서 머티리얼을 AxF 파일에서 의도한 형상과 일치하도록 하려면 이 값을 1로 설정해야 합니다. |
BRDF Color Table Diagonal Clamping | Unity가 BRDF Color 맵에 액세스를 고정해야 하는지 여부를 나타냅니다. 일부 BRDF Color 표에는 중앙 대각선 영역 아래에 0(전부 검정) 아래쪽 절반이 있습니다. 보통 올바르게 측정된 머티리얼에서 굴절 인덱스(IOR) 맵과 굴절 옵션의 조합은 셰이더가 0 값에 액세스하지 못하게 합니다. Unity AxF 임포터는 HDRP가 셰이더가 0 영역에 액세스하지 못하도록 하기 위해 사용하는 값(아래 제한 참조)을 채워넣습니다. 이렇게 하려면 HDRP는 텍스처의 검정색이 아닌 영역에서 각도 도메인을 선형적으로 다시 매핑합니다. |
- BRDF Color Map UV Scale Restriction | HDRP가 BRDF Color 표를 고정할 때 적용하는 제한 스케일을 지정합니다. 더 낮은 값을 사용하는 경우 셰이더가 더 높은 각도 영역(pi / 2에 근접)에 도달하지 못하게 합니다. 이러한 값을 둘 다 1로 설정하는 경우 이는 대각선 고정 기능을 비활성화하는 것과 같습니다. |
BTF Flake Color Texture2DArray | 플레이크에 대해 측정된 각도 슬라이스 데이터를 지정합니다. 이 슬라이스 세트는 일종의 양방향 텍스처 함수(BTF)입니다. 이 프로퍼티를 수동으로 할당하면 안 됩니다. 대신 AxF 임포터가 이 프로퍼티를 할당하도록 허용합니다. |
BTF Flake Scale | 플레이크 반사율 집약도에 대한 멀티플라이어입니다. 참고: AxF 파일에는 이 값이 포함되어 있지 않습니다. 따라서 머티리얼을 AxF 파일에서 의도한 형상과 일치하도록 하려면 이 값을 1로 설정해야 합니다. |
Flakes Tiling | 플레이크 텍스처 슬라이스에 특정 타일링을 적용하는 멀티플라이어입니다. |
ThetaFI Slice LUT | 각도 범위를 슬라이스로 전환하는 look-up 표를 지정합니다. 이 프로퍼티를 수동으로 할당하면 안 됩니다. 대신 AxF 임포터가 이 프로퍼티를 할당하도록 허용합니다. |
Diffuse coeff | 디퓨즈 로브 계수입니다. CAR_PAINT AxF 모델은 하이브리드 멀티 로브 모델을 사용합니다. 이 모델의 요약은 다음과 같습니다.BRDFColor * (Lambert + Cook-Torrance) + Flakes BTF 이것은 해당 모델의 람베르트 난반사 부분에 대한 디퓨즈 알베도를 제어합니다. |
CT Lobes F0s | 각 Cook-Torrance 로브에 대한 입사각 0도에서의 프레넬 반사율입니다. |
CT Lobes coeff | Cook-Torrance 로브 스페큘러 리스폰스에 대한 반사율 멀티플라이어 계수입니다. |
CT Lobes spreads | Cook-Torrance 로브의 거칠기입니다. |
Enable Clearcoat | 머티리얼 표면에 클리어 코트 존재 여부를 나타냅니다. |
- Clearcoat Normal | 탄젠트 공간에서 코트에 대해 노멀 맵을 정의하는 RGB 텍스처를 지정합니다. HDRP는 이 텍스처의 빨강, 초록, 파랑 채널의 값을 세 가지 컴포넌트 정규화된 벡터 값으로 사용합니다. 이것은 해당 벡터의 두 가지 컴포넌트만 설명하는 일반 RG 또는 AG의 대신입니다 |
- Clearcoat IOR | 클리어 코트에 대한 IOR을 제어합니다. 이는 SVBRDF와는 달리 텍스처가 아닌 단일 스칼라 값입니다. 참고: HDRP는 이 IOR을 코트 굴절과 활성화된 경우 코트를 통한 투과와 코트 반사율 계산에 사용합니다. |
- Enable Refraction | 클리어 코트의 굴절 여부를 나타냅니다. 이 체크박스를 활성화하는 경우 HDRP는 클리어 코트로 굴절된 각도를 사용하여 머티리얼 표면의 언더코트를 평가합니다. |
고급 옵션
프로퍼티 | 설명 |
---|---|
Enable GPU instancing | 이 체크박스를 활성화하면 HDRP가 가능한 경우 동일한 지오메트리 및 머티리얼이 포함된 메시를 한 번에 렌더링하도록 지시합니다. 그러면 렌더링 속도가 더 빨라집니다. 다른 머티리얼이 있거나 하드웨어가 GPU 인스턴싱을 지원하지 않으면 HDRP가 한 번에 메시를 렌더링할 수 없습니다. 예를 들어 오브젝트 피벗에 기반한 애니메이션이 있는 게임 오브젝트를 정적으로 배칭할 수 없지만 GPU가 인스턴스화할 수 있습니다. |
Add Precomputed Velocity | 이 체크박스를 활성화하면 Alembic 파일에 저장되어 있는 미리 계산된 속도 정보를 사용합니다. |