So I’ve got some nice fast cloud volumes, all lovely and fluffy with some dipole scatter approximation for getting some dynamic lighting:
So far so good.
A technique I would now normally use to cast dynamic shadows is to use a clip()/alphatest shadow casting pass to blat the Z into the shadow depth map.
However, trying that in unity, I seem to hit a brick wall. There appears to be some artificial hard-coded clause if there’s any potential that it’s transparent, then disable ALL shadow path’s. This is the case when using both a surface shader with addshadow and alpha pragma, and also a cg shader when explicitly using another pass:
Name “ShadowCaster”
Tags { “Queue”=“Geometry” “RenderType”=“Opaque” “LightMode” = “ShadowCaster” }
Can somebody please confirm/deny if this is the case? @Aras - I’m looking at you buddy!
Hopefully artificial limitations like this haven’t been introduced on purpose ![]()

