Trying to make a better-looking globe model, I start off with something like this
To enhance the 3D effect, I want the lines further from the eye to be "grayer" than the lines closer to the eye, as if there were a little fog inside the sphere. I thought I might get there by replacing the great-circles with semi-transparent wafers, but it didn't work. It seems as though I hit some kind of internal limit on the number of semi-transparent objects I can create before they become opaque.
Here is the original code with polygonal great circles (minus the RGB-XYZ axes):
ClearAll[e, o, g, ϵ];
e[1] = {1, 0, 0}; e[2] = {0, 1, 0}; e[3] = {0, 0, 1};
o = {0, 0, 0}; g = 1.25; ϵ = 1/10000;
ClearAll[polycircle];
polycircle[n_: 360] :=
Line@Table[{Cos[2 π i/n], Sin[2 π i/n], 0}, {i, n + 1}];
ClearAll[globeGrid];
globeGrid[bands_: 6, figure_: polycircle[]] :=
{Table[
Scale[Translate[figure, Sin[(k π)/2] e[3]],
Cos[(k π)/2]]
, {k, -((bands - 1)/bands), (bands - 1)/bands, 1/bands}]
, Table[Rotate[Rotate[figure, π/2, e[1]], k π, e[3]]
, {k, 0, (bands - 1)/bands, 1/bands}]};
ClearAll[showFrames];
showFrames[figure_:polycircle[]] := Show[{
Graphics3D[{
Opacity[0.05], Sphere[], Opacity[1.0]
, globeGrid[6, figure]
}] }
, Axes -> True
, PlotRange -> {{-g, g}, {-g, g}, {-g, g}}
, ImageSize -> Large];
showFrames[]
To improve it, I replace the polycircles with partially transparent wafers, which are very thin cylinders at low opacity:
ClearAll[wafer];
wafer[opacity_: 1/24] :=
{RGBColor[1, 0.71, 0]
, Opacity[opacity]
, Cylinder[ϵ {-e[3], e[3]}]
, Opacity[1]};
The results were disappointing
showFrames[wafer[]]
EDIT: I tried a tube
polytorus[n_: 100] := Tube[polycircle[n], 0.01];
showFrames[polytorus[48]]
it's too slow to be interactive, but it has a better 3D effect. Still looking for a better answer.
ParametricPlot3D[{Cos[lat] Cos[lon], Cos[lat] Sin[lon], Sin[lat]}, {lat, -Pi/2, Pi/2}, {lon, -Pi, Pi}, PlotStyle -> {Opacity[0.7], White}, MeshStyle -> Black]
? i.sstatic.net/pPKE6.png $\endgroup$showFrames[wafer[]]
gives this, andshowFrames[{polycircle[],waver[]}]
gives this. I think the latter is what you wanted, right? BTW, I'm using version 8.0.0.0. $\endgroup$