3d emulation with tikz
Here is an option using shade
and the ball
preset
\documentclass[tikz,margin=0.5cm]{standalone}
\begin{document}
\begin{tikzpicture}
\pgfmathsetseed{3}
\shade [ball color=blue!70] plot [smooth cycle, samples=8,domain={1:8}]
(\x*360/8+5*rnd:0.5cm+1cm*rnd);
\end{tikzpicture}
\end{document}
Some more examples
\documentclass[tikz,margin=0.5cm]{standalone}
\begin{document}
\begin{tikzpicture}
\pgfmathsetmacro{\S}{3}
\foreach \X in {1,...,3}{
\foreach \Y in {1,...,3}{
\begin{scope}[shift={(\S*\X,\S*\Y)}]
\shade [ball color=blue!70] plot [smooth cycle, samples=8,domain={1:8}]
(\x*360/8+5*rnd:0.5cm+1cm*rnd);
\end{scope}
}
}
\end{tikzpicture}
\end{document}
A very small addendum to Milo's great answer: sometimes you want the bright spot not to be where \shade[ball color=...]...
puts it. You could either define your own shading, or, what is perhaps simpler, clip a circle with a shifted center against that shape. The following animation is supposed to give you an idea what's possible. In the end, you will have to decide on your own what looks realistic, or switch to asymptote
, which computes realistic shadings for you.
\documentclass[tikz,margin=0.5cm]{standalone}
\begin{document}
\foreach \X in {1,2,...,42}
{\begin{tikzpicture}
\pgfmathsetseed{\X}
\path[use as bounding box] (-4,-4) rectangle (4,4);
\clip plot [smooth cycle, samples=8,domain={1:8}]
(\x*360/8+5*rnd:0.5cm+1cm*rnd);
\shade [ball color=blue!70] (0.5+rnd,-0.5+rnd) circle (3cm);
\end{tikzpicture}}
\end{document}