,

Rendering with Replaced Shaders

몇 개의 렌더링 효과는 쉐이더의 다른 세트들과 함께 씬을 렌더링을 필요로 합니다. 예를 들어 좋은 에지 디텍션은 씬normals과 함께 있는 텍스쳐를 필요로 할 것입니다. 그래서 그것은 표면 방향성이 달라지는 곳에서 모서리를 감지할 수 있습니다. 다른 효과들은 씬의 깊이를 가지는 텍스쳐를 필요로 할지도 모릅니다. 이것을 얻기 위해서 모든 물체의 대체된 쉐이더를 가지는 씬을 그리기 위해서 가능합니다.

쉐이더 대체는 Camera.RenderWithShader 또는 Camera.SetReplacementShader을 사용해서 스크립팅으로부터 행해질 수 있습니다. 두 개의 함수 모두 하나의 shaderreplacementTag를 취합니다.

그것은 이것처럼 작동합니다: 카메라는 그것이 보통 하는 것처럼 씬을 그립니다. 물체는 그들의 재질을 여전히 사용하나 결국 사용되는 실제 쉐이더는 바뀝니다:

만약 모든 쉐이더가 예를 들어 "Opaque", "Transparent", "Background", "Overlay"의 값을 가지는 "RenderType" 태그를 가진다면 사용자는RenderType=Solid tag를 가지는 하나의 서브쉐이더를 사용하는 것에 의해 고체 물체를 그리는 대체 쉐이더를 쓸 수 있습니다. 다른 태그 타입은 대체 쉐이더에서 발견되지 않을 것입니다. 그래서 물체는 그려지지 않습니다. 또는 사용자는 다른 "RenderType" 태그 값을 위해서 몇몇의 서브 쉐이더를 쓸 수 있습니다. 부수적으로 모든 Unity의 쉐이더는 "RenderType" 태그 세트를 가집니다..

Shader replacement tags in built-in Unity shaders

모든 내장된 Unity 쉐이더는 대체 쉐이더와 함께 그릴 때 사용될 수 있는 "RenderType" 태그 세트를 가집니다. 태그 값은 다음과 같습니다:

Built-in scene depth/normals texture

사용자가 사용자의 몇몇의 효과에서 필요하다면 카메라는 깊이 또는depth+normals 텍스쳐를 그리기 위한 내장된 능력을 가집니다 . Camera Depth Texture 페이지를 살펴보시기 바랍니다.