이 페이지는 ShaderLab 코드에서 LOD
블록을 사용하여 서브셰이더에 디테일 수준(LOD) 값을 할당하는 방법에 대한 정보를 포함합니다.
서브셰이더에 LOD 값을 할당할 수 있습니다. 이 값은 서브셰이더가 연산적으로 얼마나 어려운지를 나타냅니다.
런타임 시 단일 셰이더 오브젝트나 모든 셰이더 오브젝트를 위한 셰이더 LOD 값을 설정할 수 있습니다. 그러면 Unity가 LOD 값이 보다 낮은 서브셰이더를 우선순위로 지정합니다. Unity가 서브셰이더를 사용해야 하는 때를 어떻게 선택하는지 알아보려면 셰이더 오브젝트: 렌더링 중 작업 순서를 참조하십시오.
참고: 이 기법은 메시 렌더링을 위한 LOD 기능의 이름을 차용했으나, 중요한 차이가 있습니다. 즉, 셰이더 LOD는 카메라와의 거리와 관련되지 않으며, Unity는 셰이더 LOD를 자동으로 계산하지 않습니다. 최대 셰이더 LOD는 수동으로 설정해야 합니다.
이 기법을 사용하여 여러 하드웨어의 셰이더 성능을 세부적으로 조정하십시오. 서브셰이더가 이론적으로는 사용자의 하드웨어에서 지원되나, 하드웨어가 서브셰이더를 제대로 실행하지 못하는 경우 유용합니다.
기능 이름 | 빌트인 렌더 파이프라인 | 유니버설 렌더 파이프라인(URP) | 고해상도 렌더 파이프라인(HDRP) | 커스텀 SRP |
---|---|---|---|---|
ShaderLab: 서브셰이더 LOD 블록 | 지원 | 지원 | 지원 | 지원 |
ShaderLab에서는 SubShader
블록 안에 LOD
블록을 넣어 서브셰이더에 LOD 값을 할당합니다.
서명 | 기능 |
---|---|
LOD [값] | 특정 LOD 값을 서브셰이더에 할당합니다. |
참고: Shader
블록 내에서 서브셰이더를 LOD 내림차순으로 배치해야 합니다. 예를 들어, LOD 값이 각각 200, 100, 500인 서브셰이더가 있는 경우 LOD 값이 500인 서브셰이더, LOD 값이 200인 서브셰이더, LOD 값이 100인 서브셰이더 순으로 배치해야 합니다. Unity는 첫 번째로 찾은 유효한 서브셰이더를 선택하므로, LOD가 더 낮은 서브셰이더를 먼저 찾으면 항상 해당 서브셰이더를 선택할 것이기 때문입니다.
To set the shader LOD for a given Shader object, you can use Shader.maximumLOD. To set the shader LOD for all Shader objects, you can use Shader.globalMaximumLOD. By default, there is no maximum LOD.
이 예제 코드는 LOD 값이 200인 서브셰이더 하나와 LOD 값이 100인 서브셰이더 하나, 총 두 개의 서브셰이더를 포함하는 셰이더 오브젝트를 만듭니다. 서브셰이더는 LOD 값 내림차순으로 정렬되었습니다.
Shader "Examples/ExampleLOD"
{
SubShader
{
LOD 200
Pass
{
// The rest of the code that defines the Pass goes here.
}
}
SubShader
{
LOD 100
Pass
{
// The rest of the code that defines the Pass goes here.
}
}
}
빌트인 렌더 파이프라인에서 Unity 빌트인 셰이더에는 다음 LOD 값이 있습니다.
LOD 값 | 셰이더 이름 |
---|---|
100 | Unlit/Texture Unlit/Color Unlit/Transparent Unlit/Transparent Cutout |
300 | Standard Standard (Specular Setup) Autodesk Interactive |
빌트인 렌더 파이프라인에서 Unity 빌트인 레거시 셰이더에는 다음 LOD 값이 있습니다.
LOD 값 | 셰이더 이름 |
---|---|
100 | VertexLit |
150 | Decal Reflective VertexLit |
200 | 디퓨즈 |
250 | Diffuse Detail Reflective Bumped Unlit Reflective Bumped VertexLit |
300 | Bumped Specular |
400 | 범프 스페큘러 |
500 | Parallax |
600 | Parallax Specular |