File: shear.pov

package info (click to toggle)
povray 1%3A3.7.0.10-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 147,232 kB
  • sloc: cpp: 845,011; ansic: 122,118; sh: 34,204; pascal: 6,420; asm: 3,355; ada: 1,681; makefile: 1,389; cs: 879; awk: 590; perl: 245; xml: 95
file content (65 lines) | stat: -rw-r--r-- 1,846 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
// This work is licensed under the Creative Commons Attribution 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/
// or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View,
// California, 94041, USA.

// Persistence Of Vision Raytracer sample file.
// shear.pov
// Created by Fabien Mosen - April 8 2001
// This file demonstrates shearing the camera,
// to prevent 'falling buildings'.
//
// -w320 -h240 -uv
// -w800 -h600 +a0.3 -uv

// ********** IMPORTANT *******************
// Use ' -uv ' on the commandline,
// because, after aplying the matrix,
// the camera vectors are not
// perpendicular any more.

// update to 3.7 by Friedrich A. Lohmüller, Feb-2013

#version 3.7;
global_settings {assumed_gamma 1.0}

#include "colors.inc"
#include "camera-context.inc" //common file containing object definitions for the camera demos

#declare CamLoc= <0,1,25>;
#declare CamLook=<0,10,0>;

#declare S_angle=(CamLook.y-CamLoc.y)/CamLoc.z;

#declare Shear= transform {
   matrix <  1,  0,  0,
             0,  1,  -S_angle,
             0,  0,  1,
             0,  0,  0 >
}
camera {
        perspective //keyword is facultative in this case
        location CamLoc
        right     x*image_width/image_height
        angle 90
        transform Shear // comment out to see 'falling buildings'
        rotate <0,45,0>
        look_at CamLook
        }

box {<-15,0,-15>,<15,-1,15>
     pigment {checker White,Gray90 scale 5}
     finish {reflection {.1}}
     }

object {Cubes1 translate <5,0,-5>}
object {Cubes2 translate <9,8,-6>}
object {Cubes3 translate <-15,0,5>}
object {Cubes4 translate <-10,0,-5>}

sphere {<-2,3,14>,3 pigment {SteelBlue} finish {phong .2 reflection
.3}}

sky_sphere {pigment {rgb <0.859,0.910,0.831>}}

light_source {<100,120,130> White*2}