Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
표준 재료 3D 및 ORM 재료 3D
소개
StandardMaterial3D 및 ``ORMMaterial3D``(폐색, 거칠기, 금속성)는 셰이더 코드를 작성할 필요 없이 아티스트가 재료에서 찾는 대부분의 기능을 제공하는 것을 목표로 하는 기본 3D 재료입니다. 그러나 추가 기능이 필요한 경우 셰이더 코드로 변환할 수 있습니다.
이 튜토리얼에서는 두 재질에 존재하는 매개변수를 설명합니다.
이러한 재료를 개체에 추가하는 방법에는 4가지가 있습니다. 메쉬의 Material 속성에 재질을 추가할 수 있습니다. 메쉬(예: MeshInstance3D 노드)를 사용하는 노드의 Material 속성, 메쉬를 사용하는 노드의 Material Override 속성 및 *Material Overlay*에 추가할 수 있습니다.
메시 자체에 머티리얼을 추가하면 해당 메시가 사용될 때마다 해당 머티리얼을 갖게 됩니다. 메쉬를 사용하여 노드에 재료를 추가하면 해당 재료는 해당 노드에서만 사용되며 메쉬의 재료 속성도 재정의됩니다. 노드의 Material Override 속성에 재질이 추가되면 해당 노드에서만 사용됩니다. 또한 노드의 일반 재질 속성과 메시의 재질 속성을 재정의합니다.
Material Overlay 속성은 메시에서 사용 중인 현재 재질 위에 재질을 렌더링합니다. 예를 들어 메시에 투명한 쉴드 효과를 적용하는 데 사용할 수 있습니다.
BaseMaterial 3D 설정
StandardMaterial3D에는 재질의 모양을 결정하는 다양한 설정이 있습니다. 이들 모두는 BaseMaterial3D 카테고리에 속합니다.
ORM 재료는 한 가지 차이점을 제외하면 거의 동일합니다. 폐색, 거칠기 및 금속성에 대한 별도의 설정 및 텍스처 대신 단일 ORM 텍스처가 있습니다. 해당 텍스처의 다양한 색상 채널이 각 매개변수에 사용됩니다. Substance Painter 및 Armor Paint와 같은 프로그램은 이 형식으로 내보낼 수 있는 옵션을 제공합니다. 이 두 프로그램의 경우 ORM 텍스처도 사용하는 언리얼 엔진용 내보내기 사전 설정이 포함되어 있습니다.
투명
기본적으로 Godot의 재질은 불투명합니다. 이는 렌더링 속도는 빠르지만 Albedo > Texture 속성에서 투명 텍스처를 사용하거나 **Albedo > Color**를 투명 색상으로 설정하더라도 재질이 보이지 않음을 의미합니다.
재질을 투시하려면 재질을 *투명*하게 만들어야 합니다. Godot는 여러 투명 모드를 제공합니다:
비활성화됨: 재질이 불투명합니다. 모든 렌더링 기능이 지원되므로 렌더링 속도가 가장 빠릅니다.
알파: 재질이 투명합니다. 반투명 영역은 블렌딩으로 그려집니다. 이는 렌더링 속도가 느리지만 부분적인 투명도(반투명도라고도 함)를 허용합니다. 알파 블렌딩을 사용하는 머티리얼은 그림자를 투사할 수 없으며 화면 공간 반사에 표시되지 않습니다.
**알파**는 입자 효과 및 VFX에 적합합니다.
알파 가위: 재질이 투명합니다. 불투명도가 Alpha Scissor Threshold 미만인 반투명 영역은 그려지지 않습니다. 이 불투명도를 초과하면 불투명하게 그려집니다. 이는 Alpha보다 렌더링 속도가 빠르며 투명도 정렬 문제가 나타나지 않습니다. 단점은 이로 인해 중간 값이 가능하지 않고 "전부 아니면 전무"의 투명성이 발생한다는 것입니다. 알파 가위를 사용하는 재질은 그림자를 투사할 수 있습니다.
**알파 가위**는 가장자리가 단단하고 보기 좋게 정렬해야 하기 때문에 나뭇잎과 울타리에 이상적입니다.
알파 해시: 재료가 투명합니다. 반투명 영역은 디더링을 사용하여 그려집니다. 이것도 "전부 아니면 전무" 투명도이지만 디더링은 뷰포트 해상도에 따라 제한된 정밀도로 부분적으로 불투명한 영역을 나타내는 데 도움이 됩니다. 알파 해시를 사용하는 머티리얼은 그림자를 드리울 수 있습니다.
**알파 해시**는 사실적인 머리카락에 적합하지만 스타일화된 머리카락은 알파 가위를 사용하면 더 잘 작동할 수 있습니다.
깊이 프리 패스: 먼저 불투명 파이프라인을 통해 개체의 완전 불투명 픽셀을 렌더링한 다음 알파 블렌딩을 사용하여 나머지를 렌더링합니다. 이를 통해 투명도 정렬이 대체로 정확할 수 있습니다(완전히는 아니지만 부분적으로 투명한 영역에서는 여전히 잘못된 정렬이 나타날 수 있으므로). 깊이 프리패스를 사용하는 머티리얼은 그림자를 드리울 수 있습니다.
참고
Godot는 다음 조건 중 하나라도 충족되면 자동으로 재료를 알파 블렌딩으로 투명하게 만듭니다:
알파 블렌딩(왼쪽)과 알파 가위(오른쪽) 투명도 비교:
경고
알파 혼합 투명도에는 여러 가지 :ref:`limitations <doc_3d_rendering_limitations_transparency_sorting>`이 있습니다.
알파 블렌드된 재질은 특히 겹치는 경우 렌더링 속도가 상당히 느려집니다.
알파 블렌드 재질은 투명한 표면이 서로 겹칠 때 정렬 문제를 나타낼 수 있습니다. 이는 표면이 잘못된 순서로 렌더링되어 뒤쪽의 표면이 실제로 카메라에 더 가까운 표면보다 앞에 있는 것처럼 보일 수 있음을 의미합니다.
알파 혼합 재질은 그림자를 받을 수는 있지만 그림자를 투사하지 않습니다.
알파 혼합 재질은 반사(반사 프로브 제외)에는 나타나지 않습니다.
화면 공간 반사와 선명한 SDFGI 반사는 알파 블렌드 재질에 나타나지 않습니다. SDFGI가 활성화되면 재질 거칠기에 관계없이 거친 반사가 대체 수단으로 사용됩니다.
알파 투명 모드를 사용하기 전에 항상 다른 투명 모드가 귀하의 요구에 더 적합한지 고려하십시오.
알파 안티앨리어싱
참고
이 속성은 투명도 모드가 알파 가위 또는 **알파 해시**인 경우에만 표시됩니다.
알파 가위 및 알파 해시 재질은 알파 혼합 재질보다 렌더링 속도가 빠르지만 불투명 영역과 투명 영역 사이에 딱딱한 가장자리가 나타납니다. FXAA 및 TAA와 같은 후처리 기반 :ref:`앤티앨리어싱 기술 <doc_3d_antialiasing>`을 사용할 수 있지만 이러한 기술은 최종 결과를 더 흐릿하게 보이거나 고스팅 아티팩트를 표시하는 경향이 있으므로 항상 바람직한 것은 아닙니다.
이렇게 하고 싶어하는 몇 가지 이유가 있습니다:
비활성화됨: 알파 앤티앨리어싱이 없습니다. 후처리 기반 앤티앨리어싱 솔루션을 사용하지 않으면 투명한 재질의 가장자리가 앨리어싱된 것처럼 보입니다.
알파 가장자리 혼합: 불투명 영역과 투명 영역 사이를 부드럽게 전환합니다. "알파 투 커버리지"라고도 합니다.
알파 가장자리 클립: 불투명 영역과 투명 영역 사이에 선명하지만 앤티앨리어싱된 전환이 발생합니다. "알파 대 적용 범위 + 알파 대 1"이라고도 합니다.
알파 안티앨리어싱 모드가 Alpha Edge Blend 또는 Alpha Edge Clip**으로 설정되면 새로운 **Alpha Antialiasing Edge 속성이 검사기 아래에 표시됩니다. 이 속성은 픽셀을 투명하게 만들어야 하는 임계값을 제어합니다. 알파 가위 임계값을 이미 정의했지만(**알파 가위**만 사용하는 경우) 이 추가 임계값은 불투명 픽셀과 투명 픽셀 사이를 원활하게 전환하는 데 사용됩니다. **알파 앤티앨리어싱 가장자리**는 항상 알파 가위 임계값보다 엄격하게 낮은 값으로 설정되어야 합니다. ``0.3``의 기본값은 ``0.5``의 알파 가위 임계값을 사용하는 합리적인 값이지만, 알파 가위 임계값을 수정할 때 이 알파 앤티앨리어싱 가장자리를 조정하는 것을 기억하십시오.
앤티앨리어싱 효과가 충분히 효과적이지 않다면 **알파 앤티앨리어싱 가장자리**를 늘리면서 **알파 가위 임계값**(재료가 알파 가위를 사용하는 경우) 아래인지 확인하세요. 반면, 카메라가 재질에 가까워짐에 따라 텍스처의 모양이 눈에 띄게 변하는 것을 발견하면 **알파 앤티앨리어싱 가장자리**를 줄여보세요.
중요
최상의 결과를 얻으려면 알파 앤티앨리어싱을 사용할 때 MSAA 3D를 프로젝트 설정에서 최소 2배로 설정해야 합니다. 이는 이 기능이 MSAA에서 제공하는 기능인 적용 범위에 대한 알파에 의존하기 때문입니다.
MSAA가 없으면 고정된 디더링 패턴이 재질의 가장자리에 적용됩니다. 이는 가장자리를 부드럽게 만드는 데 그다지 효과적이지 않습니다(여전히 약간의 도움은 될 수 있지만).
블렌드 모드
재료의 혼합 모드를 제어합니다. 혼합 이외의 모드에서는 개체가 투명 파이프라인을 통과하도록 강제한다는 점에 유의하세요.
믹스: 기본 블렌드 모드인 알파는 개체가 표시되는 정도를 제어합니다.
추가: 개체의 최종 색상이 화면 색상에 추가되어 조명탄이나 불 같은 효과에 좋습니다.
앞: 보이지 않을 때 오브젝트의 앞은 가려집니다.
앞: 보이지 않을 때 오브젝트의 앞은 가려집니다.
미리 곱해진 알파: 객체의 색상에 이미 알파가 곱해진 것으로 예상됩니다. 이는 알파가 ``0.0``(완전 투명)인 경우 **Add**처럼 작동하고 알파가 ``1.0``(불투명)인 경우 **Mix**처럼 작동합니다.
컬링 모드
뒷면이 렌더링될 때 객체의 어느 면이 그려지지 않는지 결정합니다.
뒤: 보이지 않을 때 오브젝트의 뒤는 가려집니다 (디폴트).
앞: 보이지 않을 때 오브젝트의 앞은 가려집니다.
비활성화: 양면 오브젝트에 사용됩니다 (컬링이 수행되지 않음).
참고
Blender는 기본적으로 머티리얼의 뒷면 컬링이 비활성화되어 있으며 Blender에서 렌더링되는 것과 같이 머티리얼을 내보내려고 할 것입니다. 따라서 Godot에서도 머티리얼의 컬링 모드를 비활성화로 설정해야 합니다. 이 경우 다른 면에 가려질 때에도 뒷면이 렌더링되므로 성능을 떨어뜨릴 수 있습니다. 이를 해결하려면 Blender의 머티리얼 탭에서 뒷면 컬링 옵션을 활성화하세요.
깊이 그리기 모드
깊이 렌더링을 수행해야 하는 시기를 지정합니다.
불투명만(기본값): 불투명한 개체에 대해서만 깊이가 그려집니다.
항상: 불투명 개체와 투명 개체 모두에 대해 깊이 그리기가 그려집니다.
절대 안 함: 깊이 그리기가 수행되지 않습니다(아래의 깊이 테스트 없음 옵션과 혼동하지 마십시오).
깊이 사전 패스: 투명한 개체의 경우 불투명한 부분부터 먼저 불투명 패스를 만든 다음 위에 투명도를 그립니다. 투명한 풀이나 나무 잎에 이 옵션을 사용하세요.
깊이 테스트 없음
가까운 물체가 멀리 있는 물체 위에 나타나도록 깊이 테스트를 수행합니다. 이를 비활성화하면 객체가 다른 모든 것 위(또는 아래)에 나타나는 결과가 발생합니다.
이 기능을 비활성화하면 월드 공간에서 표시기를 그리는 데 가장 적합하며 Material의 Render Priority 속성과 매우 잘 작동합니다(이 페이지 하단 참조).
깊이 테스트 없음
이는 표준 깊이 테스트를 반전시키는 데 사용될 수 있습니다. **반전**으로 설정하면 개체는 가려질 때만 나타나고 그렇지 않으면 숨겨집니다.
**깊이 테스트 없음**이 활성화된 경우에는 아무런 효과가 없습니다.
셰이딩
셰이딩
머티리얼은 픽셀당, 정점당 및 **음영되지 않음**의 세 가지 음영 처리 모드를 지원합니다.
픽셀별 음영 처리 모드는 각 픽셀의 조명을 계산하며 대부분의 사용 사례에 적합합니다. 그러나 경우에 따라 다른 음영처리 모드를 사용하여 성능을 향상시키고 싶을 수도 있습니다.
"정점 셰이딩" 또는 "정점 조명"이라고도 하는 정점당 셰이딩 모드는 대신 각 정점에 대해 조명을 한 번 계산하고 각 픽셀 간에 결과를 보간합니다.
저가형 또는 모바일 장치에서 정점별 조명을 사용하면 렌더링 성능이 상당히 향상될 수 있습니다. 파티클 시스템을 사용할 때와 같이 여러 투명 레이어를 렌더링할 때 정점별 셰이딩을 사용하면 특히 카메라가 파티클에 가까울 때 성능이 향상될 수 있습니다.
정점별 조명을 사용하여 복고풍 느낌을 연출할 수도 있습니다.
`AmbientCG <https://ambientcg.com/view?id=Bricks051>`__의 텍스처
Unshaded 셰이딩 모드는 조명을 전혀 계산하지 않습니다. 대신 Albedo 색상이 직접 출력됩니다. 라이트는 재질에 전혀 영향을 주지 않으며, 음영처리되지 않은 재질은 음영처리된 재질보다 상당히 밝게 나타나는 경향이 있습니다.
음영 처리되지 않은 렌더링은 일부 특정 시각 효과에 유용합니다. 최대 성능이 필요한 경우 파티클이나 저가형 또는 모바일 장치에도 사용할 수 있습니다.
디퓨즈 모드
물체에 부딪힐 때 빛의 확산 산란에 사용되는 알고리즘을 지정합니다. 기본값은 **Burley**입니다. 다른 모드도 사용할 수 있습니다:
Burley: 기본 모드는 원래 Disney Principled PBS 확산 알고리즘입니다.
램버트: 거칠기의 영향을 받지 않습니다.
램버트 랩: 거칠기가 증가하면 램버트를 확장하여 90도 이상을 덮습니다. 머리카락과 값싼 표면 아래 산란을 시뮬레이션하는 데 적합합니다. 이 구현은 에너지를 절약합니다.
Toon: 거칠기에 영향을 받는 스무딩을 사용하여 조명에 대한 하드 컷을 제공합니다. 더 나은 효과를 얻으려면 환경의 주변 조명 설정에서 하늘 기여를 비활성화하거나 StandardMaterial3D에서 주변 조명을 비활성화하는 것이 좋습니다.
스펙큘러 모드
반사 얼룩이 렌더링되는 방법을 지정합니다. 반사 얼룩은 물체에 반사된 광원의 모양을 나타냅니다.
SchlickGGX: 현재 PBR 3D 엔진에서 사용되는 가장 일반적인 블롭입니다.
툰: 거칠기에 따라 크기가 변경되는 툰 덩어리를 만듭니다.
비활성화됨: 때때로 얼룩이 방해가 되는 경우가 있습니다. 가라!
환경광 비활성화
객체가 다른 방식으로 빛을 비출 수 있는 어떤 종류의 주변 조명도 받지 않도록 만듭니다.
안개 비활성화
깊이 기반 또는 체적 안개의 영향을 받지 않는 개체를 만듭니다. 이는 메쉬의 모양을 표시하는 입자 또는 기타 추가 혼합 재료에 유용합니다(안개 없이는 보이지 않는 위치에서도).
반사성 폐색 비활성화
일반적으로 가려지는 개체의 반사가 감소되지 않도록 합니다.
꼭짓점 색
이 설정을 사용하면 3D 모델링 응용 프로그램에서 제공되는 정점 색상에 대해 기본적으로 수행되는 작업을 선택할 수 있습니다. 기본적으로 무시됩니다.
알베도로 사용
이 옵션을 선택하면 정점 색상이 알베도 색상으로 사용됩니다.
sRGB 여부
대부분의 3D 모델링 소프트웨어는 정점 색상을 sRGB로 내보낼 가능성이 높으므로 이 옵션을 켜면 색상이 올바르게 표시되는 데 도움이 됩니다.
알베도
*알베도*는 다른 모든 설정이 작동하는 재질의 기본 색상입니다. *Unshaded*로 설정하면 이 색상만 표시됩니다. Godot의 이전 버전에서는 이 채널의 이름이 *Diffuse*였습니다. 이름이 변경된 이유는 PBR(물리 기반 렌더링)에서 이 색상이 확산 조명 경로보다 더 많은 계산에 영향을 미치기 때문입니다.
알베도 컬러와 텍스쳐를 곱하여 함께 사용할 수 있습니다.
알베도 색상과 텍스처의 *알파 채널*도 객체 투명도에 사용됩니다. *알파 채널*이 포함된 색상이나 텍스처를 사용하는 경우 투명도나 *알파 시저링*을 활성화해야 작동합니다.
메탈릭
Godot는 단순성으로 인해 경쟁 모델보다 금속 모델을 사용합니다. 이 매개변수는 재질의 반사 정도를 정의합니다. 반사율이 높을수록 확산/주변광이 재료에 영향을 미치고 더 많은 빛이 반사됩니다. 이 모델을 "에너지 절약"이라고 합니다.
Specular 매개변수는 반사율에 대한 일반적인 양입니다(*Metallic*과 달리 이는 에너지를 절약하지 않으므로 ``0.5``에 두고 필요하지 않는 한 건드리지 마십시오).
최소 내부 반사율은 ``0.04``이므로 실제처럼 재료를 완전히 반사하지 않게 만드는 것은 불가능합니다.
거칠기
*거칠기*는 반사가 발생하는 방식에 영향을 미칩니다. 0 값은 완벽한 거울이 되고, 1 값은 반사를 완전히 흐리게 합니다(자연스러운 미세 표면 시뮬레이션). 가장 일반적인 유형의 재료는 *금속*과 *거칠기*를 올바르게 조합하여 얻을 수 있습니다.
방출
*방출*은 재질에서 방출되는 빛의 양을 지정합니다. VoxelGI 또는 :ref:`SDFGI <doc_using_sdfgi>`을 사용하지 않는 한 여기에는 주변 형상의 빛이 포함되지 않는다는 점에 유의하세요. 이 값은 결과 최종 이미지에 추가되며 씬의 다른 조명에 영향을 받지 않습니다.
노말맵
노멀 매핑을 사용하면 더 미세한 모양 세부 정보를 나타내는 텍스처를 설정할 수 있습니다. 이는 형상을 수정하지 않고 빛의 입사각만 수정합니다. Godot에서는 더 나은 압축과 더 넓은 호환성을 위해 노멀 맵의 빨간색과 녹색 채널만 사용됩니다.
참고
Godot는 노멀맵에서 X+, Y-와 Z+ 좌표를 사용합니다. 따라서 다른 엔진용으로 나온 재질을 가져왔다면 노멀맵의 Y좌표를 반전시켜야 할 수 있습니다. 그렇지 않으면 노멀맵 Y축 방향이 반전된 상태로 나타날 수 있습니다.
노멀맵에 관한 추가적인 정보(유명 엔진 등의 좌표 순서가 정리된 테이블 등)는 이 곳 에서 찾을 수 있습니다.
노말맵
구부러진 노멀 맵은 주변 조명의 평균 방향을 설명합니다. 일반 노멀 맵과 달리 이는 표면 디테일을 추가하기보다는 재질이 조명에 반응하는 방식을 개선하는 데 사용됩니다.
이는 두 가지 방법으로 달성됩니다.
간접 확산 조명은 전역 조명과 더욱 밀접하게 일치하도록 만들어졌습니다.
반사 폐색이 활성화된 경우 주변광 대신 구부러진 법선과 주변 폐색을 사용하여 계산됩니다. 여기에는 화면 공간 주변 폐색(SSAO) 및 기타 주변 폐색 소스가 포함됩니다.
Godot는 더 나은 압축과 더 넓은 호환성을 위해 구부러진 노멀 맵의 빨간색과 녹색 채널만 사용합니다.
구부러진 노멀 맵을 만들 때 Godot에서 올바르게 작동하려면 세 가지가 필요합니다:
베이킹할 때 광선의 **코사인 분포**를 사용해야 합니다.
텍스처는 **접선 공간**에서 생성되어야 합니다.
Godot는 노멀맵에서 X+, Y-와 Z+ 좌표를 사용합니다. 따라서 다른 엔진용으로 나온 재질을 가져왔다면 노멀맵의 Y좌표를 반전시켜야 할 수 있습니다. 그렇지 않으면 노멀맵 Y축 방향이 반전된 상태로 나타날 수 있습니다.
참고
구부러진 노멀 맵은 일반 노멀 맵과 다릅니다. 둘은 서로 바꿔 사용할 수 없습니다.
림
일부 직물에는 빛이 주변으로 산란되는 작은 미세 털이 있습니다. Godot는 Rim 매개변수로 이것을 에뮬레이트합니다. 방출 채널만 사용하는 다른 림 조명 구현과 달리 이 구현은 실제로 빛을 고려합니다(빛이 없다는 것은 림이 없다는 것을 의미합니다). 이렇게 하면 효과가 훨씬 더 믿을만해집니다.
테두리 크기는 거칠기에 따라 다르며 색상 지정 방법을 지정하는 특수 매개변수가 있습니다. *Tint*가 ``0``인 경우 조명의 색상이 테두리에 사용됩니다. *Tint*가 ``1``인 경우 재질의 알베도가 사용됩니다. 일반적으로 중간 값을 사용하는 것이 가장 좋습니다.
클리어코트
Clearcoat 매개변수는 재료에 투명 코팅의 2차 패스를 추가하는 데 사용됩니다. 이는 자동차 페인트와 장난감에서 흔히 볼 수 있습니다. 실제로 이는 기존 재질 위에 추가된 더 작은 반사 얼룩입니다.
비등방성
이는 반사 얼룩의 모양을 변경하고 접선 공간에 정렬합니다. 비등방성은 일반적으로 머리카락에 사용되거나 브러시 처리된 알루미늄과 같은 재질을 보다 사실적으로 만들기 위해 사용됩니다. 플로우맵과 결합하면 특히 잘 작동합니다.
앰비언트 오클루전
구운 주변 폐색 맵을 지정할 수 있습니다. 이 맵은 개체의 각 표면에 도달하는 주변광의 양에 영향을 줍니다. 기본적으로 직접 조명에는 영향을 주지 않습니다. SSAO(Screen-Space Ambient Occlusion)를 사용하여 주변 폐색을 생성하는 것이 가능하지만 잘 구운 AO 맵의 품질을 능가하는 것은 없습니다. 가능할 때마다 주변 폐색을 베이킹하는 것이 좋습니다.
높이
머티리얼에 하이트 맵을 설정하면 뷰 방향을 따라 캐비티의 적절한 변위를 에뮬레이트하기 위한 레이 행진 검색이 생성됩니다. 이는 깊이의 환상만 생성할 뿐 실제 형상을 추가하지는 않습니다. (지형과 같은) 물리 충돌에 사용되는 높이 맵 모양의 경우 :ref:`class_HeightMapShape3D`를 참조하세요. 복잡한 객체에는 작동하지 않을 수 있지만 텍스처에 대해서는 사실적인 깊이 효과를 생성합니다. 최상의 결과를 얻으려면 *높이*를 노멀 매핑과 함께 사용해야 합니다.
서브서피스 산란
이 기능은 Forward+ 렌더러에서만 사용할 수 있으며 모바일 또는 호환성 렌더러에서는 사용할 수 없습니다.
이 효과는 물체의 표면을 관통하여 산란된 후 나오는 빛을 에뮬레이트합니다. 사실적인 피부, 대리석, 유색 액체 등을 만드는 데 유용합니다.
조명 굽기
이는 밝은 쪽(빛에 보이는 부분)에서 어두운 부분(빛의 반대쪽)으로 전달되는 빛의 양을 제어합니다. 이는 식물 잎, 풀, 인간의 귀 등과 같은 얇은 물체에 적합합니다.
굴절률
굴절이 활성화되면 Godot는 렌더링되는 객체 뒤에서 정보를 가져오려고 시도합니다. 이를 통해 실제 생활의 굴절과 유사한 방식으로 투명도를 왜곡할 수 있습니다.
굴절은 가시적 효과를 내기 위해 투명도에 의존하므로 투명한 알베도 텍스처를 사용하여(또는 알베도 색상의 알파 채널을 줄여) 굴절을 표시해야 한다는 점을 기억하십시오.
굴절에서는 재질의 거칠기도 고려됩니다. 거칠기 값이 높을수록 굴절 뒤의 개체가 더 흐릿하게 나타나 실제 동작을 시뮬레이션합니다. 굴절이 활성화되고 알베도 투명도가 감소할 때 개체 뒤를 볼 수 없으면 재질의 거칠기 값을 줄이세요.
선택적으로 Refraction Texture 속성에 노멀 맵을 지정하여 픽셀 단위로 굴절 방향을 왜곡할 수 있습니다.
참고
굴절은 화면 공간 효과로 구현되며 재질을 투명하게 만듭니다. 이렇게 하면 효과가 상대적으로 빨라지지만 몇 가지 제한 사항이 발생합니다.
투명도 정렬 문제가 발생할 수 있습니다.
굴절 물질은 그 자체나 다른 투명한 물질에 굴절될 수 없습니다. 다른 투명한 재질 뒤에 있는 굴절 재질은 보이지 않습니다.
화면 밖의 물체는 굴절에 나타날 수 없습니다. 이는 굴절 강도 값이 높을 때 가장 두드러집니다.
굴절 물질 앞에 있는 불투명 물질은 굴절되어서는 안 되지만 가장자리가 "굴절된" 것처럼 보입니다.
디테일
Godot는 보조 알베도와 노멀 맵을 사용하여 다양한 방법으로 혼합할 수 있는 세부 텍스처를 생성할 수 있습니다. 이를 보조 UV 또는 삼면 모드와 결합하면 많은 흥미로운 텍스처를 얻을 수 있습니다.
세부 사항이 사용되는 방식을 제어하는 몇 가지 설정이 있습니다.
마스크: 디테일 마스크는 텍스처에서 블렌딩이 발생하는 위치를 제어하는 데 사용되는 흑백 이미지입니다. 흰색은 디테일 텍스처용이고, 검정색은 일반 재질 텍스처용이며, 다양한 회색 음영은 재질 텍스처와 디테일 텍스처의 부분 혼합용입니다.
블렌드 모드: 이 네 가지 모드는 텍스처가 함께 블렌딩되는 방식을 제어합니다.
혼합: 두 텍스처의 픽셀 값을 결합합니다. 검정색에서는 재료 질감만 표시되고, 흰색에서는 세부 질감만 표시됩니다. 회색 값은 둘 사이의 부드러운 혼합을 만듭니다.
추가: 한 텍스처의 픽셀 값을 다른 텍스처에 추가합니다. 혼합 모드와 달리 두 텍스처 모두 마스크의 흰색 부분에서 완전히 혼합되고 회색 부분에서는 혼합되지 않습니다. 원래 질감은 검정색에서 대부분 변경되지 않습니다.
Sub: 한 텍스처의 픽셀 값을 다른 텍스처에서 뺍니다. 두 번째 텍스처는 마스크의 흰색 부분에서 완전히 제거되고 검은색 부분에서는 약간만 제거됩니다. 회색 부분은 정확한 텍스처를 기반으로 하는 다른 수준의 제거입니다.
Mul: 위쪽 텍스처의 각 픽셀에 대한 RGB 채널 번호를 아래쪽 텍스처의 해당 픽셀 값과 곱합니다.
알베도: 여기에 혼합하려는 알베도 텍스처를 넣는 곳입니다. 이 슬롯에 아무것도 없으면 기본적으로 흰색으로 해석됩니다.
Normal: 여기에 블렌딩하려는 일반 텍스처를 넣는 곳입니다. 이 슬롯에 아무것도 없으면 평면 노멀 맵으로 해석됩니다. 머티리얼에 노멀 맵이 활성화되지 않은 경우에도 여전히 사용할 수 있습니다.
UV1 및 UV2
Godot는 머티리얼당 두 개의 UV 채널을 지원합니다. 2차 UV는 주변 폐색이나 방출(베이크된 조명)에 유용한 경우가 많습니다. UV는 크기를 조정하고 오프셋할 수 있으며 이는 반복 텍스처를 사용할 때 유용합니다.
삼면 매핑
삼면 매핑은 UV1과 UV2 모두에 대해 지원됩니다. 이는 "자동 텍스처"라고도 불리는 텍스처 좌표를 얻는 또 다른 방법입니다. 텍스처는 X, Y, Z에서 샘플링되고 법선으로 혼합됩니다. 삼면 매핑은 월드 공간이나 객체 공간에서 수행될 수 있습니다.
아래 이미지에서는 모든 프리미티브가 삼면 세계와 동일한 재질을 공유하여 벽돌 텍스처가 프리미티브 간에 원활하게 계속되는 방식을 확인할 수 있습니다.
월드 트라이플래너
삼면 매핑을 사용하는 경우 개체 로컬 공간에서 계산됩니다. 이 옵션을 사용하면 대신 월드 공간을 사용하게 됩니다.
샘플링
필터
머티리얼에 사용되는 텍스처에 대한 필터링 방법입니다. 전체 옵션 목록과 해당 설명은 :ref:`this page<class_BaseMaterial3D_property_texture_filter>`를 참조하세요.
반복
머티리얼에 사용된 텍스처가 반복되는지 여부와 반복 방식. 전체 옵션 목록과 해당 설명은 :ref:`this page<class_BaseMaterial3D_property_texture_repeat>`를 참조하세요.
그림자
그림자 수신 비활성화
개체가 개체에 드리울 수 있는 어떤 종류의 그림자도 받지 않도록 만듭니다.
그림자에서 불투명도로
조명은 알파를 수정하여 그림자가 있는 영역은 불투명하고 그림자가 없는 영역은 투명하게 만듭니다. AR의 카메라 피드에 그림자를 오버레이하는 데 유용합니다.
클립보드
빌보드 모드
도면 재료에 대한 빌보드 모드를 활성화합니다. 이는 객체가 카메라를 향하는 방식을 제어합니다.
비활성화됨: 빌보드 모드가 비활성화되었습니다.
활성화됨: 빌보드 모드가 활성화되었습니다. 개체의 -Z 축은 항상 카메라의 보기 평면을 향합니다.
Y-빌보드: 개체의 X축은 항상 카메라의 보기 평면과 정렬됩니다.
파티클 빌보드: :ref:`플립북 애니메이션 <doc_process_material_properties_animation>`을 지정할 수 있으므로 파티클 시스템에 가장 적합합니다.
Particles Anim 섹션은 빌보드 모드가 **Particle Billboard**인 경우에만 표시됩니다.
빌보드 유지 규모
빌보드 모드에서 메시 크기 조정을 활성화합니다.
자라기
법선이 가리키는 방향으로 오브젝트 꼭짓점을 자라게 합니다:
이것은 일반적으로 저렴한 윤곽선을 만드는 데 사용됩니다. 두 번째 머티리얼 패스를 추가하고 검정색으로 음영 처리되지 않은 상태로 만들고 역 컬링(Cull Front)하고 성장을 추가합니다.
참고
성장이 예상대로 작동하려면 메시에 공유 정점 또는 "부드러운 음영 처리"가 있는 연결된 면이 있어야 합니다. 메시에 고유한 정점이 있는 연결이 끊긴 면이 있거나 "플랫 셰이딩"이 있는 경우 성장을 사용할 때 메시에 간격이 있는 것처럼 보입니다.
Godot 4.5 이후 버전에서는 Outline :ref:`stencil mode <doc_standard_material_3d_stencil>`을 사용하여 스텐실 버퍼 기반 아웃라인을 사용할 수 있습니다. 이는 윤곽선 확장의 대안으로 사용할 수 있습니다.
변형
고정 크기
이렇게 하면 거리에 관계없이 객체가 동일한 크기로 렌더링됩니다. 이는 주로 표시기(깊이 테스트가 없고 렌더링 우선순위가 높음)와 일부 빌보드 유형에 유용합니다.
점 크기 사용
이 옵션은 렌더링된 형상이 점으로 구성된 경우에만 효과적입니다(일반적으로 3D 모델링 소프트웨어에서 가져올 때 삼각형으로 구성됨). 그렇다면 해당 포인트의 크기를 조정할 수 있습니다(아래 참조).
점 크기
점을 그릴 때 점 크기를 픽셀 단위로 지정합니다.
입자 트레일
이 기능은 Forward+ 및 모바일 렌더러에서만 사용할 수 있으며 호환성 렌더러에서는 사용할 수 없습니다.
true인 경우 GPUParticles3D 트레일이 작동하는 데 필요한 셰이더의 일부를 활성화합니다. 이를 위해서는 RibbonTrailMesh 또는 TubeTrailMesh와 같은 적절한 스키닝이 포함된 메시를 사용해야 합니다. GPUParticles3D 메쉬에 사용된 재료 외부에서 이 기능을 활성화하면 재료 렌더링이 중단됩니다.
Z 클립 배율 사용
벽과 같은 물체에 클리핑되는 것을 방지하기 위해 카메라를 향해 렌더링되는 객체의 크기를 조정합니다. 이는 플레이어 팔, 도구 등과 같이 카메라에 고정된 개체에 사용하기 위한 것입니다. 이 설정을 조정해도 조명과 그림자는 계속 올바르게 작동하지만 SSAO 및 SSR과 같은 화면 공간 효과는 낮은 배율에서 깨질 수 있습니다. 따라서 이 설정을 가능한 한 1.0에 가깝게 유지하십시오.
FOV 재정의 사용
``Camera3D``의 시야각(도)을 재정의합니다.
근접 및 거리 페이드
Godot는 관찰자와의 거리에 따라 뿐만 아니라 서로의 근접성에 따라 재질이 희미해지는 것을 허용합니다. 근접 페이드는 해안에 부드럽게 혼합되는 부드러운 입자 또는 물 덩어리와 같은 효과에 유용합니다.
거리 페이드는 주어진 거리 이후에만 나타나는 빛줄기나 표시기에 유용합니다.
픽셀 알파 모드에서 근접 페이드 또는 거리 페이드를 활성화하면 알파 블렌딩이 가능해집니다. 알파 블렌딩은 GPU 집약적이며 투명도 정렬 문제를 일으킬 수 있습니다. 알파 블렌딩은 또한 그림자 투사 기능과 같은 많은 머티리얼 기능을 비활성화합니다.
픽셀 알파 모드: 물체 픽셀의 실제 투명도는 카메라와의 거리에 따라 변경됩니다. 이것이 가장 효과가 크지만 재료를 투명 파이프라인으로 강제로 보냅니다(예를 들어 그림자가 없게 됩니다).
픽셀 디더 모드: 이 모드는 픽셀의 일부만 렌더링하여 대략적인 투명도를 제공합니다.
객체 디더 모드: 이전 모드와 비슷하지만 계산된 투명도는 전체 객체 표면에서 동일합니다.
스텐실
Godot 4.5부터 Godot는 머티리얼이 스텐실 버퍼를 활용할 수 있도록 허용합니다. 이 기능은 일반적으로 윤곽선과 X선 효과를 생성하는 데 사용되며, 특히 벽 뒤의 개체를 강조 표시하는 데 유용할 수 있습니다.
아웃라인 및 X-Ray 모드는 재료의 다음 패스 속성에 미리 구성된 스텐실 재료를 할당합니다. Custom 모드는 고급 효과를 위해 사용될 수 있습니다.
스텐실 버퍼에 쓰는 머티리얼은 항상 투명 패스로 그려지므로 일반적인 :ref:`투명도 제한 <doc_3d_rendering_limitations_transparency_sorting>`이 적용됩니다.
참고
:ref:`Grow 속성 <ref_standard_material_3d_grow>`과 마찬가지로 스텐실 윤곽선이 예상대로 작동하려면 메시에 공유 정점 또는 "부드러운 음영 처리"가 있는 연결된 면이 있어야 합니다. 메시에 고유한 꼭지점 또는 "플랫 음영"이 있는 연결이 끊긴 면이 있는 경우 스텐실 윤곽선을 사용할 때 메시에 간격이 있는 것처럼 보입니다.
스텐실 윤곽선은 성장 속성과 유사하게 렌더링되지만 특히 불투명 표면과의 교차점이 포함된 경우 모든 시나리오에서 동일하게 보이지는 않습니다.
머티리얼
렌더링 우선순위
객체의 렌더링 순서는 변경할 수 있지만 이는 투명한 객체(또는 바닥의 균열과 같이 깊이 그리기를 수행하지만 색상 그리기를 수행하지 않는 불투명 객체)에 주로 유용합니다.
객체는 불투명/투명 대기열을 기준으로 정렬된 다음 :ref:`render_priority<class_Material_property_render_priority>`로 정렬되며 나중에 더 높은 우선 순위가 그려집니다. 투명한 개체도 깊이별로 정렬됩니다.
심도 테스트는 우선순위를 무시합니다. 우선순위만으로는 불투명한 개체를 서로 겹쳐서 그릴 수 없습니다.
고급 단계
재료에 :ref:`next_pass<class_Material_property_next_pass>`를 설정하면 객체가 다음 재료로 다시 렌더링됩니다.
머티리얼은 불투명/투명 대기열에 따라 정렬된 다음 :ref:`render_priority<class_Material_property_render_priority>`로 정렬되며 나중에 더 높은 우선순위가 그려집니다.
성장 설정이나 다른 정점 변환을 사용하지 않는 한 깊이는 두 재료 모두에서 동일하게 테스트됩니다. 올바른 순서를 보장하려면 다중 투명 패스에서 :ref:`render_priority<class_Material_property_render_priority>`를 사용해야 합니다.