Reference Talk:Light Source
looks_like
Here is the current wording:
Normally the light source itself has no visible shape. The light simply radiates from an invisible point or area. You may give a light source any shape by adding a
looks_like {OBJECT}statement.There is an implied
no_shadowattached to thelooks_likeobject so that light is not blocked by the object. Without the automaticno_shadowthe light inside the object would not escape. The object would, in effect, cast a shadow over everything.If you want the attached object to block light then you should attach it with a
unionand not alooks_likeas follows:union { light_source { <100, 200, -300> color White } object { My_Lamp_Shape } }Presumably parts of the lamp shade are transparent to let some light out.
Here is my suggested wording:
Normally the light source itself has no visible shape. The light simply radiates from an invisible point or area. You may give a light source any shape by adding a
looks_like {OBJECT}statement.There is an implied
no_shadowattached to thelooks_likeobject so that light is not blocked by the object. Without the automaticno_shadowthe light inside the object would not escape. The object would, in effect, cast a shadow over everything.When creating the light source, the
looks_likeobject should be positioned at the origin. For instance:union { light_source { <100, 200, -300> color White } object { sphere { <0, 0, 0>, My_Lamp_Radius } } }Alternately, like this:
#declare My_Lamp_Shape = sphere { <0, 0, 0>, My_Lamp_Radius } light_source { <100, 200, -300> color White looks_like { My_Lamp_Shape } }For point lights and spotlights you could also place the light source and the
looks_likeobject at the origin and translate them later. But forparallellights this will not work.If you instead want the attached object to block light then you should attach it with a
unionand not alooks_likeas follows:union { light_source { <100, 200, -300> color White } object { My_Lamp_Shape } }Presumably parts of the lamp shade are transparent to let some light out.