Этот аддитивный шейдер мне изначально не понравился из-за отсутствия куллинга, но я не видел проблем, пока не поменял 3G на 2G тач ( Процессор iPhone 3G, к слову, еще слабее, чем у 2G Touch )
Посему, поискал решение, причем, необходим был аддитив с дополнительным Tint цветом и учетом повертексного освещения меша (как у стандартного Particle/Additive) но с кулингом обратной грани, как минимум.
Результат:
- Код: Выделить всё
Shader "iPhone/Additive(One Texture)" {
Properties {
_TintColor ("Tint Color", Color) = (0.5,0.5,0.5,0.5)
_MainTex ("Texture to blend", 2D) = "black" {}
}
Category {
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
Blend SrcAlpha One ColorMask RGB Cull Back Lighting Off ZWrite Off Fog { Color (0,0,0,0) }
BindChannels { Bind "Color", color Bind "Vertex", vertex Bind "TexCoord", texcoord }
SubShader {
Pass {
SetTexture [_MainTex] {
constantColor [_TintColor]
combine constant * primary
}
SetTexture [_MainTex] {
combine texture * previous DOUBLE
}
}
}
}
}
Фпс вернулися на положеную им полочку.
Если же повертексный свет не нужен (странно, конечно, ведь аддитив и повертексная альфа - пара покрепче Джейка с Нейтири), можно еще больше упростить жизнь яблофону, сократив операции в проходе:
- Код: Выделить всё
SubShader {
Pass {
SetTexture [_MainTex] {
constantColor [_TintColor]
combine texture * constant
}
}