#include "colors.inc" // camera camera { location -20*z + 20*x + 10*y direction 8*z up y right 4/3*x look_at 0*x + 1.5*y } // / x^2 z^2 \ // | ----- + ----- | * (x^2 + y^2 + z^2) - 2y (x^2 + z^2) = 0 // \ r1 r2 / // where r1 > r2 > 0 // // Note that since x = z = 0 (the y-axis) lies on the surface, // a box is used in cut off the two infinite segments of the y-axis // The y-range of this box is 0 to 2r1 quartic { // x^4 x^3y x^3z x^3 x^2y^2 < 1, 0, 0, 0, 1, // x^2yz x^2y x^2z^2 x^2z x^2 0, -3, 2.5, 0, 0, // xy^3 xy^2z xy^2 xyz^2 xyz 0, 0, 0, 0, 0, // xy xz^3 xz^2 xz x 0, 0, 0, 0, 0, // y^4 y^3z y^3 y^2z^2 y^2z 0, 0, 0, 1.5, 0, // y^2 yz^3 yz^2 yz y 0, 0, -3, 0, 0 // z^4 z^3 z^2 z Const 1.5, 0, 0, 0, 0 > sturm pigment { color Yellow } finish { diffuse 0.5 phong 0.5 phong_size 50 } clipped_by { box { < -10, 0, -10 >, < 10, 3, 10 > } } } background { color SkyBlue } // light source light_source { < 0, 100, -50 > color White } light_source { < 0, 100, 0 > color White } light_source { < 0, -100, 0 > color Gray60 }