Пример #1
0
  public CornellBoxScene(int seed) {
    cameraPos = new DVector(0, 0, -1);

    ents = new Vector<Entity>();

    Random rand = new Random(1337 + seed);

    ambientlight = 1;

    // overhead light
    Entity object = new Sphere(new DVector(0, -102, 2), 100.003);
    object.lightlevel = 20;
    object.diffuse = 1;
    object.absorb_wavelength1 = 400;
    object.absorb_amount1 = 0;
    object.absorb_width1 = 200;
    ents.add(object);

    // planes

    // floor
    object = new Plane(new DVector(0, 2, 0), new DVector(0, -1, 0));
    object.lightlevel = 0;
    object.diffuse = 0.9;
    object.focus = 1;
    ents.add(object);

    // backwall
    object = new Plane(new DVector(0, 0, 6), new DVector(0, 0, -1));
    object.lightlevel = 0;
    object.diffuse = 0.9;
    object.focus = 0.1;
    ents.add(object);

    // ceiling
    object = new Plane(new DVector(0, -2, 0), new DVector(0, 1, 0));
    object.lightlevel = 0;
    object.diffuse = 0.9;
    object.focus = 0.1;
    ents.add(object);

    // leftwall
    object = new Plane(new DVector(-2, 0, 0), new DVector(1, 0, 0));
    object.lightlevel = 0;
    object.diffuse = 0.9;
    object.focus = 0.1;
    object.absorb_wavelength1 = 540;
    object.absorb_amount1 = 1;
    object.absorb_width1 = 50;
    ents.add(object);

    // rightwall
    object = new Plane(new DVector(2, 0, 0), new DVector(-1, 0, 0));
    object.lightlevel = 0;
    object.diffuse = 0.9;
    object.focus = 0.1;
    object.absorb_wavelength1 = 610;
    object.absorb_amount1 = 1;
    object.absorb_width1 = 50;
    ents.add(object);

    // props

    object = new Sphere(new DVector(1.0, 1.2, 5.0), 0.8);
    object.lightlevel = 0; // Math.round(rand.nextDouble()*0.8f)*5;
    object.diffuse = 0.9;
    object.focus = 5;
    object.absorb_wavelength1 = 0;
    object.absorb_amount1 = 0;
    object.absorb_width1 = 0;
    ents.add(object);

    object = new Sphere(new DVector(-0.5, 1.0, 4), 1);
    object.lightlevel = 0; // Math.round(rand.nextDouble()*0.8f)*5;
    object.diffuse = 0.9;
    object.focus = 1;
    object.absorb_wavelength1 = 0;
    object.absorb_amount1 = 0;
    object.absorb_width1 = 0;
    ents.add(object);
  }