POV-Ray

This ray tracer is quite unique in that it doesn’t rely on triangle meshes: you rather make objects from precise shapes, in a convenient language.

Sadly, I’ve quickly run into its limitations, partly demonstrated by the subsequent example:

Failed caustics
// povray +A Antialias_Threshold=0 +Q11 example.pov
#version 3.7;
#include "glass.inc"

global_settings { max_trace_level 100 assumed_gamma srgb
	photons { count 1000000 } }

camera { location <2.5, 2.5, -5> look_at <0, 0, 0> }
light_source { <-5, 5, -5> color srgb<2, 2, 2>
	area_light <5, 0, 0>, <0, 5, 0>, 5, 5 jitter circular orient }
plane { <0, 1, 0>, -1.5 finish { ambient .3 }
	pigment { checker color srgb<0.5, 0.6, 0.7> * 1.2,
		color srgb<0.75, 0.6, 0.45> * 1.2 } }

#declare Pill = texture {
	pigment { color srgbft<0.6, 0, 0.35, 1.3, 0> }
	finish { F_Glass7 reflection { 0.01, 0.75 fresnel on }
		roughness 0.002 } }
sphere { <0, 0, +2>, 1 scale <1.6, 1, 1> texture { Pill }
	interior { I_Glass } photons { target refraction on } }
sphere { <0, 0, -1>, 1 scale <1.6, 1, 1> texture { Pill }
	interior { I_Glass caustics 0.5 } }

POV-Ray will certainly find its use, even today when it’s no longer being developed, but do not expect photorealism, and consider designing your scenes in other programs.

Comments

Use e-mail or webchat. I'll also pick up on new Hacker News, Lobsters, and Reddit posts.