дин.амбиент не помешал бы.
Включай, улучшай, фильтры добавляй, там решада в комплекте.Загрузилось,
GTA-X-RAY build 327
#ifdef USE_PARALLAX
surface_bumped sload_i (p_bumped I)
{
surface_bumped S;
half height = tex2D(s_bumpX, I.tcdh).w;
height = height * parallax.x + parallax.y;
float2 new_tc = I.tcdh + height * normalize(I.eye);
half4 Nu = tex2D(s_bump, new_tc); // IN: normal.gloss
half4 NuE = tex2D(s_bumpX, new_tc); // IN: normal_error.height
S.base = tbase(new_tc); // IN: rgb.a
S.normal = Nu.wzyx + (NuE.xyz - 1.0h); // fixing DXT compression errors
S.gloss = Nu.x * Nu.x;
S.height = NuE.z;
#ifdef USE_TDETAIL
half4 detail = tex2D(s_detail, I.tcdbump);
S.base.rgb = S.base.rgb * detail.rgb * 2;
S.gloss = S.gloss * detail.w * 2;
#endif // USE_TDETAIL
return S;
}
#else
surface_bumped sload_i (p_bumped I)
{
surface_bumped S;
half4 Nu = tex2D(s_bump, I.tcdh); // IN: normal.gloss
half4 NuE = tex2D(s_bumpX, I.tcdh); // IN: normal_error.height
S.base = tbase(I.tcdh); // IN: rgb.a
S.normal = Nu.wzyx + (NuE.xyz - 1.0h); // fixing DXT compression errors
S.gloss = Nu.x * Nu.x;
S.height = NuE.z;
#ifdef USE_TDETAIL
half4 detail = tex2D(s_detail, I.tcdbump);
S.base.rgb = S.base.rgb * detail.rgb * 2;
S.gloss = S.gloss * detail.w * 2;
#endif // USE_TDETAIL
return S;
}
#endif // USE_PARALLAX
surface_bumped S;
#ifdef USE_PARALLAX
half height = tex2D(s_bumpX, I.tcdh).w;
height = height * parallax.x + parallax.y;
float2 new_tc = I.tcdh + height * normalize(I.eye);
half4 Nu = tex2D(s_bump, new_tc); // IN: normal.gloss
half4 NuE = tex2D(s_bumpX, new_tc); // IN: normal_error.height
S.base = tbase(new_tc); // IN: rgb.a
#else
half4 Nu = tex2D(s_bump, I.tcdh); // IN: normal.gloss
half4 NuE = tex2D(s_bumpX, I.tcdh); // IN: normal_error.height
S.base = tbase(I.tcdh); // IN: rgb.a
#endif // USE_PARALLAX
S.normal = Nu.wzyx + (NuE.xyz - 1.0h); // fixing DXT compression errors
S.gloss = Nu.x * Nu.x;
S.height = NuE.z;
#ifdef USE_TDETAIL
half4 detail = tex2D(s_detail, I.tcdbump);
S.base.rgb = S.base.rgb * detail.rgb * 2;
S.gloss = S.gloss * detail.w * 2;
#endif // USE_TDETAIL
return S;