public override void RenderScene(World world) { RGBColor pixelColor; Ray ray = new Ray(); double zw = 100.0; double x, y; Vector2 sp; Vector2 pp = new Vector2(); ray.origin = this.eye; Console.WriteLine("Number objects on scene = " + world.objects.Count); Console.WriteLine("Number lights on scene = " + world.lights.Count); Console.WriteLine("Render start - perspective camera"); for (int r = 0; r < height; r++) { if (r % 10 == 0) { Console.WriteLine("pika " + r); } for (int c = 0; c < width; c++) { pixelColor = RGBColor.BLACK; for (int j = 0; j < world.jittered.numSamples; j++) { sp = world.jittered.SampleUnitSquare(); double tmpPixelSize = 0.2; pp.x = tmpPixelSize * (c - 0.5 * width + sp.x); //zaczynamy od ćwiartki II, tak to -60 i -60, więc y odwrócone pp.y = tmpPixelSize * (r - 0.5 * height + sp.y); pp.y = pp.y * -1; ray.direction = RayDirection(pp); int depthRef = 0; pixelColor = pixelColor + world.tracer.ShadeRay(world, ray, ref depthRef); } pixelColor = pixelColor / world.jittered.numSamples; bitmap.SetPixel(c, r, RGBColor.StripColor(pixelColor)); } } bitmap.Save("renderPerspectiveBitmap.bmp"); Console.WriteLine("Finish render"); }
public override void RenderScene(Renderer.World world) { RGBColor pixelColor; Ray ray = new Ray(); double zw = 100.0; double x, y; Vector2 sp; Vector2 pp = new Vector2(); ray.direction = new Vector3(0, 0, -1); Console.WriteLine("Number objects on scene = " + world.objects.Count); Console.WriteLine("Number lights on scene = " + world.lights.Count); Console.WriteLine("Render start - orthogonal camera"); for (int r = 0; r < height; r++) { for (int c = 0; c < width; c++) { pixelColor = RGBColor.BLACK; for (int j = 0; j < world.jittered.numSamples; j++) { sp = world.jittered.SampleUnitSquare(); double tmpPixelSize = 0.2; pp.x = tmpPixelSize * (c - 0.5 * width + sp.x); //zaczynamy od ćwiartki II, tak to -60 i -60, więc y odwrócone pp.y = tmpPixelSize * (r - 0.5 * height + sp.y); pp.y = pp.y * -1; ray.origin = new Vector3(pp.x, pp.y, zw); int depthRef = 0; pixelColor = pixelColor + world.tracer.ShadeRay(world, ray, ref depthRef); } pixelColor = pixelColor / world.jittered.numSamples; //writeToFile.WriteLine( pixelColor.r + " " + pixelColor.g + " " + pixelColor.b); bitmap.SetPixel(c, r, RGBColor.StripColor(pixelColor)); } } bitmap.Save("renderBitmap.bmp"); Console.WriteLine("Finish render"); }