![WebGL Hotshot](https://wfqqreader-1252317822.image.myqcloud.com/cover/867/36704867/b_36704867.jpg)
Lights, camera, action!
"Lights, camera, action!" is an old Hollywood phrase to start filming, but it is just as applicable to interactive 3D graphics. So, let's add lights, cameras, and interactivity to our X3D scenes.
![Lights, camera, action!](https://epubservercos.yuewen.com/4EF78B/19470451401866806/epubprivate/OEBPS/Images/0919OS_01_03.jpg?sign=1739298070-Gf6DbssbLLVuaU5qlBpqikBxGpUkhP9R-0-d8193cc7d55c2c671c17a4da26ca2ed1)
Engage thrusters
This scene retains the first two objects created previously and adds a point light that can be thought of as a light bulb—a light from a single point emanating in all directions. We turned off the headlight inside the <NavigationInfo>
tag, and at the same time, restricted movement in the scene by setting type
to NONE
, simply to introduce this as part of the demo. At the same time, the <Viewpoint>
tag or camera is introduced with its default position
value, orientation
(rotation) value, and fieldOfView
value that defaults to π/4, that is, 0.785 radians. The added code is as follows:
<Scene> <NavigationInfo headlight="FALSE" type='"NONE"'/> <PointLight location="0 3 2"/> <Viewpoint position="0 0 10" orientation="0 0 1 0" fieldOfView=".785"/> <Transform …>
The point light is 3 units up and 2 units in front, so it clearly shines on the top of the box and to the left-hand side of the cone but not on the left-hand side of the box or the bottom of the cylinder.