public Raytracing( Canvas canvas, Scene scene, V3 cameraPos, int maxDepth ) : base(canvas, scene, cameraPos) { MaxDepth = maxDepth; }
public Raycasting(Canvas canvas, Scene scene, V3 cameraPos) : base(canvas, scene, cameraPos) { }
public ZBuffer(Canvas canvas, Scene scene) : base(canvas, scene) { Data = new float[Canvas.Width,Canvas.Height]; clear(); }
public static void Populate(Scene scene) { // Objects Rectangle leftWall = new Rectangle( center: new V3(0, 250, 250), va: new V3(0, 500, 0), vb: new V3(0, 0, 500), material: new PhongMaterial( color: new Color(0.8f, 0.0f, 0.0f), kA: 1.0f, kD: 0.7f, kS: 0.0f, shininess: 0, reflection: 0.0f, transparency: 0.0f, refractiveIndex: 1.0f ) ); Rectangle rightWall = new Rectangle( center: new V3(800, 250, 250), va: new V3(0, -500, 0), vb: new V3(0, 0, 500), material: new PhongMaterial( color: new Color(0.1f, 0.1f, 0.8f), kA: 1.0f, kD: 0.7f, kS: 0.0f, shininess: 0, reflection: 0.0f, transparency: 0.0f, refractiveIndex: 1.0f ) ); Rectangle backWall = new Rectangle( center: new V3(400, 500, 250), va: new V3(800, 0, 0), vb: new V3(0, 0, 500), material: new PhongMaterial( color: Color.White, bumpMap: new Texture( textureFile: "bump38.jpg", tileUV: new V2(1.5f, 1.5f) ), kBump: 0.5f, kA: 1.0f, kD: 0.7f, kS: 0.0f, shininess: 0, reflection: 0.0f, transparency: 0.0f, refractiveIndex: 1.0f ) ); Rectangle floor = new Rectangle( center: new V3(400, 250, 0), va: new V3(800, 0, 0), vb: new V3(0, 500, 0), material: new PhongMaterial( color: Color.White, kA: 1.0f, kD: 0.7f, kS: 0.0f, shininess: 0, reflection: 0.0f, transparency: 0.0f, refractiveIndex: 1.0f ) ); Rectangle ceiling = new Rectangle( center: new V3(400, 250, 500), va: new V3(-800, 0, 0), vb: new V3(0, 500, 0), material: new PhongMaterial( color: Color.White, kA: 1.0f, kD: 0.7f, kS: 0.0f, shininess: 0, reflection: 0.0f, transparency: 0.0f, refractiveIndex: 1.0f ) ); Sphere s1 = new Sphere( center: new V3(250, 400, 75), radius: 75, material: new PhongMaterial( color: new Color(0.5f, 0.5f, 0.5f), kA: 1.0f, kD: 0.0f, kS: 0.7f, shininess: 100, reflection: 1.0f, transparency: 0.0f, refractiveIndex: 1.0f ) ); Sphere s2 = new Sphere( center: new V3(650, 400, 50), radius: 50, material: new PhongMaterial( color: new Color(0.1f, 0.8f, 0.0f), kA: 1.0f, kD: 0.5f, kS: 0.7f, shininess: 100, reflection: 0.0f, transparency: 0.0f, refractiveIndex: 1.0f ) ); Sphere s3 = new Sphere( center: new V3(700, 200, 75), radius: 75, material: new PhongMaterial( color: new Color(0.5f, 0.5f, 0.5f), kA: 1.0f, kD: 0.5f, kS: 0.7f, shininess: 100, reflection: 0.0f, transparency: 0.9f, refractiveIndex: 1.1f ) ); Sphere s4 = new Sphere( center: new V3(110, 100, 100), radius: 100, material: new PhongMaterial( color: Color.Green, texture: new Texture("lead.jpg"), bumpMap: new Texture("lead_bump.jpg"), kBump: 1.0f, kA: 1.0f, kD: 0.7f, kS: 0.5f, shininess: 40, reflection: 0.0f, transparency: 0.0f, refractiveIndex: 1.0f ) ); // Lights AmbientLight aL = new AmbientLight( new Color(0.3f, 0.3f, 0.3f) ); PointLight pL = new PointLight( new Color(1.0f, 1.0f, 1.0f), new V3(400, 250, 450) ); // Populate scene.Objects.Add(leftWall); scene.Objects.Add(rightWall); scene.Objects.Add(backWall); scene.Objects.Add(floor); scene.Objects.Add(ceiling); scene.Objects.Add(s1); scene.Objects.Add(s2); scene.Objects.Add(s3); scene.Objects.Add(s4); scene.Lights.Add(pL); scene.Lights.Add(aL); }
public Renderer(Canvas canvas, Scene scene) { Canvas = canvas; Scene = scene; }