From 5bea9a70aa43b9a9ccc1c892255890d3df2339b8 Mon Sep 17 00:00:00 2001 From: Nicholas Bottone Date: Wed, 13 Dec 2023 01:33:39 -0500 Subject: Add image saving functionality --- src/raytracer/raytracer.cpp | 17 ++++++++++++++++- src/raytracer/raytracer.h | 1 + src/settings.h | 3 +++ 3 files changed, 20 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/raytracer/raytracer.cpp b/src/raytracer/raytracer.cpp index d9d467d..66a6f73 100644 --- a/src/raytracer/raytracer.cpp +++ b/src/raytracer/raytracer.cpp @@ -68,7 +68,17 @@ void RayTracer::render(RGBA *imageData, const RayTraceScene &scene) { } } } - settings.rotation += 0.5f; + + if (settings.bulkOutputFilePath.size() > 0) { // means we are doing bulk rendering + // save the image to the bulk directory + std::string filePath = settings.bulkOutputFilePath + QDir::separator().toLatin1() + std::to_string(settings.currentTime) + ".png"; + saveViewportImage(filePath); + if (settings.currentTime < settings.maxTime) { // still more to render + // render the next frame + settings.currentTime++; + emit settingsChanged(m_imageLabel); // emit to allow the UI to update then render the next frame + } + } } @@ -197,6 +207,7 @@ void RayTracer::settingsChanged(QLabel* imageLabel) { QImage image = QImage(576, 432, QImage::Format_RGBX8888); image.fill(Qt::black); RGBA *data = reinterpret_cast(image.bits()); + m_imageData = data; imageLabel->setPixmap(QPixmap::fromImage(image)); return; } @@ -288,3 +299,7 @@ void RayTracer::keyReleaseEvent(QKeyEvent *event) { m_keyMap[Qt::Key(event->key())] = false; } +void RayTracer::saveViewportImage(std::string filePath) { + QImage image = QImage((uchar *) m_imageData, 576, 432, QImage::Format_RGBX8888); + image.save(QString::fromStdString(filePath)); +} diff --git a/src/raytracer/raytracer.h b/src/raytracer/raytracer.h index cf32a99..da4ec2d 100644 --- a/src/raytracer/raytracer.h +++ b/src/raytracer/raytracer.h @@ -177,6 +177,7 @@ public: int m_depth; QImage m_image; + void saveViewportImage(std::string filename); signals: void xyRotationChanged(float value); void xzRotationChanged(float value); diff --git a/src/settings.h b/src/settings.h index 1d9e358..0865e44 100644 --- a/src/settings.h +++ b/src/settings.h @@ -15,6 +15,9 @@ struct Settings { float rotation = 0.f; bool negative = false; float w = 0.f; + int currentTime = 0; + int maxTime = 0; + std::string bulkOutputFilePath; }; -- cgit v1.2.3-70-g09d2 From 8337f9b0b63e2e63b714acd5d24b622d7330cbc2 Mon Sep 17 00:00:00 2001 From: sotech117 Date: Wed, 13 Dec 2023 01:37:06 -0500 Subject: get W slider to compute quickly --- cmake-build-release/.ninja_deps | Bin 265104 -> 272640 bytes cmake-build-release/.ninja_log | 126 +++++---------------- cmake-build-release/Testing/Temporary/LastTest.log | 4 +- cmake-build-release/projects_ray | Bin 350681 -> 350681 bytes src/accelerate/myqtconcurrent.cpp | 49 ++++---- 5 files changed, 55 insertions(+), 124 deletions(-) (limited to 'src') diff --git a/cmake-build-release/.ninja_deps b/cmake-build-release/.ninja_deps index b282309..1dd70c6 100644 Binary files a/cmake-build-release/.ninja_deps and b/cmake-build-release/.ninja_deps differ diff --git a/cmake-build-release/.ninja_log b/cmake-build-release/.ninja_log index 05a15b7..0536d40 100644 --- a/cmake-build-release/.ninja_log +++ b/cmake-build-release/.ninja_log @@ -1,101 +1,37 @@ # ninja log v5 -154 260 1702447781315410879 projects_ray 45fbfe11691b47a4 -39 1392 1702447466513612837 CMakeFiles/projects_ray.dir/src/accelerate/myqtconcurrent.cpp.o 202e3ecc659447bc -1991 2750 1702446595544090623 CMakeFiles/projects_ray.dir/src/aliasing/filter.cpp.o 9dee6d99978c214 -1839 2530 1702446595324513579 CMakeFiles/projects_ray.dir/src/aliasing/supersample.cpp.o 856523a4b6d122f7 -675 2432 1702446595224556920 CMakeFiles/projects_ray.dir/src/utils/scenefilereader.cpp.o 5dbf3687fca6fb -1692 2383 1702446595176643525 CMakeFiles/projects_ray.dir/src/accelerate/myqthreads.cpp.o 1275de63f43c05f3 -1278 2008 1702446594802049344 CMakeFiles/projects_ray.dir/src/illuminate/shadow.cpp.o 976dc05943374640 -1759 2452 1702446595244689767 CMakeFiles/projects_ray.dir/src/utils/raytracerutils.cpp.o 2155c0e78af65352 -6 36 1702447781092833495 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f -41 777 1702447518128546572 CMakeFiles/projects_ray.dir/src/illuminate/illuminate.cpp.o 36fb1526130d4f10 -43 702 1702447733820987971 CMakeFiles/projects_ray.dir/src/intersect/intersect.cpp.o d2b1593379e5dcda -38 1198 1702447670100699535 CMakeFiles/projects_ray.dir/src/raytracer/raytracer.cpp.o 19b4d88ef40a6db1 -2008 2351 1702446595146034010 CMakeFiles/projects_ray.dir/src/vec4ops/vec4ops.cpp.o d7fc6a03a78a11b2 -757 1692 1702446594485292649 CMakeFiles/projects_ray.dir/src/utils/sceneparser.cpp.o e6ffba0ae97d5386 -435 675 1702446593470170245 CMakeFiles/projects_ray.dir/src/settings.cpp.o af593dd8c38f8a51 -436 757 1702446593552201990 CMakeFiles/projects_ray.dir/src/camera/camera.cpp.o ae395a7ba55f31e0 -2351 3149 1702446595943941675 CMakeFiles/projects_ray.dir/src/accelerate/bvh.cpp.o 58a267a27bf597a8 -40 153 1702447781208318596 CMakeFiles/projects_ray.dir/src/vec4ops/transform4d.cpp.o 7e5d8f712f75efb4 -434 1369 1702446594162602358 CMakeFiles/projects_ray.dir/src/mainwindow.cpp.o 8a94e9f3bb65e6ba -1494 2174 1702446594966067875 CMakeFiles/projects_ray.dir/src/texture/texture.cpp.o ee619672f0183b37 -437 1140 1702446593933045264 CMakeFiles/projects_ray.dir/src/intersect/normals.cpp.o dc9fbf174942b6a6 -434 1494 1702446594287021479 CMakeFiles/projects_ray.dir/src/main.cpp.o 94fb23c1a8b2c56c -434 1237 1702446594030720700 CMakeFiles/projects_ray.dir/projects_ray_autogen/mocs_compilation.cpp.o 1ad68196f2f117c1 -2383 3031 1702446595825027072 CMakeFiles/projects_ray.dir/src/vec4ops/rotations4d.cpp.o cad2614c6119bd5e -6 36 1702447781092833495 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -437 1278 1702446594071361222 CMakeFiles/projects_ray.dir/src/raytracer/raytracescene.cpp.o 4a558d7c0ab76c07 -1369 2042 1702446594835637032 CMakeFiles/projects_ray.dir/src/illuminate/reflect.cpp.o 899987bee3f68062 -6 36 1702447781092833495 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f +6 34 1702449218043095899 projects_ray_autogen/timestamp 55fca76aac650d2f 2174 2962 1702446595756054008 CMakeFiles/projects_ray.dir/src/accelerate/kdtree.cpp.o cef03b69fda1011b -6 36 1702447781092833495 projects_ray_autogen/timestamp 55fca76aac650d2f -7 36 1702447876162640983 projects_ray_autogen/timestamp 55fca76aac650d2f -7 36 1702447876162640983 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -7 36 1702447876162640983 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f -7 36 1702447876162640983 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f +6 34 1702449218043095899 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f +1369 2042 1702446594835637032 CMakeFiles/projects_ray.dir/src/illuminate/reflect.cpp.o 899987bee3f68062 +437 1278 1702446594071361222 CMakeFiles/projects_ray.dir/src/raytracer/raytracescene.cpp.o 4a558d7c0ab76c07 +6 34 1702449218043095899 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f +2383 3031 1702446595825027072 CMakeFiles/projects_ray.dir/src/vec4ops/rotations4d.cpp.o cad2614c6119bd5e +434 1237 1702446594030720700 CMakeFiles/projects_ray.dir/projects_ray_autogen/mocs_compilation.cpp.o 1ad68196f2f117c1 +434 1494 1702446594287021479 CMakeFiles/projects_ray.dir/src/main.cpp.o 94fb23c1a8b2c56c +437 1140 1702446593933045264 CMakeFiles/projects_ray.dir/src/intersect/normals.cpp.o dc9fbf174942b6a6 +1494 2174 1702446594966067875 CMakeFiles/projects_ray.dir/src/texture/texture.cpp.o ee619672f0183b37 +2351 3149 1702446595943941675 CMakeFiles/projects_ray.dir/src/accelerate/bvh.cpp.o 58a267a27bf597a8 40 161 1702447876286034325 CMakeFiles/projects_ray.dir/src/vec4ops/transform4d.cpp.o 7e5d8f712f75efb4 +434 1369 1702446594162602358 CMakeFiles/projects_ray.dir/src/mainwindow.cpp.o 8a94e9f3bb65e6ba +436 757 1702446593552201990 CMakeFiles/projects_ray.dir/src/camera/camera.cpp.o ae395a7ba55f31e0 +435 675 1702446593470170245 CMakeFiles/projects_ray.dir/src/settings.cpp.o af593dd8c38f8a51 +757 1692 1702446594485292649 CMakeFiles/projects_ray.dir/src/utils/sceneparser.cpp.o e6ffba0ae97d5386 39 370 1702447876494799413 CMakeFiles/projects_ray.dir/src/vec4ops/vec4ops.cpp.o d7fc6a03a78a11b2 -370 483 1702447876607801960 projects_ray 45fbfe11691b47a4 -7 36 1702447916659752703 projects_ray_autogen/timestamp 55fca76aac650d2f -7 36 1702447916659752703 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -7 36 1702447916659752703 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f -7 36 1702447916659752703 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -39 748 1702447917368247128 CMakeFiles/projects_ray.dir/src/intersect/intersect.cpp.o d2b1593379e5dcda -748 858 1702447917479893607 projects_ray 45fbfe11691b47a4 -7 35 1702448001491012178 projects_ray_autogen/timestamp 55fca76aac650d2f -7 35 1702448001491012178 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -7 35 1702448001491012178 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f -7 35 1702448001491012178 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -39 733 1702448002185128979 CMakeFiles/projects_ray.dir/src/intersect/intersect.cpp.o d2b1593379e5dcda -39 755 1702448002207572799 CMakeFiles/projects_ray.dir/src/illuminate/illuminate.cpp.o 36fb1526130d4f10 39 1214 1702448002665166546 CMakeFiles/projects_ray.dir/src/raytracer/raytracer.cpp.o 19b4d88ef40a6db1 -1214 1320 1702448002774601344 projects_ray 45fbfe11691b47a4 -7 35 1702448120988874182 projects_ray_autogen/timestamp 55fca76aac650d2f -7 35 1702448120988874182 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -7 35 1702448120988874182 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f -7 35 1702448120988874182 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -39 708 1702448121658543104 CMakeFiles/projects_ray.dir/src/illuminate/illuminate.cpp.o 36fb1526130d4f10 -708 815 1702448121767005954 projects_ray 45fbfe11691b47a4 -6 34 1702448235479913482 projects_ray_autogen/timestamp 55fca76aac650d2f -6 34 1702448235479913482 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -6 34 1702448235479913482 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f -6 34 1702448235479913482 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f +39 733 1702448002185128979 CMakeFiles/projects_ray.dir/src/intersect/intersect.cpp.o d2b1593379e5dcda 38 759 1702448236200489389 CMakeFiles/projects_ray.dir/src/illuminate/illuminate.cpp.o 36fb1526130d4f10 -38 1419 1702448236859769517 CMakeFiles/projects_ray.dir/src/accelerate/myqtconcurrent.cpp.o 202e3ecc659447bc -1419 1530 1702448236974515960 projects_ray 45fbfe11691b47a4 -7 36 1702448417410612702 projects_ray_autogen/timestamp 55fca76aac650d2f -7 36 1702448417410612702 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -7 36 1702448417410612702 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f -7 36 1702448417410612702 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -39 1382 1702448418751854474 CMakeFiles/projects_ray.dir/src/accelerate/myqtconcurrent.cpp.o 202e3ecc659447bc -1382 1489 1702448418861828677 projects_ray 45fbfe11691b47a4 -7 34 1702448478936101300 projects_ray_autogen/timestamp 55fca76aac650d2f -7 34 1702448478936101300 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -7 34 1702448478936101300 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f -7 34 1702448478936101300 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -38 1368 1702448480265570567 CMakeFiles/projects_ray.dir/src/accelerate/myqtconcurrent.cpp.o 202e3ecc659447bc -1368 1476 1702448480376740774 projects_ray 45fbfe11691b47a4 -7 35 1702448673408163296 projects_ray_autogen/timestamp 55fca76aac650d2f -7 35 1702448673408163296 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -7 35 1702448673408163296 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f -7 35 1702448673408163296 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -39 1377 1702448674744974068 CMakeFiles/projects_ray.dir/src/accelerate/myqtconcurrent.cpp.o 202e3ecc659447bc -1377 1484 1702448674855052237 projects_ray 45fbfe11691b47a4 -7 36 1702448731330339182 projects_ray_autogen/timestamp 55fca76aac650d2f -7 36 1702448731330339182 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -7 36 1702448731330339182 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f -7 36 1702448731330339182 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -39 1383 1702448732673030331 CMakeFiles/projects_ray.dir/src/accelerate/myqtconcurrent.cpp.o 202e3ecc659447bc -1383 1487 1702448732780397288 projects_ray 45fbfe11691b47a4 -6 35 1702448805865948465 projects_ray_autogen/timestamp 55fca76aac650d2f -6 35 1702448805865948465 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -6 35 1702448805865948465 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f -6 35 1702448805865948465 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -39 1360 1702448807186145761 CMakeFiles/projects_ray.dir/src/accelerate/myqtconcurrent.cpp.o 202e3ecc659447bc -1360 1469 1702448807298618522 projects_ray 45fbfe11691b47a4 -7 34 1702448878474139565 projects_ray_autogen/timestamp 55fca76aac650d2f -7 34 1702448878474139565 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -7 34 1702448878474139565 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f -7 34 1702448878474139565 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f -38 1337 1702448879772065006 CMakeFiles/projects_ray.dir/src/accelerate/myqtconcurrent.cpp.o 202e3ecc659447bc -1337 1444 1702448879882062135 projects_ray 45fbfe11691b47a4 +6 34 1702449218043095899 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f +1388 1493 1702449219500349612 projects_ray 45fbfe11691b47a4 +1759 2452 1702446595244689767 CMakeFiles/projects_ray.dir/src/utils/raytracerutils.cpp.o 2155c0e78af65352 +1692 2383 1702446595176643525 CMakeFiles/projects_ray.dir/src/accelerate/myqthreads.cpp.o 1275de63f43c05f3 +675 2432 1702446595224556920 CMakeFiles/projects_ray.dir/src/utils/scenefilereader.cpp.o 5dbf3687fca6fb +1839 2530 1702446595324513579 CMakeFiles/projects_ray.dir/src/aliasing/supersample.cpp.o 856523a4b6d122f7 +1278 2008 1702446594802049344 CMakeFiles/projects_ray.dir/src/illuminate/shadow.cpp.o 976dc05943374640 +1991 2750 1702446595544090623 CMakeFiles/projects_ray.dir/src/aliasing/filter.cpp.o 9dee6d99978c214 +38 1388 1702449219392412871 CMakeFiles/projects_ray.dir/src/accelerate/myqtconcurrent.cpp.o 202e3ecc659447bc +7 34 1702449311248367705 projects_ray_autogen/timestamp 55fca76aac650d2f +7 34 1702449311248367705 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f +7 34 1702449311248367705 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f +7 34 1702449311248367705 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f +38 1376 1702449312584870357 CMakeFiles/projects_ray.dir/src/accelerate/myqtconcurrent.cpp.o 202e3ecc659447bc +1376 1487 1702449312699120051 projects_ray 45fbfe11691b47a4 diff --git a/cmake-build-release/Testing/Temporary/LastTest.log b/cmake-build-release/Testing/Temporary/LastTest.log index 0500d4b..6b7e648 100644 --- a/cmake-build-release/Testing/Temporary/LastTest.log +++ b/cmake-build-release/Testing/Temporary/LastTest.log @@ -1,3 +1,3 @@ -Start testing: Dec 13 01:29 EST +Start testing: Dec 13 01:35 EST ---------------------------------------------------------- -End testing: Dec 13 01:29 EST +End testing: Dec 13 01:35 EST diff --git a/cmake-build-release/projects_ray b/cmake-build-release/projects_ray index bb364be..bbcd585 100755 Binary files a/cmake-build-release/projects_ray and b/cmake-build-release/projects_ray differ diff --git a/src/accelerate/myqtconcurrent.cpp b/src/accelerate/myqtconcurrent.cpp index 12e9138..1615bca 100644 --- a/src/accelerate/myqtconcurrent.cpp +++ b/src/accelerate/myqtconcurrent.cpp @@ -45,34 +45,29 @@ void RayTracer::renderParallel(RGBA *imageData, const RayTraceScene &scene) for (int imageRow = 0; imageRow < scene.height(); imageRow++) { for (int imageCol = 0; imageCol < scene.width(); imageCol++) { // FIXME: for now, use height as depth - for (int imageDepth = 0; imageDepth < scene.depth(); imageDepth++) { - // compute the ray - float x = (imageCol - scene.width()/2.f) * viewplaneWidth / scene.width(); - float y = (imageRow - scene.height()/2.f) * viewplaneHeight / scene.height(); - float z = (imageDepth - scene.depth()/2.f) * viewplaneDepth / scene.depth(); - - glm::vec4 pWorld = Vec4Ops::transformPoint4(glm::vec4(0.f), camera.getViewMatrix(), camera.getTranslationVector()); - glm::vec4 dWorld = Vec4Ops::transformDir4(glm::vec4(x, y, z, -1.0), camera.getViewMatrix()); - // get the pixel color - glm::vec4 pixelColor = getPixelFromRay(pWorld, dWorld, scene, 0); - - if (pixelColor.r > 0) { - std::cout << "pixelColor.r: " << pixelColor.r << ", x" << imageCol << ", y" << imageRow << ", z" << imageDepth << std::endl; - } - - // set the pixel color - if (imageDepth == 250) - { - int index = imageRow * scene.width() + imageCol; - imageData[index] = RGBA{ - (std::uint8_t) (pixelColor.r * 255.f), - (std::uint8_t) (pixelColor.g * 255.f), - (std::uint8_t) (pixelColor.b * 255.f), - (std::uint8_t) (pixelColor.a * 255.f) - }; - } - + int imageDepth = (int) ((settings.w + 100.f) * (5.f / 2.f)); + // compute the ray + float x = (imageCol - scene.width()/2.f) * viewplaneWidth / scene.width(); + float y = (imageRow - scene.height()/2.f) * viewplaneHeight / scene.height(); + float z = (imageDepth - scene.depth()/2.f) * viewplaneDepth / scene.depth(); + + glm::vec4 pWorld = Vec4Ops::transformPoint4(glm::vec4(0.f), camera.getViewMatrix(), camera.getTranslationVector()); + glm::vec4 dWorld = Vec4Ops::transformDir4(glm::vec4(x, y, z, -1.0), camera.getViewMatrix()); + // get the pixel color + glm::vec4 pixelColor = getPixelFromRay(pWorld, dWorld, scene, 0); + + if (pixelColor.r > 0) { + std::cout << "pixelColor.r: " << pixelColor.r << ", x" << imageCol << ", y" << imageRow << ", z" << imageDepth << std::endl; } + + // set the pixel color + int index = imageRow * scene.width() + imageCol; + imageData[index] = RGBA{ + (std::uint8_t) (pixelColor.r * 255.f), + (std::uint8_t) (pixelColor.g * 255.f), + (std::uint8_t) (pixelColor.b * 255.f), + (std::uint8_t) (pixelColor.a * 255.f) + }; } } QList pixels = QtConcurrent::blockingMapped(l, pixelRoutine); -- cgit v1.2.3-70-g09d2