public void build() { DestroyRenderAreaTexture(); texture = new Texture2D(200, 200); GameObject.Find("ViewRectangle").GetComponent <MeshRenderer> ().material.mainTexture = texture; vp = new ViewPlane(texture.width, texture.height, 1.0f, 256); background_color = Constants.black; tracer_ptr = new RayCastTracer(this); Jittered jit = new Jittered(256); AmbientOccluder ambocl = new AmbientOccluder(); ambocl.scale_radiance(1.0f); ambocl.set_color(Constants.white); ambocl.set_minAmount(Constants.black); ambocl.SetSampler(jit); set_ambient_light(ambocl); PerspectiveCamera pinhole_ptr1 = new PerspectiveCamera(); pinhole_ptr1.set_eye(new Vector3(0, 0, 500)); pinhole_ptr1.set_lookat(Vector3.zero); pinhole_ptr1.set_view_distance(600.0f); pinhole_ptr1.compute_uvw(); set_camera(pinhole_ptr1); Directional directional = new Directional(); directional.set_color(new Color(1, 1, 1, 1)); directional.set_direction(new Vector3(-1, -1, 0)); directional.cast_shadows = true; directional.scale_radiance(3.0f); add_light(directional); Matte mat_ptr = new Matte(); mat_ptr.set_ka(0.25f); mat_ptr.set_kd(0.65f); mat_ptr.set_cd(new Color(1, 1, 0, 1)); Sphere sphere = new Sphere(); sphere.sphereCenter = new Vector3(0, 0, 0); sphere.sphereRad = 20.0f; sphere.set_material(mat_ptr); Instance sphereInst = new Instance(sphere); sphereInst.set_material(mat_ptr); add_object(sphereInst); sphereInst.set_identity(); sphereInst.Shear(1.15f, 0.6f, 1.2f, 1.8f, 2.2f, 2.4f); render_scene(); }
public void build() { DestroyRenderAreaTexture(); texture = new Texture2D(200, 200); GameObject.Find("ViewRectangle").GetComponent <MeshRenderer> ().material.mainTexture = texture; vp = new ViewPlane(texture.width, texture.height, 1.0f, 1); vp.max_depth = 5; background_color = Constants.white; tracer_ptr = new Whitted(this); Jittered jit = new Jittered(1); AmbientOccluder ambocl = new AmbientOccluder(); ambocl.scale_radiance(1.0f); ambocl.set_color(Constants.white); ambocl.set_minAmount(Constants.black); ambocl.SetSampler(jit); set_ambient_light(ambocl); PerspectiveCamera pinhole_ptr1 = new PerspectiveCamera(); pinhole_ptr1.set_eye(new Vector3(0, 0, 500)); pinhole_ptr1.set_lookat(Vector3.zero); pinhole_ptr1.set_view_distance(600.0f); pinhole_ptr1.compute_uvw(); set_camera(pinhole_ptr1); Directional directional = new Directional(); directional.set_color(new Color(1, 1, 1, 1)); directional.set_direction(new Vector3(-1, -1, 0)); directional.cast_shadows = true; directional.scale_radiance(3.0f); add_light(directional); Dielectric mat_ptr = new Dielectric(); mat_ptr.set_eta_in(0.8f); mat_ptr.set_eta_in(1.2f); mat_ptr.set_cf_in(new Color(0.0f, 1.0f, 0.8f, 1)); mat_ptr.set_cf_out(new Color(0.75f, 1.0f, 0.4f, 1)); mat_ptr.set_ks(0.5f); mat_ptr.set_exp(100.0f); mat_ptr.set_ior(1.2f); Sphere sph = new Sphere(); sph.sphereCenter = Vector3.zero; sph.sphereRad = 1.0f; sph.set_material(mat_ptr); Instance sphInst = new Instance(sph); sphInst.set_material(mat_ptr); add_object(sphInst); sphInst.set_identity(); sphInst.Scale(40, 40, 1); sphInst.Translate(0.0f, 0.0f, -60); Dielectric mat_ptr1 = new Dielectric(); mat_ptr.set_eta_in(0.2f); mat_ptr.set_eta_in(0.4f); mat_ptr1.set_cf_in(new Color(0.0f, 1.0f, 0.0f, 1)); mat_ptr1.set_cf_out(new Color(0.75f, 1.0f, 0.0f, 1)); mat_ptr1.set_ks(0.8f); mat_ptr1.set_exp(100.0f); mat_ptr1.set_ior(1.52f); Rectangle rect1 = new Rectangle(Vector3.zero, new Vector3(1, 0, 0), new Vector3(0, 1, 0)); rect1.set_material(mat_ptr1); Instance rect1Inst = new Instance(rect1); rect1Inst.set_material(mat_ptr1); add_object(rect1Inst); rect1Inst.set_identity(); rect1Inst.Scale(80, 80, 1); rect1Inst.Translate(-40, -40, 0.0f); render_scene(); }