[Unity] URP 셰이더 픽셀 셰이더 5.0 샘플러 오류 해결법 (Sampler State 노드)

2023. 7. 14. 17:43Unity

728x90
반응형

셰이더를 만들다 보면, 많은 텍스쳐를 사용하여 오류가 날 수 있다. 매뉴얼에는 Direct3D 11은 한 셰이더에 최대 128개의 텍스쳐와 16개의 샘플러를 지원한다고 되어있지만, 샘플링이 API 한계를 넘어서면 콘솔 창에 다음과 같은 오류 문구가 나온다. "Shader error in 'Master': maximum ps_5_0 sampler register index (16) exceeded at line 358 (on d3d11)"

 

 

이 경우 샘플러 상태를 공유해서 사용하는 샘플링 수를 줄이면 된다.

 

 


 

 

좌: Linear, 우: Point (Unity Manual)

  • Linear: 텍스쳐가 화면에서 확대/축소될 때, 주변 픽셀과 블렌딩 되면서 부드러워진다.
  • Point: 블렌딩 되지 않는다.
  • Trilinear: Linear와 기본적으로 같지만 Mipmap 변화가 될 때 그 경계선에서도 부드럽게 보간하므로 좋은 퀄리티를 볼 수 있다.

 

 


 

 

Clamp / Repeat / Mirror / Mirror Once / Repeat V (Unity Manual)

[Wrap]은 UV의 0~1 범위를 넘어가는 텍스쳐를 어떻게 표현할지에 대한 세팅이다. Mirror Once의 경우 대부분의 모바일 GPU/API에서 지원하지 않고 Mirror로 대체된다.

 

 


 

 

[Sampler State] 노드를 각 텍스쳐 Sampler 부분에 공유하여 연결하니 오류가 해결되었다.

 

 


참고자료

 

대마왕의 유니티 URP 셰이더 그래프 스타트업

셰이더의 기본 개념에서부터 셰이더 그래프(노드)의 기본 활용법까지 소개하여, 다양하고 재미있는 셰이더를 만드는 방법을 알려준다. 또한, 자신이 원하는 효과를 만들기 위해 노드를 어떤 방

www.aladin.co.kr

728x90
반응형