On 09/09/2010 12:02 PM, james.fo...@diamond.ac.uk wrote:
Dear R community (and Duncan more specifically),
I can't work out how to make additional light sources work in rgl.
Here is the example.
First I create a cube and visualize it:
> cubo<- cube3d(col="black")
> shade3d(cubo)
Next I position the viewpoint at theta=0 and phi=30:
> view3d(theta=0,phi=30)
Next, I want to create a 2nd light source which diffuses red light from the
front face. I thought I could do:
>light3d(diffuse="red",theta=0,phi=0)
but...the front side doesn't show any red-iness. Same goes for specular and
ambient.
What am I doing wrong here? How should the fron side show in red colour?
Black doesn't reflect anything, so that's why you're not seeing the
red. Colour the cube white, and you'll see it turn pink when you turn
the red light on, or red if you turn off the default light first (using
rgl.pop("lights")).
Be aware that OpenGL (underlying rgl) has a fairly complicated lighting
model. When you say col="black", you're only setting the "ambient"
colour, i.e. the colour that appears the same in all directions. (It
won't be the same on all faces of the cube, because the intensity
depends on the incoming light.) There is also a "specular" component,
which makes things appear shiny, because it's brighter from some
viewpoints than others. It is normally white. Finally there's an
"emission" component, which doesn't care about lighting, but is normally
turned off.
Lights also have 3 components, "ambient" (non-directional), "diffuse"
(somewhat directional), and "specular" (highly directional).
Duncan Murdoch
J
Dr James Foadi PhD
Membrane Protein Laboratory (MPL)
Diamond Light Source Ltd
Diamond House
Harewell Science and Innovation Campus
Chilton, Didcot
Oxfordshire OX11 0DE
Email : james.fo...@diamond.ac.uk
Alt Email: j.fo...@imperial.ac.uk
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.