MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Point light source demo

  • To: mathgroup at smc.vnet.net
  • Subject: [mg123274] Point light source demo
  • From: Chris Young <cy56 at comcast.net>
  • Date: Wed, 30 Nov 2011 03:19:33 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

Just experminenting with light sources to confirm that Mathematica
doesn't in fact do any shadowing of one object by another, or for that
matter, of the inside of an object by its surface.

I can see how it requires a lot of computation to compute all the
shadows of objects upon another. I suppose for simple cases we can get
around it by computing the projections. But for clarifying the
structure of cutaway objects, it would be a big help if the light were
at least blocked by the surface of the object.

http://home.comcast.net/~cy56/PointLightSource2.nb

http://home.comcast.net/~cy56/PointLightSource3.png


DynamicModule[
 {lightSrc,
  l1,
  l2,
  objects,
  opts},

 Manipulate[
  lightSrc =
   {lightR Cos[light\[Theta]] Sin[light\[Phi]],
    lightR Sin[light\[Theta]] Sin[light\[Phi]],
    lightR Cos[light\[Phi]]};

  objects = {
    {Opacity[sphrOpac], Sphere[{sphrX, sphrY, 0}, sphrR]},
    Cuboid[{1, 2, -1}, {2, 3, 1}],
    Cylinder[{{3, -1, 0}, {3, -1, 1}}]};

  opts = {
    Axes -> True,
    AxesLabel -> {"x", "y", "z"},
    BoxRatios -> Automatic,
    ImageSize -> {300, 300}};

  Row[
   {
    Graphics3D[
     objects,
     Lighting -> Automatic,
     opts
     ],
    Graphics3D[
     Append[
      objects,
      {Yellow, Lighting -> Automatic, Sphere[lightSrc, 0.1]}
      ],
     Lighting -> {{"Point", Yellow, lightSrc}},
     opts
     ]
    }
   ],

  {{sphrOpac, 0.5}, 0, 1},
  {{sphrX, 0}, -1, 1},
  {{sphrY, 0}, -1, 1},
  {{sphrR, 0.5}, 0, 1},
  {{lightR, 2}, 0, 4},
  {{light\[Theta], -3 \[Pi]/4}, -\[Pi], \[Pi]},
  {{light\[Phi], \[Pi]/2}, 0, \[Pi]}
  ]
 ]




  • Prev by Date: Re: Laplace equation with gradient boundary conditions
  • Next by Date: Re: What is the point of having Initializations in DynamicModule and Manipulate?
  • Previous by thread: Manipulate bug (?) when stepping by degrees?
  • Next by thread: Mixing multiple manipulate objects