사용 가능한 셰이더

cluster에서 사용할 수 있는 셰이더

cluster는 Unity의 Built-in Render Pipeline을 사용하며 많은 자산과 함께 제공되는 셰이더는 그대로 작동합니다.

다만, 지오메트리 셰이더가 사용되고 있는 것(형상이 크게 변화하는 이펙트 등에 사용되고 있는 경우가 많다)는 iOS와 Mac에서 동작하지 않습니다 (Missing Material과 같은 보라색으로 표시됩니다).

더 많은 사용자가 월드를 사용하도록 하려면 확인을 추천합니다.

셰이더를 직접 만든다

cluster는 복수의 플랫폼(Windows, Mac, Android, iOS)과 다른 UI(VR와 비VR)로 동작해, 양질의 월드는 그 모두로 정상적으로 동작하는 것이 기대됩니다.

cluster가 사용하는 Graphics API는 다음과 같습니다.

  • Direct3D 11 (Windows)
  • Metal (iOS / Mac)
  • OpenGL ES 3 (Android)

이것은 geometry shader (#pragma geometry …)를 사용할 수 없다는 것을 의미합니다.

그 때문에, 정점수가 동적으로 증감하는 이펙트 등은, Unity의 애니메이션과 vertex shader의 조합으로 실현하는 것을 추천합니다.

ShaderLab의 타겟 버전은 #pragma target 3.5 이하를 권장합니다.

cluster의 VR대응은 Multi-Pass Stereo Rendering을 사용하고 있으므로, 빌보드나 물 등 양안 시차가 영향을 주는 것을 쓸 때는 참고로 해 주세요.

가속화 Tips

모바일 GPU는 데스크톱 환경에 비해 GPU-메모리 통신 대역이 작기 때문에 메모리 읽기가 추가로 발생하는 AlphaBlend나 GrabPass는 특히 느려지는 경향이 있습니다.

불투명해도 성립하는 이펙트를 디자인하는, 투과 부분에는 AlphaCut를 사용하는 등으로 문제가 완화되는 경우가 있습니다.