PovRay memo
Sphere
sphere{ <x,y,z>, // center r // radius pigment{} finish{} }
Cylinder
cylinder{ <x,y,z>, // bottom coordinate <x,y,z>, // top coordinate r // radius open // Adding this removes both end faces pigment{} finish{} }
Cone (used to make the tip of an arrow)
cone{ <x,y,z>, // bottom coordinate r // bottom radius <x,y,z>, // top coordinate r // top radius open // Adding this removes both end faces pigment{} finish{} }
Line segment (used to connect multiple spheres)
object{ sphere_sweep{ linear_spline, // How to connect spheres. There are also cubic_spline and b_spline n, // number of spheres <x,y,z>, // sphere 1 coordinate r // sphere 1 radius <x,y,z>, // sphere 2 coordinate r // sphere 2 radius ... pigment{} } finish{} }
Isosurface
object{ isosurface{ function{f(X,Y,Z)} // f(X,Y,Z)=0 is plotted contained_by{box{<x1,y1,z1>,<x2,y2,z2>}}, // plotting region open // Adding this makes open surface accuracy // accuracy max_gradient // maximum slope pigment{} } finish{} }
Surfaces with mediating variables
object{ parametric{ function{x(u,v)}, function{y(u,v)}, function{z(u,v)}, <u1,v1>,<u2,v2> contained_by{box{<x1,y1,z1>,<x2,y2,z2>}}, // plotting region accuracy // accuracy max_gradient // maximum slope pigment{} } finish{} }
Color handling
Finish handling
Commonly used color mappings
pigment{
function{f(X,Y,Z)} // 0 < f < 1
color_map{[0 color Blue] [0.33 color Green] [0.66 color Yellow] [1 color Red]}
}
make background image transparent and png output
background{rgbt<0,0,0,1>}and add +FN and +UA at output. For example
povray hoge.pov +FN +UA
Specify size of output image
For example, for a 500x400 imagepovray hoge.pov +H500 +W400
Example of repetitive syntax
#declare Q=0; #declare dQ=0.01; #while (Q<100) #declare P=Q*dQ; something with P #declare Q=Q+1; #end
Shadows bother me
In Povray, depending on the position of the light source and object, the shadow of one object may be cast on another object. If this is a concern, you can prevent the shadow from being cast by giving no_shadow to the object that casts the shadow.Aligning camera aspect ratio
location <camera position> look_at <look at position> right <0,1,0> up <0,0,1>