I am using a shadow function, planarShadow, as shared by Prof. Jens Nöckel on Shadows of 3D plots and objects This function works perfectly while making sharp shadows. However, I want to make blurry shadows just like if one is using DropShadowing[1] in $2D$. In the above-shared link, he talked about how a blur effect in 3D can in principle be created by using another method he described here, which is very complicated for me.
planarShadow[x_, direction_, normal_, darkShadow_ : True] := Module[{d, n}, d = Normalize[direction]; n = Normalize[normal]; x /. Graphics3D[gr_, opts___] :> Graphics3D[{If[darkShadow, Black], GeometricTransformation[ If[darkShadow, gr /. {Glow[_] -> Glow[], r_?(MemberQ[{RGBColor, Hue, CMYKColor, GrayLevel}, Head[#]] &) -> Black}, gr], Composition[TranslationTransform[direction], Quiet[RotationTransform[{d, n}], {RotationMatrix::degen, RotationTransform::spln}], ScalingTransform[10^-3, d], Quiet@Check[ScalingTransform[1./(n . d), n - (n . d) d], Identity]]]}, opts]] With[{a = ParametricPlot3D[{(2 + Cos[\[Phi]])* Cos[\[Theta]], (2 + Cos[\[Phi]]) *Sin[\[Theta]], Sin[\[Phi]]}, {\[Theta], 0, 2 \[Pi]}, {\[Phi], 0, 2 \[Pi]}, Mesh -> None, Axes -> False, Boxed -> False]}, Show[a, planarShadow[a, {0, -0.5, -2}, {0, 0, 1}, True], PlotRange -> All]] How to edit the above function to get a blurry shadow? or is there any other way to achieve this?
Thank you



