|
écran cylindrique companime
modification du logiciel POVray
|
#define CLASSNAMEPREFIX "Companime35"parse.cpp(1199):
CASE (COMPANIME_TOKEN)New->Type = COMPANIME_CAMERA; END_CASE
case
COMPANIME_CAMERA:
EXPECT CASE
(ANGLE_TOKEN)New->Angle = Parse_Float();
if (New->Angle< 0.0)
Error("Negative viewing angle.");
END_CASE
CASE5(PERSPECTIVE_TOKEN, ORTHOGRAPHIC_TOKEN, FISHEYE_TOKEN, ULTRA_WIDE_ANGLE_TOKEN, PANORAMIC_TOKEN)
CASE2(SPHERICAL_TOKEN, CYLINDER_TOKEN)
Expectation_Error("companime camera modifier");
END_CASE
OTHERWISE
UNGET
if(Parse_Camera_Mods(New) == false)
EXIT
END_CASE
END_EXPECT
break;
parse.cpp(1572):
CASE (COMPANIME_TOKEN)New->Type = COMPANIME_CAMERA; END_CASErender.cpp(2988):
/*
* Companime camera. ajouté par companime 15 decembre 2004
*/
case COMPANIME_CAMERA: //companime
/* Convert the x coordinate to be a DBL from -0.5 to 0.5. */
x0 = x / (DBL)Frame.Screen_Width - 0.5;
/* Convert the y coordinate to be a DBL from -0.5 to 0.5. */
//=====================================================================================================
y0 = ((DBL)Frame.Screen_Height*0.5 - 1.0 - y) / (DBL)Frame.Screen_Width *1.3333;
#define of 160.0
double k2, w, zn, t2;
w=0.5;
t2=
x0*x0/(w*w);if(t2>1.0) t2=1.0;
zn = 600.0/(4.0+sqrt(1.0-t2));
k2 = 0.4 * zn/(of-zn);
x0*=k2;
y0*=k2;
#undef of
//=====================================================================================================
/* Create primary ray.
*/VLinComb3(Ray->Direction, 1.0, FCD, x0, FCR, y0, FCU);
/* Do focal blurring (by Dan Farmer). */
if (Focal_Blur_Is_Used)
{
jitter_camera_ray(Ray, ray_number);
initialize_ray_container_state(Ray, true);
}
else
{
initialize_ray_container_state(Ray, Precompute_Camera_Constants);
Precompute_Camera_Constants = false;
}
break; //companime fin
tokenize.cpp(467):
{COMPANIME_TOKEN, "companime"}, //---- ajout Companime