File: lights.html

package info (click to toggle)
python-visual 1%3A5.12-1.6
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, stretch
  • size: 7,708 kB
  • ctags: 7,635
  • sloc: cpp: 15,593; sh: 9,615; ansic: 6,631; python: 4,737; makefile: 384
file content (152 lines) | stat: -rw-r--r-- 8,954 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/visual/Templates/template.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>lights</title>
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<link href="VisualRef.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.style2 {font-size: x-large}
.style2 {font-size: xx-large}
-->
</style>
<style type="text/css">
<!--
.style6 {
	font-size: 10
}
-->
</style>
<!-- InstanceEndEditable -->
<script type="text/javascript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
//-->
</script>
<link href="VisualRef.css" rel="stylesheet" type="text/css" />
</head>

<body>
<table width="800" border="0" cellpadding="0" cellspacing="0">
  <!--DWLayoutDefaultTable-->
  <tr>
    <td width="10" valign="top" bgcolor="#FFFFFF"><!--DWLayoutEmptyCell-->&nbsp;</td>
    <td width="10" height="272" valign="top" bgcolor="#DDDDDD"><p>&nbsp;</p>    </td>
    <td width="173" valign="top" bgcolor="#DDDDDD"><p class="Normal"><a href="index.html">Home</a></p>
      <p class="Normal">If you're new to Python <br />
      and VPython: <a href="VisualIntro.html">Introduction</a></p>
      <p class="Normal">A VPython <a href="VPython_Intro.pdf" target="_blank">tutorial</a></p>
      <p class="Normal"><a href="primitives.html">Pictures</a> of 3D objects</p>
      <p class="Normal">Choose a 3D object:</p>
        <select name="jumpMenu4" id="jumpMenu4" onchange="MM_jumpMenu('parent',this,0)">
          <option>Choose an object</option>
          <option value="cylinder.html">Overview</option>
          <option value="arrow.html">arrow</option>
          <option value="box.html">box</option>
          <option value="cone.html">cone</option>
          <option value="convex.html">convex</option>
          <option value="curve.html">curve</option>
          <option value="cylinder.html">cylinder</option>
          <option value="ellipsoid.html">ellipsoid</option>
          <option value="faces.html">faces</option>
          <option value="frame.html">frame</option>
          <option value="helix.html">helix</option>
          <option value="label.html">label</option>
          <option value="lights.html">lights</option>
          <option value="points.html">points</option>
          <option value="pyramid.html">pyramid</option>
          <option value="ring.html">ring</option>
          <option value="sphere.html">sphere</option>
        </select>
        
      <p class="Normal">Work with 3D objects:</p>
        <select name="jumpMenu4" id="jumpMenu5" onchange="MM_jumpMenu('parent',this,0)">
          <option>Choose an option</option>
          <option value="color.html">Color &amp; Opacity</option>
          <option value="lights.html">Lighting</option>
          <option value="materials.html">Materials &amp; Textures</option>
          <option value="defaults.html">Defaults</option>
          <option value="rate.html">Animation Speed</option>
          <option value="rotation.html">Rotations</option>
          <option value="options.html">Additional Options</option>
          <option value="delete.html">Delete an Object</option>
          <option value="float.html">3/4 = 0?</option>
        </select>
        
      <p class="Normal">Windows, Events, &amp; Files:</p>
        <select name="jumpMenu4" id="jumpMenu6" onchange="MM_jumpMenu('parent',this,0)">
          <option>Choose a topic</option>
          <option value="display.html">Windows</option>
          <option value="lights.html">Lighting</option>
          <option value="mouse.html">Mouse Events</option>
          <option value="mouse_click.html">&nbsp;&nbsp;&nbsp;Mouse Click</option>
          <option value="mouse_drag.html">&nbsp;&nbsp;&nbsp;Mouse Drag</option>
          <option value="keyboard.html">Keyboard Events</option>
          <option value="controls.html">Buttons and Sliders</option>
          <option value="files.html">Reading/Writing Files</option>
        </select>
        
      <p class="Normal"><a href="vector.html">Vector operations </a></p>
      <p class="Normal"><a href="graph.html">Graphs</a></p>
    <p class="Normal"><a href="factorial.html">factorial/combin</a></p>
    <p class="Normal">What's new in <a href="new_features.html">Visual 5</a></p>
    <p class="Normal"><a href="http://vpython.org" target="_blank">VPython web site</a><br />
      <a href="license.txt" target="_blank">Visual license</a><br />
      <a href="http://www.python.org" target="_blank">Python web site</a> <br />
      <a href="http://www.python.org/doc/2.5.2/lib/module-math.html" target="_blank">Math module</a> (sqrt etc.)<br />
    <a href="http://www.scipy.org/Documentation" target="_blank">Numpy module</a> (arrays)    </p></td>
    <td width="21" valign="top" bgcolor="#FFFFFF"><!--DWLayoutEmptyCell-->&nbsp;</td>
    <td width="586" rowspan="2" valign="top"><!-- InstanceBeginEditable name="content" -->
      <div>
        <table width="100%" border="1">
          <tr>
            <td width="76%"><div align="center"><span class="style2"><font color="#0000A0">Lighting</font></span></div></td>
            <td width="24%"><img src="images/material_etc.jpg" alt="material etc" width="334" height="235" /></td>
          </tr>
        </table>
        <p class="Normal">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.</p>
        <p class="Normal"><span class="attributes">There is a list of all distant and local light
            objects, </span><span class="attribute">scene.lights</span><span class="attributes">. By default, </span><span class="attribute">scene.lights</span><span class="attributes"> is this list:<br />
                        </span></p>
        <p class="program style6"> [distant_light(direction=(0.22, 0.44, 0.88), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color=color.gray(0.8)),<br />
  &nbsp;distant_light(direction=(-0.88, -0.22, -0.44),
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color=color.gray(0.3))]</p>
        <p class="Normal"><span class="attributes">          These are equivalent to the default lights in Visual prior to version
          5. </span>You can get rid of these default lights by setting the list to empty with <span class="attribute">scene.lights
              = []</span>.</p>
        <p class="Normal">In addition to these default distant lights, there is default ambient lighting in the form of <font color="#FF0000">scene.ambient=color.gray(0.2)</font>; for compatibility with earlier versions of Visual, this can 
        be expressed as scene.ambient=0.2, but now the ambient light can be specified as any color you want. The
          color of light objects and the amount of <font color="#FF0000">scene.ambient</font> must
          be specified with some care, because if the total lighting intensity
        exceeds 1 anywhere in the scene the results are unpredictable.</p>
        <p class="Normal">The following statement creates a local yellow light whose <em>position</em> 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 <span class="attribute">material=materials.emissive</span> at the same location so that the lamp looks like a glowing lamp.</p>
        <p class="program"> lamp = local_light(pos=(x,y,z), color=color.yellow)</p>
        <p class="Normal">A distant red light located in the <em>direction</em> (x,y,z) from the origin is created like this:</p>
        <p class="program">distant_light(direction=(x,y,z), color=color.red)</p>
        <p class="Normal"> Previous to Visual  5, you set
          up a light by specifying a vector  in the direction to the light
          from the origin, and the magnitude of the  vector was the intensity.
          For example, <span class="attribute">scene.lights 
            = [vector(1,0,0)]</span> with <span class="attribute">scene.ambient
              = 0</span> would light the scene with full intensity from the right
          side, with no ambient  lighting. In Visual 
          5 and later, this scheme for specifying  lights still works, but
        this compatibility syntax actually creates distant_light objects.</p>
      </div>
      <div> </div>
    <!-- InstanceEndEditable --></td>
  </tr>
  <tr>
    <td height="16" colspan="4"></td>
  </tr>
</table>
</body>
<!-- InstanceEnd --></html>