E' sicuramente un problema di zbuffer. Su gm8.1 l'hanno reso più preciso ma... dovrebbe accadere il contrario, cioè che su gm8.0 sfarfalla e su gm8.1 no
L'alfa non centra nulla, è proprio un problema di conflitto di depth.
Dall'immagine non si capisce proprio benissimo l'effetto sfarfallio quindi vado a tasto.
Prova ad aumentare l'altezza delle ombre.
Guardando bene l'immagine mi viene da dire che le ombre fanno conflitto di depth sulle altre, la soluzione è quindi quella di dare un'altezza diversa(usi la coordinata Z per l'altezza?) ad ogni ombra, una soluzione banale ma efficacie e veloce e sopratutto che non ti fa fare alcun tipo di calcolo preventivo è sicuramente quella di una formula matematica che fa un'effetto onda(usando seno e coseno) nella quale ogni onda è grande quanto lo sprite(così alla stessa Z troviamo solo ombre sufficientemente distanti tra loro).
Un calcolo buttato la da testare è:
Codice: Seleziona tutto
var difference;
difference = cos(degtorad((x/360)/sprite_width))*cos(degtorad((y/360)/sprite_height));
z = difference * tot;
tot è un valore che decidi te, dovrà essere il più piccolo possibile ma se esageri ti ritorneranno quegli artefatti.
Una possibilità è che ora, a differenza di gm8.0(credo, magari lo è pure la) il depth buffer sfrutta i floating point quindi perde di qualità con numeri molto elevati. Una distanza massima dalla camera troppo vicina o troppo lontana potrebbe portare a quel problema(così come per la distanza minima), quindi vedi di aggiustare sempre la proiezione delimitando alla perfezione distanza max e min in base alle tue esigenze.
EDIT: Fake suggerisce di togliere l'hidden, io suggerisco piuttosto lo zwrite che in effetti è una soluzione piuttosto semplice. Il depth test è molto importante e non lo toglierei per una cosa simile ma solo quando se ne ha la stretta necessità.
Togliere lo zwrite elimina completamente i conflitti tra le ombre stesse pur facendo verifica di depth ma potrebbero comunque esserci artefatti se hanno la stessa altezza di altri elementi dello scenario tipo il pavimento.