# How to make this 3D shape (ellipsoid) more realistic?

So I am trying to draw an ellipsoid, this is what I have so far: How can I make it more realistic (by improving the shadowing)?

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots,tikz-3dplot}
\makeatother
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
width=0.8\textwidth,
axis equal,
axis lines = center,
y label style={at={(axis cs:0,2,0)},anchor=west},
xlabel = {},
ylabel = {},
zlabel = {},
ticks=none,
colormap={}{ gray(0cm)=(0.8); gray(1cm)=(0);}
]
opacity = 0.3,
fill opacity=0.3,
surf,
variable = \u,
variable y = \v,
domain = 0:180,
y domain = 0:360,
point meta=u,
samples = 50,
]
({2*cos(u)*sin(v)}, {2*sin(u)*sin(v)}, {0.5*cos(v)});
\end{axis}

\node[] at (5.1,2.85) {$a$};
\node[] at (5,4) {$b$};
\node[] at (3.75,4) {$c$};
\end{tikzpicture}
\end{document}

• Using Asymptote ? See this discussion : tex.stackexchange.com/questions/230665/… – user101759 Mar 28 '16 at 17:02
• "How to make this 3D shape (ellipsoid) more realistic?" Make it the color of pigskin and place stitches on it. (a sports joke, of course). – Steven B. Segletes Mar 31 '16 at 17:31
• – alfC Apr 5 '16 at 7:37

Here is an approach using tikz-3dplot:

\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-3dplot}
%
\begin{document}
% sqare of half axes
\newcommand{\asa}{2}
\newcommand{\bsa}{0.5}
\newcommand{\csa}{0.5}
% view angle
\tdplotsetmaincoords{70}{135}
%
\begin{tikzpicture}[scale=2,tdplot_main_coords,line join=bevel,fill opacity=.8]
\pgfsetlinewidth{.1pt}
\tdplotsphericalsurfaceplot[parametricfill]{72}{36}%
{1/sqrt((sin(\tdplottheta))^2*(cos(\tdplotphi))^2/\asa+
(sin(\tdplottheta))^2*(sin(\tdplotphi))^2/\bsa + (cos(\tdplottheta))^2/\csa)} % function defining radius
{black} % line color
{2*\tdplottheta} % fill
{\draw[color=black,thick,->] (0,0,0) -- (2,0,0) node[anchor=north east]{$x$};}% x-axis
{\draw[color=black,thick,->] (0,0,0) -- (0,1.5,0) node[anchor=north west]{$y$};}% y-axis
{\draw[color=black,thick,->] (0,0,0) -- (0,0,1) node[anchor=south]{$z$};}% z-axis
\end{tikzpicture}
%
\end{document} EDIT

I played a bit with your code and found out, that there are two main problems. The first one is how you defined your ellipsoid and how the color map is applied to it and the second one is the shader. So I redefined the ellipsoid in Carthesian coordinates and played a bit with the different shaders. Actually for my taste none of them added something useful to the plot, but play with them yourself a bit (I left them commented out in the code). Next step would be to improve the axes, but I'm not an expert with pgf-plots, sorry for that. However, the option axis equal for the axis environment gives a warning for me and removing this option considerably changes the plot. You should check this.

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots,tikz-3dplot}
\makeatother
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
width=0.8\textwidth,
%axis equal,
axis lines = center,
x label style={at={(axis cs:3,0,0)},anchor=west},
y label style={at={(axis cs:0,4,0)},anchor=west},
z label style={at={(axis cs:0,0,1)},anchor=west},
xlabel = {a},
ylabel = {b},
zlabel = {c},
xmax=3,
ymax=4,
zmax=1,
ticks=none,
colormap={}{ gray(0cm)=(0.8); gray(1cm)=(0);}
]
fill opacity=0.7,
surf,
% As mentioned above, I don't think the shaders improve the plot, so I left them commented out. Feel free to play with them. Same holds true for the increased number of samples. 