From 7dd2b9e3696c1723f0cf30f6b82b3c61440d7ded Mon Sep 17 00:00:00 2001 From: Keuin Date: Wed, 20 Apr 2022 22:18:51 +0800 Subject: Bugfix: image is upside down. render result is inconsistent with previous versions (introduced in commit bfc5e815), because scan range in y-axis is slightly different from before. --- viewport.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/viewport.h b/viewport.h index 118ed9f..ea6c94b 100644 --- a/viewport.h +++ b/viewport.h @@ -111,7 +111,7 @@ public: assert(dot(r, v) < 1e-8); assert(dot(u, v) < 1e-8); // iterate over every pixel on the image - for (int j = -img_hh; j < img_hh; ++j) { // axis y, transformation is needed + for (int j = -img_hh + 1; j <= img_hh; ++j) { // axis y, transformation is needed for (int i = -img_hw; i < img_hw; ++i) { // axis x bias(bx, by); // get a random bias (bx, by) for sub-pixel sampling assert(0 <= bx); @@ -124,7 +124,7 @@ public: const auto dir = r + off; // direction vector from camera to current pixel on screen ray3d ray{cxyz, dir}; // from camera to pixel (on the viewport) const auto pixel = world.color(ray, ruvg); - const auto x_ = i + img_hw, y_ = j + img_hh; + const auto x_ = i + img_hw, y_ = -j + img_hh; image.set(x_, y_, pixel); #ifdef LOG_TRACE -- cgit v1.2.3