File: ess-ortho-camera.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 (97 lines) | stat: -rw-r--r-- 2,741 bytes parent folder | download | duplicates (7)
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
// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/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.
// Demo for extreme super-sampling using the mesh_camera.
// See the README.txt file for more information.

/*********************************************************************************************
 * $File: //depot/povray/smp/distribution/scenes/camera/mesh_camera/ess/ess-ortho-camera.pov $
 * $Revision: #1 $
 * $Change: 5407 $
 * $DateTime: 2011/02/21 15:33:00 $
 * $Author: jholsenback $
 ********************************************************************************************/
#version 3.7;

global_settings { assumed_gamma 1.0 }

#include "colors.inc"
#include "stones.inc"

#local camera_width = 4;
#local camera_height = camera_width * image_height / image_width;
#local px_inc = camera_width / image_width; // Distance between vertices in the mesh
#local py_inc = camera_height / image_height;
// Our camera is orthographic
#declare ca_mesh =
  mesh {
    #local row_count = 0;
    #while (row_count < image_height)
      #local col_count = 0;
      #local d_y = camera_height - 2*py_inc - row_count * py_inc;
      #while (col_count < image_width)
        #local d_x = col_count * px_inc;
        triangle {
          <d_x, d_y, 0>
          <d_x + px_inc, d_y + py_inc, 0>
          <d_x + px_inc, d_y, 0>
        }
        #local col_count = col_count + 1;
      #end
      #local row_count = row_count + 1;
    #end
  }

#declare sampleCount = 10;

// Our sample grid per pixel is sampleCount by sampleCount.
// In other words, sampleCount is the square root of the number of samples per pixel.
camera {
  mesh_camera {
    sampleCount * sampleCount
    0 // distribution #0 averages values from multiple meshes as described
    #local i = 0;
    #while(i < sampleCount)
      #local j = 0;
      #while(j < sampleCount)
        mesh {
          ca_mesh
          translate <(i / sampleCount - .5)*px_inc, (j / sampleCount - .5)*py_inc, 0>
          translate <-camera_width/2, -camera_height/2, -10>
        }
        #local j = j + 1;
      #end
      #local i = i + 1;
    #end
  }
}

light_source {
			 <2, 4, -3>
			 color White
}

sphere {
	   <0, 0, 0>, 1
	   texture {
	   		   T_Stone25
			   scale 4
	   }
}

#local i = 0;
#while(i < 10)
		 #local j = 0;
		 #while(j < 10)
		 		  sphere {
		 	   	  		 <1+i/10, j/10, 0>, .001
						 texture {
						 		 pigment {color White*2}
			   			 }
         		  }
		 		  #local j = j + 1;
		 #end
		 #local i = i + 1;
#end