File:Prisms with high and low dispersion.png
Original file (1,600 × 2,440 pixels, file size: 850 KB, MIME type: image/png)
Captions
Summary
[edit]Two pictures of optical prisms; one (above) with a high degree of optical dispersion, and one (below) with a low dispersion. For each image, a different setting of the "Disp" variable in the code below to have each image show a different amount of optical dispersion.
Simulated using computer graphics, rendered using the Persistence of Vision Raytracer (POV-Ray). Everything made from scratch by Peo, originally for use in a few articles in danish Wikipedia.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
This file is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license. | ||
| ||
This licensing tag was added to this file as part of the GFDL licensing update.http://creativecommons.org/licenses/by-sa/3.0/CC BY-SA 3.0Creative Commons Attribution-Share Alike 3.0truetrue |
The code below was used to render each prism, and the two images was subsequently merged into this image in a photomanipulation application.
global_settings {
max_trace_level 64
max_intersections 1000
}
// "Disp" variable: Amount of dispersion: Looks reasonable
// from 2 (less) thru 6 (more dispersion), including both:
#declare Disp=6;
light_source {<-100,50,-30> color rgb .3}
light_source {<-150,120,-100> color rgb .3}
camera {
location <-4,5,-9>
look_at <3,-2,0>
angle 60
}
#local L1a = tan(Disp/180*pi);
#local L1b = 1.05+L1a*1.13;
#local L2a = -tan(Disp/180*pi);
#local L2b = .739+L2a*1.308;
#local SPLx = (L2b-L1b)/(L1a-L2a); // Center of radial rainbow pattern in the part of
#local SPLy = L1a*SPLx+L1b; // the light beam that's inside the prism.
#local TOPx = (3-L1b)/(L1a+1.73205087569);
#local TOPy = L1a*TOPx+L1b;
#local BOTx = (3-L2b)/(L2a+1.73205087569);
#local BOTy = L2a*BOTx+L2b;
#local TOPa = tan(radians(2*Disp-30));
#local TOPb = TOPy-TOPa*TOPx;
#local BOTa = tan(radians(-2*Disp-30));
#local BOTb = BOTy-BOTa*BOTx;
#local OUTx = (BOTb-TOPb)/(TOPa-BOTa);
#local OUTy = BOTa*OUTx+BOTb;
#local txtOff=texture {pigment {color rgb 1}} // Texture for unlit walls
#local txtFLT=texture {pigment { // Radial pattern to fake the "rainbow-
radial // illuminated" part of the wall and floor.
color_map {
[0.00 color rgb <.7,(1-Disp/10),1>] // Colors vary from all white
[0.20 color rgb <(1-Disp/10),(1-Disp/10),1>] // to the rainbow of saturated
[0.40 color rgb <(1-Disp/10),1,1>] // colors, depending on "Disp"
[0.60 color rgb <(1-Disp/10),1,(1-Disp/10)>] // setting.
[0.80 color rgb <1,1,(1-Disp/10)>]
[1.00 color rgb <1,(1-Disp/10),(1-Disp/10)>]
}
frequency int(90/Disp+.5) // Agular width - causes discrete intervals in width!
} finish {ambient .4}}
#local txtSTR=texture { // This texture encloses the above, "ranbow-illuminated"
radial // texture with zones at the red and purple ends where the
texture_map { // rainbow "fades out" into the invisible, and thus appa-
[0.00 txtOff] // rently unlit parts of the floor and walls.
[0.01 txtFLT]
[Disp/90-.01 txtFLT]
[Disp/90 txtOff]
[1.00 txtOff]
}
rotate <90,0,-30-2*Disp>
translate <OUTx,OUTy,0>
}
union { // The floor and walls in the scenery:
plane {<0,1,0>,-3.001} // Floor
plane {<-1,0,0>,-10} // Wall struck by colored light
plane {<0,0,-1>,-15} // Unlit wall in the background
texture { // This texture is the rainbow band in txtSTR inside a
gradient z // small strip along the triangular surfaces of the
texture_map { // prism, surrounded by zones where the light fades out
[0.000 txtOff] // into the dark gray, "unlit" texture.
[0.004 txtSTR]
[0.016 txtSTR]
[0.020 txtOff]
[1.000 txtOff]
}
translate <0,0,-.01>
scale <1,1,200>
}
}
difference { // The prism itself
box {<-10,-3,-2>,<10,3,2>} // Shape made from a box, "cut" into
plane {<0,-1,0>,-1.5 rotate <0,0,60>} // shape using two planes at 60* angles.
plane {<0,-1,0>,-1.5 rotate <0,0,-60>}
hollow on // Media stuff: The prism has an index
pigment {color rgbt <.8,1,.9,.7>} // of refraction (ior) of 1.66, and
finish {phong 1 reflection .1 ambient .3} // disperses colors according to the
interior {ior 1.66 dispersion 1+Disp/100} // "Disp" variable.
}
difference { // The narrow "sheet" of white light entering the prism from the left:
box {<-10,-.1,-1.5>,<1,.1,1.5> rotate <0,0,26.099> translate <-1,1,0>}
plane {<0,1,0>,1.5001 rotate <0,0,60>} // Box "cut" into shape with a plane.
hollow on // Media stuff: The beam shape itself is invisible, but
pigment {color rgbt 1} // contains an emitting media, giving the beam the
interior { // "fuzzy", translucent look.
media {
intervals 10 samples 1,1 confidence 0.9 variance 1.0/128
ratio 0.9 emission rgb .6 method 3
}
}
}
difference { // Part of the light beam inside the prism:
box {<-2,-2,-1.5>,<5,2,1.5>} // Box cut to shape
plane {<0,-1,0>,0 rotate <0,0,Disp> translate <-1.13,1.05,0>} // with planes, ac-
plane {<0,1,0>,0 rotate <0,0,-Disp> translate <-1.308,0.739,0>} // cording to the
plane {<0,-1,0>,-1.499 rotate <0,0,60>} // "Disp" variable
plane {<0,-1,0>,-1.499 rotate <0,0,-60>}
hollow on // Media stuff: The shape itself is invisible inside
pigment {color rgbt <1,1,1,1>} // the prism since it has the same ior; 1.66
finish {ambient .7}
interior {
ior 1.66 dispersion 1+Disp/100
media {
intervals 10 // number of intervals used for sampling [10]
samples 1,1 // minimum and maximum number of samples taken per interval [1,1]
confidence 0.9 // statistic parameter higher->better quality [0.9]
variance 1.0/128 // statistic parameter lower->better quality [1.0/128]
ratio 0.9 // distribution between lit and unlit areas [0.9]
emission rgb<1,.95,.85>*.4
method 3 // adaptive sampling
density {
radial
color_map { // Color spectrum in the beam inside the prism:
[0.00 color rgb <1,(1-Disp/10),(1-Disp/10)>*(1.5-.05*Disp)]
[0.20 color rgb <1,1,(1-Disp/10)> *(1.5-.05*Disp)]
[0.40 color rgb <(1-Disp/10),1,(1-Disp/10)>*(1.5-.05*Disp)]
[0.60 color rgb <(1-Disp/10),1,1> *(1.5-.05*Disp)]
[0.80 color rgb <(1-Disp/10),(1-Disp/10),1>*(1.5-.05*Disp)]
[1.00 color rgb <1,(1-Disp/10),1> *(1.5-.05*Disp)]
}
frequency int(180/Disp+.5)
rotate <-90,0,-Disp>
translate <SPLx,SPLy,0>
}
}
}
}
difference { // Part of the light beam exiting at the right-hand side of the prism:
box {<-5,-500,-1.5>,<500,5,1.5>} // Box cut to sha-
plane {<0,1,0>,1.5001 rotate <0,0,-60>} // pe using three
plane {<0,-1,0>,0 rotate <0,0,2*Disp-30> translate <TOPx,TOPy,0>} // planes.
plane {<0,1,0>,0 rotate <0,0,-2*Disp-30> translate <BOTx,BOTy,0>}
hollow on // Media stuff: Like the entering beam, this one's
pigment {color rgbt <1,1,1,1>} // shape is invisible, but contains emitting media
finish {ambient .7} // showing the rainbow "band" of colors
interior {
media {
intervals 10 samples 1,1 confidence 0.9 variance 1.0/128
ratio 0.9 emission rgb<1,.95,.85>*.4 method 3
density {
radial
color_map { // Color spectrum in the beam leaving the prism:
[0.00 color rgb <1,(1-Disp/10),(1-Disp/10)>*(.4-.01*Disp)]
[0.20 color rgb <1,1,(1-Disp/10)> *(.4-.01*Disp)]
[0.40 color rgb <(1-Disp/10),1,(1-Disp/10)>*(.4-.01*Disp)]
[0.60 color rgb <(1-Disp/10),1,1> *(.4-.01*Disp)]
[0.80 color rgb <(1-Disp/10),(1-Disp/10),1>*(.4-.01*Disp)]
[1.00 color rgb <.7,(1-Disp/10),1> *(.4-.01*Disp)]
}
frequency int(90/Disp+.5)
rotate <-90,0,-30-2*Disp>
translate <OUTx,OUTy,0>
}
}
}
}
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 14:22, 4 August 2012 | 1,600 × 2,440 (850 KB) | Morn (talk | contribs) | rendered at 1600x1200 | |
16:53, 30 December 2005 | 640 × 964 (224 KB) | Peo~commonswiki (talk | contribs) | Two pictures of optical prisms; one (above) with a high degree of optical dispersion, and one (below) with a low dispersion. Simulated using computer graphics, rendered using the Persistence of Vision Raytracer. Everything made from scratch by [[User:Peo |
You cannot overwrite this file.
File usage on Commons
The following 2 pages use this file:
File usage on other wikis
The following other wikis use this file:
- Usage on ast.wikipedia.org
- Usage on ca.wikipedia.org
- Usage on da.wikipedia.org
- Usage on en.wikibooks.org
- Usage on es.wikipedia.org
- Usage on es.wikibooks.org
- Usage on es.wikiversity.org
- Usage on es.wiktionary.org
- Usage on eu.wikipedia.org
- Usage on ext.wikipedia.org
- Usage on fi.wikipedia.org
- Usage on fr.wikibooks.org
- Usage on he.wikipedia.org
- Usage on he.wiktionary.org
- Usage on io.wikipedia.org
- Usage on io.wiktionary.org
- Usage on pl.wikipedia.org
- Usage on pt.wikibooks.org
- Usage on sl.wikipedia.org
Metadata
This file contains additional information such as Exif metadata which may have been added by the digital camera, scanner, or software program used to create or digitize it. If the file has been modified from its original state, some details such as the timestamp may not fully reflect those of the original file. The timestamp is only as accurate as the clock in the camera, and it may be completely wrong.
PNG file comment |
|
---|---|
Horizontal resolution | 28.35 dpc |
Vertical resolution | 28.35 dpc |
File change date and time | 14:19, 4 August 2012 |