-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathlights.html
More file actions
156 lines (152 loc) · 8.92 KB
/
Copy pathlights.html
File metadata and controls
156 lines (152 loc) · 8.92 KB
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
153
154
155
156
<!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="/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--> </td>
<td width="10" height="272" valign="top" bgcolor="#DDDDDD"><p> </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 an 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="extrusion.html">extrusion</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>
<option value="text.html">text</option>
</select>
<p class="Normal">Work with objects:</p>
<select name="jumpMenu4" id="jumpMenu5" onchange="MM_jumpMenu('parent',this,0)">
<option>Choose an option</option>
<option value="color.html">Color/Opacity</option>
<option value="materials.html">Materials/Textures</option>
<option value="shapes.html">Shapes Library</option>
<option value="paths.html">Paths Library</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>
<option value="controls.html">Buttons/Sliders</option>
<option value="graph.html">Graphs</option>
<option value="lights.html">Lighting</option>
<option value="files.html">Read/Write Files</option>
<option value="trail.html">Leaving a Trail</option>
<option value="vector.html">Vector Operations </option>
<option value="factorial.html">factorial/combin</option>
</select>
<p class="Normal">Windows & Events:</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="mouse.html">Mouse Events</option>
<option value="mouse_click.html"> Mouse Click</option>
<option value="mouse_drag.html"> Mouse Drag</option>
<option value="keyboard.html">Keyboard Events</option>
</select>
<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--> </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), color=color.gray(0.8)),<br />
distant_light(direction=(-0.88, -0.22, -0.44),
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>