Add possibility to play with focal length and aperture to the camera. Not enabled by default.

This commit is contained in:
Godzil
2020-03-17 00:23:16 +00:00
parent 9849c16f66
commit 61ce9d3543
4 changed files with 36 additions and 9 deletions

View File

@@ -21,6 +21,10 @@ private:
double halfWidth;
double halfHeight;
public:
double focalDistance;
double apertureSize;
uint32_t rayCount;
uint32_t verticalSize;
uint32_t horizontalSize;
double fieldOfView;
@@ -29,9 +33,9 @@ public:
Matrix inverseTransform;
public:
Camera(uint32_t hsize, uint32_t vsize, double fov);
Camera(uint32_t hsize, uint32_t vsize, double fov, double focal = 1, double aperture = 0, uint32_t rayCount = 1);
void setTransform(Matrix transform);
Ray rayForPixel(uint32_t pixelX, uint32_t pixelY);
Ray rayForPixel(uint32_t pixelX, uint32_t pixelY, double horzOffset = 0, double vertOffset = 0);
Canvas render(World w, uint32_t depth = 5);
};

View File

@@ -22,6 +22,7 @@ double min3(double a, double b, double c);
double max3(double a, double b, double c);
double frand();
double frandclip(double min, double max);
static double modulo(double a, double b)
{