|  | Home If you're new to Python and VPython: Introduction A VPython tutorial Pictures of 3D objects What's new Classic VPython web site VPython license Python web site |  |
Lighting |
You can light a scene with distant lights (which act like point-like lamps far from the scene) and/or local lights (point-like lamps near the scene, like the yellow light shown above). For a distant light you specify its direction from the origin. For a local light you specify its location in the scene. There is a list of all distant and local light objects, scene.lights. By default, scene.lights is this list: [distant_light(direction=vector(0.22, 0.44, 0.88), color=color.gray(0.8)), distant_light(direction=vector(-0.88, -0.22, -0.44), color=color.gray(0.3))] You can get rid of these default lights by setting the list to empty with scene.lights = []. In addition to these default distant lights, there is default ambient lighting in the form of scene.ambient=color.gray(0.2). The color of light objects and the amount of scene.ambient must be specified with some care, because if the total lighting intensity exceeds 1 anywhere in the scene the results are unpredictable. The following statement creates a local yellow light whose position is at (x,y,z), and if you continually update lamp.pos, the light will move. You may wish to place a sphere or box with material=materials.emissive at the same location so that the lamp looks like a glowing lamp. lamp = local_light(pos=vector(x,y,z), color=color.yellow) A distant red light located in the direction (x,y,z) from the origin is created like this: distant_light(direction=vector(x,y,z), color=color.red)