아이폰용 쉐이더 테스트

아이폰에서의 쉐이더 사용은 극히 제한적이며, 일부의 쉐이더는 퍼포먼스를 급격히 떨어뜨리기 까지 합니다.

아이폰/아이패드 용으로 사용하기 위한 제한사항들을 먼저 참고하는게 좋습니다.

Simple Checklist to make Your Game Faster

  • Keep the vertex count below 10K per frame.* 한 프레임당 10,000 버텍스를 넘지 않도록 유지할것* Keep the number of different materials per scene low - share as many materials between different objects as possible.* 여러 메터리얼이 한 씬에 나오게 유지되면 느려짐 - 가능하면 다른 오브젝트간에 메터리얼을 공유할 것* Set Static property on a non-moving objects to allow internal optimizations.* 움직이지 않는 오브젝트는 Static 속성을 넣어서 자체적으로 옵티마이즈 할 수 있게 만들것* Use PVRTC texture compression where possible, otherwise choose 16bit textures over 32bit.* 가능하면 PVRTC 텍스쳐 속성을 사용하도록, 아니면 16비트 텍스쳐를 사용하도록* Use combiners or pixel shaders to mix several textures per fragment instead of multi-pass approach.* 쉐이더에서 멀티 패스를 사용하기보단 콤바이너나 픽셀쉐이더를 사용해서 여러 개의 텍스쳐를 섞도록.  * Choose to use less textures per fragment.* 한 프레그먼트(쉐이더) 에서 가능한 적은 텍스쳐를 쓰도록.   * Do not use dynamic lights when it is not necessary – choose baking lighting instead.* 필요없으면 동적 라이트를 쓰지 말도록 – 대신 라이트를 베이킹하도록. * Avoid alpha-testing, choose alpha-blending instead.* 알파 테스팅을 사용하지 말고, 대신 알파 블렌딩을 사용할 것.* Avoid fog (especially on newer than iPhone 3GS devices).* 포그를 피할것 (특히 아이폰 3GS 이후 모델들에서)* Learn benefits of Occlusion culling and use it to reduce amount of visible geometry and draw-calls in case of complex static scenes with lots of occlusion. Plan your levels to benefit from Occlusion culling.* 오클루젼 컬링의 이득을 배우시고 복잡한 고정물의 충돌물이 있는 씬에서 낮은 드로우콜과 적은 오브젝트를 위해 사용하라. 레벨디자인을 할 때 오클루젼 컬링에 맞게 계획하라* Use skyboxes to “fake” distant geometry. * 스카이박스를 ‘가짜의’ 원경으로 사용해라

http://unity3d.com/support/documentation/Manual/Optimizing%20Graphics%20Performance.html#iPhoneOptimizingGraphicsPerformance

아이폰에서의 권장사항은 일단 텍스쳐 장수를 줄이고, (여러 개의 복합적 텍스쳐 사용은 버텍스를 복사해서 늘이는 기능도 합니다)
최대한 조명 계산을 자제하라는 것입니다.
또한 일반적인 상식과는 다르게 알파 테스팅보다는 알파 블렌딩을 권장하고, 포그를 사용하지 말라고 되어 있습니다.

이 내용을 기반으로, 아이폰에서 사용가능한 쉐이더 리스트를 정리해 보겠습니다.
테스트 방법은, 쉐이더를 적용한 공 32개를 나열해 놓고, 쉐이더를 바꿔가면서 테스트하였습니다.

테스트 결과는 그래픽 디자이너들이 사용하기 쉽게 분류해 보았습니다.

일단 가장 가벼운 쉐이더로 계산했을 때 22프레임 내외 .. 24 프레임?

Hugo로 만듦
JimmyStack 테마 사용 중