Lights¶
The image above shows a white sphere illuminated by a green distant light (at upper right) and a red local light (lower left).
Objects in a VPython scene must be illuminated to be visible. There can be three kinds of lighting in a VPython scene:
Distant lights–point-like lights far away (like the Sun)
Local lights–lights close to the objects in the scene
Ambient light–uniform diffuse light that illuminates all objects equally
Some care must be taken in changing the illumination in a scene, since if the total lighting intensity exceeds 1 anywhere in the scene the results are unpredictable.
distant_light¶
- distant_light(direction=vec(0, - 1, 0), color=color.orange)¶
- Parameters:
direction (vector) – A vector specifying the direction of the light relative to the origin
color (vector) – The color of the light emitted.
By default there are automatically two distant lights in a VPython scene.
One distant_light has direction < 0.22, 0.44, 0.88> and is a slightly dim white: color.white*0.8
The second distant_light has direction < -0.88, -0.22, -0.44> and is a dimmer white: color.white*0.3
local_light¶
- local_light(pos=vec(- 3, 1, - 2), color=color.yellow)¶
- Parameters:
pos (vector) – The location of the local_light.
color (vector) – The color of the light emitted.
A local light can look like a lamp if you put an emissive object at the location of the light.
scene.ambient¶
By default the ambient light is very dim, with color color.white*0.2. You can set scene.ambient to any color, but note that if the total light intensity becomes greater than 1, results may be unpredictable.
scene.lights¶
scene.lights is a list of the lights in the scene. To see the attributes of the lights:
for i in range( 0, len(scene.lights) ):
LL = scene.lights[i]
print( LL.pos, LL.direction, LL.color )
For a distant_light, pos will be undefined, as will direction for a local_light.
To delete all lights from a scene, set scene.lights to an empty list:
scene.lights=[]
Color of lights¶
If you create a light that is not white, what you see may be very different. A green light can make a white sphere look green and a red sphere look very dark (since the red sphere absorbs green light).