Hello everyone!
I am developing my endless runner game, and my game overheats a device (Sams. Galaxy S3) very fast.
Can’t make a screen of stats, here is main info:
Draw calls: 14-20,
Verts: 15k-25k.
I need a bending effect of environment, so shaders look as follows:
Bending_Diffuse
Shader "MyShaders/Diffuse_Color" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Texture", 2D) = "white" {}
// _QOffset ("Offset", Vector) = (0,0,0,0)
_Dist ("Distance", Float) = 200.0
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 10
CGPROGRAM
#pragma surface surf Lambert vertex:vert
struct Input
{
float2 uv_MainTex;
float4 pos : SV_POSITION;
};
sampler2D _MainTex;
fixed4 _Color;
float4 _QOffset;
fixed _Dist;
void vert (inout appdata_full v)
{
float4 vPos = mul (UNITY_MATRIX_MV, v.vertex);
float zOff = vPos.z/_Dist;
vPos += _QOffset*zOff*zOff;
v.vertex = mul(transpose(UNITY_MATRIX_IT_MV), vPos);
}
void surf (Input IN, inout SurfaceOutput o)
{
fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
Fallback "Diffuse"
}
Bending_DiffuseDetail:
Shader "MyShaders/Diffuse_Detail_Color" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Texture", 2D) = "white" {}
//_QOffset ("Offset", Vector) = (0,0,0,0)
_Dist ("Distance", Float) = 200.0
_Detail ("Detail (RGB)", 2D) = "gray" {}
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 10
CGPROGRAM
#pragma surface surf Lambert vertex:vert
struct Input
{
float2 uv_MainTex;
float2 uv_Detail;
float4 pos : SV_POSITION;
};
sampler2D _MainTex;
sampler2D _Detail;
fixed4 _Color;
float4 _QOffset;
fixed _Dist;
void vert (inout appdata_full v)
{
float4 vPos = mul (UNITY_MATRIX_MV, v.vertex);
float zOff = vPos.z/_Dist;
vPos += _QOffset*zOff*zOff;
v.vertex = mul(transpose(UNITY_MATRIX_IT_MV), vPos);
}
void surf (Input IN, inout SurfaceOutput o)
{
fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
c.rgb *= tex2D(_Detail,IN.uv_Detail).rgb*2;
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
Fallback "Diffuse"
}
What do U think, do these shaders look good enough for mobile, or bending effect makes it very complex to display?