Na wstępie wypadało by powiedzieć, że photons działają znacznie lepiej i dają dużo większe możliwości... jednak coś za coś, za lepszą jakość płacimy dłuższym czasem renderingu... Dla porównania dwa kody i czasy renderingu...
#version 3.6;
#declare Photons=on;
#include "Biblioteka/mc_piramida_kulek.inc"
global_settings {
assumed_gamma 1.0
max_trace_level 5
#if (Photons) // global photon block
photons {
 spacing 0.003 // specify the density of photons
 }

 #end
 }

 // ----------------------------------------

 camera {
 location <0,20.6,-25>
 look_at <0,2,0>
 angle 30
 }

 light_source {
 <500,500,150> // light's position
 color rgb 1.3 // light's color
 area_light <5,0,0>,<0,0,5>,7,7
 #if (Photons)
 photons { // photon block for a light source
 refraction on
 reflection on
 }
 #end
 }

 sky_sphere {
 pigment {
 gradient y
 color_map {
 [0.0 rgb <0.6,0.7,1.0>]
 [0.7 rgb <0.0,0.1,0.8>]
 }
 }
 }



 #declare M_Glass= // Glass material
 material {
 texture {
 pigment {rgbt 1}
 finish {
 ambient 0.0
 diffuse 0.05
 specular 0.6
 roughness 0.005
 reflection {
 0.1, 1.0
 fresnel on
 }
 conserve_energy
 }
 }
 interior {
 //caustics 1
 ior 1.5
 fade_power 1001
 fade_distance 0.9
 fade_color <0.5,0.8,0.6>
 }
 }

 object {
 mc_piramida_kluek(1,3,<0,0,0>,on, off, M_Glass) rotate y*-45
 #if (Photons)
 photons{
 target 1.0
 refraction on
 reflection on
 }
 #end
 }

 // -- PODŁOŻE
 plane { y, 0 texture { pigment { color rgb <1.0, 0.8, 0.6> } } }


A tak wygląda wyrenderowany obrazek (czas renderingu 2min).
A teraz z użyciem caustics
#version 3.6;
#include "Biblioteka/mc_piramida_kulek.inc"
global_settings {
assumed_gamma 1.0
max_trace_level 5
}
 // ----------------------------------------

 camera {
 location <0,20.6,-25>
 look_at <0,2,0>
 angle 30
 }

 light_source {
 <500,500,150> // light's position
 color rgb 1.3 // light's color
 area_light <5,0,0>,<0,0,5>,7,7
 }

 sky_sphere {
 pigment {
 gradient y
 color_map {
 [0.0 rgb <0.6,0.7,1.0>]
 [0.7 rgb <0.0,0.1,0.8>]
 }
 }
 }



 #declare M_Glass= // Glass material
 material {
 texture {
 pigment {rgbt 1}
 finish {
 ambient 0.0
 diffuse 0.05
 specular 0.6
 roughness 0.005
 reflection {
 0.1, 1.0
 fresnel on
 }
 conserve_energy
 }
 }
 interior {
 caustics 1
 ior 1.5
 fade_power 1001
 fade_distance 0.9
 fade_color <0.5,0.8,0.6>
 }
 }

 object {
 mc_piramida_kluek(1,3,<0,0,0>,on, off, M_Glass) rotate y*-45
 }

 // -- PODŁOŻE
 plane { y, 0 texture { pigment { color rgb <1.0, 0.8, 0.6> } } }

A tak wygląda wyrenderowany obrazek(czas renderingu 13sek)
 |