This is a file from the Wikimedia Commons

File:Prisms with high and low dispersion.png

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Original file(1,600 × 2,440 pixels, file size: 850 KB, MIME type: image/png)

Summary

Español: Dispersión de la luz en dos prismas de distinto material.

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.

 
This image was created with POV-Ray.
I, the copyright holder of this work, hereby publish it under the following licenses:
GNU head 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.
w:en:Creative Commons
attribution share alike
This file is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license.
You are free:
  • to share – to copy, distribute and transmit the work
  • to remix – to adapt the work
Under the following conditions:
  • attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.
This licensing tag was added to this file as part of the GFDL licensing update.
You may select the license of your choice.

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>
                 }
             }
         }
     }

Captions

Add a one-line explanation of what this file represents

Items portrayed in this file

depicts

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current14:22, 4 August 2012Thumbnail for version as of 14:22, 4 August 20121,600 × 2,440 (850 KB)Mornrendered at 1600x1200
16:53, 30 December 2005Thumbnail for version as of 16:53, 30 December 2005640 × 964 (224 KB)Peo~commonswikiTwo 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

Global file usage

The following other wikis use this file:

Metadata