I’ve made a simple scene with a orange sprite (quad) repeating itself forward in 2D (Y Axis) and put an spot light that goes up lighting the sprite (it’s a cars light for dark scenes).
It starts doing it ok, but as the time goes by and the spot light goes up, the lighting starts present some serious artifacts.
Can some put some ‘light’ over this issue?
Using Unity 5.3.1 and a kindle fire for testing.
I’ve tried everything: changing the quality settings and rendering type (Forward / Deferred), the 32 bit buffer, camera presets (near-far planes), changed OpenGL2 to automatic; nothing seems to work.
After testing with other android device I realize that this only happens in the Kindle Fire, in destop doesn’t happens either.
Does anyone has any clue about why the kindle doesn’t manage spot / point lights as it should? This is very fustrating (two days trying to solve this with zero results). (Shame on my… :()
I’ve made a little project showing the problem. I 've been trying using different diffuse shaders with zero luck. It doen’t happen in the editor, but in the android device it’s awfull as time goes by moving up the light.
Its because Unity store wolrdPos of pixel in TEXCOORD, next calculate attenuation based on it. But Mali and i think some another hardware cant store so huge values in TECOORD, and more you move far from 0,0,0, more rectangle artifacts you have.
Ive made some shaders to fix it, works well on my hardware
Features:
View space shading (no artifacts)
1 directional and unlimited point\spot lights
Special grass attenuation
Limitations:
Ambient color only, no any gradiend, GI.
Only 1 directional light supported
No any cookie textures
No any shadows
No lightmaps