For non-convex objects non-overlapping transparency is not easily doable. However, you could try to render the object last (for example with a second NOSKY (?) view), then transmit the OutPos from the vertex shader to the pixel shader, import it as ProjTex and

ProjTex.xy = ProjTex.xy/ProjTex.z;
ProjTex.xy = ProjTex.xy*0.5 + 0.5;
ProjTex.y = 1.0-ProjTex.y;

use the transformed ProjTex to get the current pixel on the model on the screen and thus camera.bmap position. Now tex2D that content and you can realize improved transparency, i.e. by calculating your default Color pixel shader output and lerp() it with the ProjTex-camera.bmap result (I do something similar in my side-scroller).

Btw. in my game I've simply created a noise texture and randomize two noise values each frame which I use as a tex2D offset, this gives an acceptable noise with little to no effort and performance impact.


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends