Here's why. I am (rendering) Mathematica 11 graphics with a package - which does about all I want before release except the BoxRatio question (which can be given by opts, but would be nicer if Automatic).
In[1470]:= Remove[x, y, z, x2, y2, z2, light, transp, amb, diff, \
extLight, size, frames, k]
In[1471]:= transp = .4;
light = 0.604;
amb = 0;
diff = 1;
extLight = False;
size = 1024;
{x, y, z} = {1, .001, 4};
{y2, z2} = {0.04, 0.88};
frames = 15;
In[1480]:= g = Graphics3D[{
Text["rayshade-mathematica\nversion 11.0", {.2, 0, 0}, {0, 0}],
{Glow[Yellow], RayInput["@ @ @ noshadow"], Sphere[{0, 0, 0}]},
{
Opacity[.4], RGBColor[.4, .4, 0],
Specularity[RGBColor[.8, .8, .8], 80],
RayInput["@ @ @ reflect .4 index 1.1"],
Sphere[{0, 0, .1}]
},
Blue, Specularity[RGBColor[.8, .8, .8], 60],
RayInput["@ @ @ reflect .5"],
Cuboid[{-1, -1, -1}, {1, 1, -.999}]}];
In[1494]:= Remove[list, x2, k];
In[1495]:=
list = Table[
Rayshade["r.orig.ray",
g /. {Opacity[.4] -> Opacity[transp],
Sphere[{0, 0, 0}] -> Sphere[1.2 {x2, y2, z2}, .1]},
RayDefaultSurface -> extLight, RayShow -> False,
RayWatch -> False,
ViewVector -> {z vprot[x, y] + rayshade`Private`boxcenter,
rayshade`Private`boxcenter},
RaySize -> {size, size}, RayRGBAdjust -> {amb, diff},
LightSources -> {{{x2/frames, y2, z2},
RGBColor[light 1.2, light 1.2, light]}},
RayExtLight -> extLight, PlotRange -> {{-1, 1}, {-1, 1}, {-1, 1}},
PlotRangeClipping -> False, AspectRatio -> 1,
BoxRatios -> {1, 1, 1}, RayTubeLines -> True,
RayFastLight -> Not[extLight], RayRadiusExt -> .1], {x2,
Join[Table[k, {k, -.3 frames, .7 frames}],
Table[k, {k, .7 frames, -.3 frames, -1}]]}];
In[1496]:= Length@list
Out[1496]= 32
In[1497]:= If[Length@list >= frames, Export["Rayshade.gif", list];
Remove[list]]
Out[1211]= Manipulate[rayshade`Rayshade["r.orig.ray",
g /. {Opacity[0.4] -> Opacity[transp], Sphere[{0, 0, 0}] ->
Sphere[1.2*{x2, y2, z2}, 0.1]}, rayshade`RayDefaultSurface -> \
extLight,
rayshade`RayShow -> False, rayshade`RayWatch -> False,
ViewVector -> {z*vprot[x, y] + rayshade`Private`boxcenter,
rayshade`Private`boxcenter}, rayshade`RaySize -> {size, size},
rayshade`RayRGBAdjust -> {amb, diff}, LightSources ->
{{{x2, y2, z2}, RGBColor[light*1.2, light*1.2, light]}},
rayshade`RayExtLight -> extLight, PlotRange ->
{{-1, 1}, {-1, 1}, {-1, 1}}, PlotRangeClipping -> False,
AspectRatio -> 1, BoxRatios -> {1, 1, 1}, rayshade`RayTubeLines -> \
True,
rayshade`RayFastLight -> !extLight, rayshade`RayRadiusExt -> 0.1],
{{x, 1, "rotate"}, -2*Pi, 2*Pi}, {{y, 0.0009999999999725784, \
"height"},
-1.5715821178538232, 1.5715821178538232}, {{z, 4, "zoom"}, -8, 8}, \
{{x2, 0.7, "lights x"}, -4, 4}, {{y2, -0.7000000000000002, "lights \
y"}, -8,
8}, {{z2, 0.88, "lights z"}, -4, 4}, {{light, 0.604, 0.604}, \
0.001, 1},
{{transp, 0.44, "transparency"}, 0.01, 1}, {{amb, 0, "ambience"}, \
0, 5},
{{diff, 1, "diffusion"}, 0, 5}, {{extLight, False, "Area Light"},
{False, True}}, {{size, 128, "size"}, 64, 4096},
SynchronousUpdating -> False, TrackedSymbols :>
{x, y, z, x2, y2, z2, light, transp, amb, diff, extLight, size}]