|
|
Hello POVers!
Here is an attempt to media photons with refraction and reflection for my
own education. The result is quite satisfactory, but an artifact appears.
If follows the radius of the cylinder light. I tried many settings and
combinations, in vain. The artifact still remains. Any idea?
Thanks.
The code is small enough I can put it hereafter.
// Persistence of Vision Ray Tracer Scene Description File
// File: ?.pov
// Vers: 3.5
// Desc: Basic Scene Example
// Date: mm/dd/yy
// Auth: ?
//
#version 3.5;
#include "colors.inc"
#declare LIGHT_RADIUS = 1/2;
#declare PHOTON_SPACING = 1/100;
#declare PHOTON_MEDIA = 80;
global_settings {
assumed_gamma 1.0
max_trace_level 10
photons {spacing PHOTON_SPACING media PHOTON_MEDIA jitter 1}
}
// ----------------------------------------
camera {
location <0.0, 0.0, 0.0>
direction 1.5*z
right x*image_width/image_height
look_at <0.0, 0.0, 1.0>
translate -12*z
rotate 85*x
translate -z
}
light_source {
-200*z
color rgb 1*<1, 1, 1> // light's color
cylinder radius LIGHT_RADIUS falloff LIGHT_RADIUS point_at 0
photons {refraction on reflection on}
}
// ----------------------------------------
#declare O_Background = sphere
{
0, 1
hollow
pigment {color 0.05*White}
scale 100000
}
#declare O_Mirror = union
{
box {-1, 1 pigment {rgb 1} finish {reflection 1 ambient 0 diffuse 0
specular 0}}
box {-1.05, 1.05 translate 0.06*z pigment {Yellow}}
scale 0.1*z
}
#declare O_Lens = union
{
intersection
{
sphere {0.0, 2 translate 1.8*z}
sphere {0.0, 2 translate -1.8*z}
//hollow
pigment {rgbt 1}
finish {diffuse 0 ambient 0}
interior {ior 1.5 fade_color Red fade_distance 0.2 fade_power 1001}
}
}
#declare O_MediaContainer = box
{
-1, 1 scale LIGHT_RADIUS*y
pigment {rgbt 1}
hollow
scale 5
interior {media {samples 20*PHOTON_MEDIA*PHOTON_SPACING scattering {1,
0.3*White extinction 0}}}
}
object {O_Background}
object {O_Mirror scale 2 rotate 60 *y}
object {O_MediaContainer photons {target}}
object {O_Lens translate -4*z photons {target collect off refraction on
reflection on}}
// "Artifact" label
#declare O_Arrow = union
{
cylinder {0, z, 1/20}
cone {0, 1/6, z/2, 0 translate z}
}
#declare O_Label = text
{
ttf "arial.ttf" "Artifact"
0.1, 0
rotate 90*x
}
union
{
object {O_Arrow rotate 30*y translate z + 3*x}
object {O_Label}
pigment {Yellow}
finish {diffuse 0 ambient 1}
scale 1/3
translate -1.77*x -1.3*z
}
Post a reply to this message
Attachments:
Download 'mediaphotons.jpg' (30 KB)
Preview of image 'mediaphotons.jpg'
|
|