From 256a50ddd591223cb2cab00cc4c2be62993077da Mon Sep 17 00:00:00 2001 From: sotech117 Date: Wed, 13 Dec 2023 02:49:03 -0500 Subject: experiment with scene files --- src/accelerate/myqtconcurrent.cpp | 2 +- src/illuminate/illuminate.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/accelerate/myqtconcurrent.cpp b/src/accelerate/myqtconcurrent.cpp index 08248f4..4d0cb1e 100644 --- a/src/accelerate/myqtconcurrent.cpp +++ b/src/accelerate/myqtconcurrent.cpp @@ -52,7 +52,7 @@ void RayTracer::renderParallel(RGBA *imageData, const RayTraceScene &scene) 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()); + glm::vec4 dWorld = glm::normalize(Vec4Ops::transformDir4(glm::vec4(x, y, z, -1.0), camera.getViewMatrix())); pixelRoutineArgs args{ pWorld, diff --git a/src/illuminate/illuminate.cpp b/src/illuminate/illuminate.cpp index 641f06d..a651924 100644 --- a/src/illuminate/illuminate.cpp +++ b/src/illuminate/illuminate.cpp @@ -87,10 +87,10 @@ glm::vec4 RayTracer::illuminatePixel( } } - // auto incidentDir = -directionToCamera; + auto incidentDir = -directionToCamera; // recursive raytracing for the reflection and refraction (see reflect.cpp) - // illumination += refract(intersectionWorld, normalWorld, incidentDir, shape, scene, depth + 1); - // illumination += reflect(intersectionWorld, normalWorld, incidentDir, shape, scene, depth + 1); + illumination += refract(intersectionWorld, normalWorld, incidentDir, shape, scene, depth + 1); + illumination += reflect(intersectionWorld, normalWorld, incidentDir, shape, scene, depth + 1); return illumination; } \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 1c911da57c61d50c330ac8be6b692c3daf9aac70 Mon Sep 17 00:00:00 2001 From: sotech117 Date: Wed, 13 Dec 2023 03:18:51 -0500 Subject: push working cube --- cmake-build-release/.ninja_deps | Bin 560208 -> 564116 bytes cmake-build-release/.ninja_log | 6 + .../projects_ray_autogen.dir/ParseCache.txt | 124 ++++++++++----------- cmake-build-release/Testing/Temporary/LastTest.log | 4 +- cmake-build-release/projects_ray | Bin 353561 -> 353305 bytes src/raytracer/raytracer.cpp | 70 +----------- 6 files changed, 71 insertions(+), 133 deletions(-) (limited to 'src') diff --git a/cmake-build-release/.ninja_deps b/cmake-build-release/.ninja_deps index 1f58ccf..929c00d 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 cad333d..1171a5a 100644 --- a/cmake-build-release/.ninja_log +++ b/cmake-build-release/.ninja_log @@ -41,3 +41,9 @@ 6 34 1702453551761047603 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f 37 1350 1702453553072409034 CMakeFiles/projects_ray.dir/src/accelerate/myqtconcurrent.cpp.o 202e3ecc659447bc 1350 1455 1702453553180119416 projects_ray 45fbfe11691b47a4 +11 41 1702455364512022871 projects_ray_autogen/timestamp 55fca76aac650d2f +11 41 1702455364512022871 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f +11 41 1702455364512022871 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f +11 41 1702455364512022871 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f +44 1223 1702455365689043417 CMakeFiles/projects_ray.dir/src/raytracer/raytracer.cpp.o 19b4d88ef40a6db1 +1224 1332 1702455365801121867 projects_ray 45fbfe11691b47a4 diff --git a/cmake-build-release/CMakeFiles/projects_ray_autogen.dir/ParseCache.txt b/cmake-build-release/CMakeFiles/projects_ray_autogen.dir/ParseCache.txt index 0e68cf3..05a22d1 100644 --- a/cmake-build-release/CMakeFiles/projects_ray_autogen.dir/ParseCache.txt +++ b/cmake-build-release/CMakeFiles/projects_ray_autogen.dir/ParseCache.txt @@ -1,10 +1,26 @@ # Generated by CMake. Changes will be overwritten. -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/accelerate/myqtconcurrent.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/rgba.h -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/accelerate/kdtree.h -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/raytracer/raytracer.h +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/scenefilereader.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/aliasing/filter.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/vec4ops/rotations4d.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/vec4ops/transform4d.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/intersect/normals.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/texture/texture.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/raytracerutils.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/raytracer/raytracer.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/accelerate/kdtree.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/settings.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/sceneparser.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/illuminate/shadow.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/settings.h +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/mainwindow.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/intersect/intersect.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/raytracer/raytracescene.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/illuminate/reflect.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/main.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/illuminate/illuminate.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/mainwindow.h mmc:Q_OBJECT - mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/raytracer/raytracer.h + mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/mainwindow.h mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/moc_predefs.h mdp:/Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/usr/include/Availability.h mdp:/Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/usr/include/AvailabilityInternal.h @@ -457,6 +473,7 @@ mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/camera/camera.h mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/raytracer/raytracer.h mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/raytracer/raytracescene.h + mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/aspectratiowidget/aspectratiowidget.hpp mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/rgba.h mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/scenedata.h mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/sceneparser.h @@ -507,6 +524,7 @@ mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qiterator.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qline.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qlist.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qlocale.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qlogging.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qmalloc.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qmap.h @@ -527,6 +545,7 @@ mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qprocessordetection.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qrect.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qrefcount.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qregularexpression.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qscopedpointer.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qscopeguard.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qset.h @@ -599,21 +618,52 @@ mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtGui.framework/Versions/A/Headers/qtguiexports.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtGui.framework/Versions/A/Headers/qtguiglobal.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtGui.framework/Versions/A/Headers/qtransform.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtGui.framework/Versions/A/Headers/qvalidator.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtGui.framework/Versions/A/Headers/qwindowdefs.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtOpenGLWidgets.framework/Versions/A/Headers/QOpenGLWidget mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtOpenGLWidgets.framework/Versions/A/Headers/qopenglwidget.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtOpenGLWidgets.framework/Versions/A/Headers/qtopenglwidgetsexports.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtOpenGLWidgets.framework/Versions/A/Headers/qtopenglwidgetsglobal.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QBoxLayout + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QCheckBox + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QDoubleSpinBox mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QLabel + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QMainWindow + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QPushButton + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QSlider + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QSpinBox mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QWidget + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qabstractbutton.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qabstractslider.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qabstractspinbox.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qboxlayout.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qcheckbox.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qframe.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qgridlayout.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qlabel.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qlayout.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qlayoutitem.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qmainwindow.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qpushbutton.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qsizepolicy.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qslider.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qspinbox.h + mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qtabwidget.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qtwidgets-config.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qtwidgetsexports.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qtwidgetsglobal.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qwidget.h -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/raytracer/raytracescene.h +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/camera/camera.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/aliasing/supersample.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/camera/camera.h +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/vec4ops/vec4ops.h +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/scenefilereader.h +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/accelerate/myqthreads.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/vec4ops/vec4ops.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/accelerate/bvh.h +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/accelerate/bvh.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/scenedata.h +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/sceneparser.h /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/aspectratiowidget/aspectratiowidget.hpp mmc:Q_OBJECT mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/aspectratiowidget/aspectratiowidget.hpp @@ -1065,20 +1115,10 @@ mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qtwidgetsexports.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qtwidgetsglobal.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qwidget.h -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/sceneparser.h -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/scenedata.h -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/accelerate/bvh.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/accelerate/bvh.h -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/vec4ops/vec4ops.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/accelerate/myqthreads.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/scenefilereader.h -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/vec4ops/vec4ops.h -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/camera/camera.h -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/aliasing/supersample.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/camera/camera.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/mainwindow.h +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/raytracer/raytracescene.h +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/raytracer/raytracer.h mmc:Q_OBJECT - mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/mainwindow.h + mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/raytracer/raytracer.h mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/moc_predefs.h mdp:/Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/usr/include/Availability.h mdp:/Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/usr/include/AvailabilityInternal.h @@ -1531,7 +1571,6 @@ mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/camera/camera.h mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/raytracer/raytracer.h mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/raytracer/raytracescene.h - mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/aspectratiowidget/aspectratiowidget.hpp mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/rgba.h mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/scenedata.h mdp:/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/sceneparser.h @@ -1582,7 +1621,6 @@ mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qiterator.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qline.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qlist.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qlocale.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qlogging.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qmalloc.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qmap.h @@ -1603,7 +1641,6 @@ mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qprocessordetection.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qrect.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qrefcount.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qregularexpression.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qscopedpointer.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qscopeguard.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtCore.framework/Versions/A/Headers/qset.h @@ -1676,57 +1713,20 @@ mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtGui.framework/Versions/A/Headers/qtguiexports.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtGui.framework/Versions/A/Headers/qtguiglobal.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtGui.framework/Versions/A/Headers/qtransform.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtGui.framework/Versions/A/Headers/qvalidator.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtGui.framework/Versions/A/Headers/qwindowdefs.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtOpenGLWidgets.framework/Versions/A/Headers/QOpenGLWidget mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtOpenGLWidgets.framework/Versions/A/Headers/qopenglwidget.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtOpenGLWidgets.framework/Versions/A/Headers/qtopenglwidgetsexports.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtOpenGLWidgets.framework/Versions/A/Headers/qtopenglwidgetsglobal.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QBoxLayout - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QCheckBox - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QDoubleSpinBox mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QLabel - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QMainWindow - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QPushButton - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QSlider - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QSpinBox mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/QWidget - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qabstractbutton.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qabstractslider.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qabstractspinbox.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qboxlayout.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qcheckbox.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qframe.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qgridlayout.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qlabel.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qlayout.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qlayoutitem.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qmainwindow.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qpushbutton.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qsizepolicy.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qslider.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qspinbox.h - mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qtabwidget.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qtwidgets-config.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qtwidgetsexports.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qtwidgetsglobal.h mdp:/Users/sotech117/Qt/6.5.2/macos/lib/QtWidgets.framework/Versions/A/Headers/qwidget.h -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/illuminate/illuminate.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/main.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/intersect/intersect.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/illuminate/reflect.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/raytracer/raytracescene.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/mainwindow.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/settings.h -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/illuminate/shadow.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/sceneparser.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/settings.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/accelerate/kdtree.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/raytracer/raytracer.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/raytracerutils.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/texture/texture.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/intersect/normals.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/vec4ops/transform4d.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/vec4ops/rotations4d.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/aliasing/filter.cpp -/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/scenefilereader.cpp +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/accelerate/kdtree.h +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/utils/rgba.h +/Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/src/accelerate/myqtconcurrent.cpp diff --git a/cmake-build-release/Testing/Temporary/LastTest.log b/cmake-build-release/Testing/Temporary/LastTest.log index 89188b7..ccf4fb4 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 02:45 EST +Start testing: Dec 13 03:16 EST ---------------------------------------------------------- -End testing: Dec 13 02:45 EST +End testing: Dec 13 03:16 EST diff --git a/cmake-build-release/projects_ray b/cmake-build-release/projects_ray index 79e6095..455ae55 100755 Binary files a/cmake-build-release/projects_ray and b/cmake-build-release/projects_ray differ diff --git a/src/raytracer/raytracer.cpp b/src/raytracer/raytracer.cpp index d6fa14f..1622744 100644 --- a/src/raytracer/raytracer.cpp +++ b/src/raytracer/raytracer.cpp @@ -30,44 +30,7 @@ RayTracer::RayTracer(QWidget *parent) : QWidget(parent) { // updated to use 4D void RayTracer::render(RGBA *imageData, const RayTraceScene &scene) { - if (m_enableParallelism) { - renderParallel(imageData, scene); - } else { - // naive rendering - Camera camera = scene.getCamera(); - float cameraDepth = 1.f; - - float viewplaneHeight = 2.f*cameraDepth*std::tan(camera.getHeightAngle() / 2.f); - float viewplaneWidth = cameraDepth*viewplaneHeight*((float)scene.width()/(float)scene.height()); - - 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.height(); 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.height()/2.f) * viewplaneHeight / scene.height(); - float camera4dDepth = 1; - - glm::vec4 pWorld = Vec4Ops::transformPoint4(glm::vec4(x, y, z, 0.f), camera.getViewMatrix(), camera.getTranslationVector()); - glm::vec4 dWorld = glm::vec4(0.f, 0.f, 0.f, -1.f); - - // get the pixel color - glm::vec4 pixelColor = getPixelFromRay(pWorld, dWorld, scene, 0); - - // 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) - }; - } - } - } - } + renderParallel(imageData, scene); if (settings.bulkOutputFolderPath.size() > 0) { // means we are doing bulk rendering // save the image to the bulk directory @@ -139,37 +102,6 @@ glm::vec4 RayTracer::getPixelFromRay( return illuminatePixel(closestIntersectionWorld, normalWorld, -dWorld, intersectedShape, scene, depth); } -// EXTRA CREDIT -> depth of field -glm::vec4 RayTracer::secondaryRays(glm::vec4 pWorld, glm::vec4 dWorld, RayTraceScene &scene) -{ - auto inv = scene.getCamera().getInverseViewMatrix(); - float focalLength = scene.getCamera().getFocalLength(); - float aperture = scene.getCamera().getAperture(); - - glm::vec4 illumination(0.f); - glm::vec4 focalPoint = pWorld + focalLength * dWorld; - - int TIMES = 500; - for (int i = 0; i < TIMES; i++) { - // generate a random number from -aperature to aperature - float rand1 = ((float) rand() / (float) RAND_MAX) * aperture; - rand1 *= (rand() % 2 == 0) ? 1 : -1; - // generate another number also inside the aperature lens - float rand2 = ((float) rand() / (float) RAND_MAX) * std::sqrt(aperture - rand1*rand1); - rand2 *= (rand() % 2 == 0) ? 1 : -1; - glm::vec4 randEye = (rand() % 2 == 0) ? glm::vec4(rand1, rand2, 0.f, 1.f) : glm::vec4(rand2, rand1, 0.f, 1.f); - // convert this random point to world space - glm::vec4 eyeWorld = inv * randEye; - - // make the ray - glm::vec4 randomDir = glm::vec4(glm::normalize(focalPoint.xyz() - eyeWorld.xyz()), 0.f); - - illumination += getPixelFromRay(eyeWorld, randomDir, scene, 0); - } - - return illumination / (float) TIMES; -} - void RayTracer::sceneChanged(QLabel* imageLabel) { // RenderData metaData; -- cgit v1.2.3-70-g09d2 From e862c0065d448f4ccc322e6c9565ebc19498673b Mon Sep 17 00:00:00 2001 From: Nicholas Bottone Date: Wed, 13 Dec 2023 03:20:12 -0500 Subject: Fix scene parsing to only happen on sceneChange instead of settingsChange --- src/raytracer/raytracer.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/raytracer/raytracer.cpp b/src/raytracer/raytracer.cpp index 1622744..38ed2e1 100644 --- a/src/raytracer/raytracer.cpp +++ b/src/raytracer/raytracer.cpp @@ -111,6 +111,7 @@ void RayTracer::sceneChanged(QLabel* imageLabel) { std::cerr << "Error loading scene: \"" << settings.sceneFilePath << "\"" << std::endl; m_image.fill(Qt::black); imageLabel->setPixmap(QPixmap::fromImage(m_image)); + m_imageData = reinterpret_cast(m_image.bits()); return; } @@ -130,17 +131,11 @@ void RayTracer::sceneChanged(QLabel* imageLabel) { } void RayTracer::settingsChanged(QLabel* imageLabel) { - bool success = SceneParser::parse(settings.sceneFilePath, m_metaData); - - if (!success) { - std::cerr << "Error loading scene: \"" << settings.sceneFilePath << "\"" << std::endl; - // return; - // render a blank image - 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)); + if (settings.sceneFilePath.size() == 0) { + // no scene loaded + m_image.fill(Qt::black); + imageLabel->setPixmap(QPixmap::fromImage(m_image)); + m_imageData = reinterpret_cast(m_image.bits()); return; } @@ -149,10 +144,10 @@ void RayTracer::settingsChanged(QLabel* imageLabel) { QImage image = QImage(width, height, QImage::Format_RGBX8888); image.fill(Qt::black); - RGBA *data = reinterpret_cast(image.bits()); + m_imageData = reinterpret_cast(image.bits()); RayTraceScene rtScene{ width, height, m_metaData }; - this->render(data, rtScene); + this->render(m_imageData, rtScene); QImage flippedImage = image.mirrored(false, false); flippedImage = flippedImage.scaled(width, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); -- cgit v1.2.3-70-g09d2 From b4031fbb557ff10e82e7314c6b870c32e09d70e4 Mon Sep 17 00:00:00 2001 From: Nicholas Bottone Date: Wed, 13 Dec 2023 03:53:42 -0500 Subject: Add video assembly functionality to RayTracer class --- src/raytracer/raytracer.cpp | 15 +++++++++++++++ src/raytracer/raytracer.h | 3 ++- 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/raytracer/raytracer.cpp b/src/raytracer/raytracer.cpp index 38ed2e1..94e928d 100644 --- a/src/raytracer/raytracer.cpp +++ b/src/raytracer/raytracer.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "raytracer.h" #include "raytracescene.h" #include "settings.h" @@ -40,6 +41,11 @@ void RayTracer::render(RGBA *imageData, const RayTraceScene &scene) { // render the next frame settings.currentTime++; emit settingsChanged(m_imageLabel); // emit to allow the UI to update then render the next frame + } else { // done rendering + // assemble the video + saveFFMPEGVideo(settings.bulkOutputFolderPath); + settings.currentTime = 0; + settings.bulkOutputFolderPath = ""; } } } @@ -268,3 +274,12 @@ void RayTracer::saveViewportImage(std::string filePath) { QImage image = QImage((uchar *) m_imageData, 576, 432, QImage::Format_RGBX8888); image.save(QString::fromStdString(filePath)); } + +void RayTracer::saveFFMPEGVideo(std::string filePath) { + std::string directory = filePath + QDir::separator().toLatin1(); + std::string command = "ffmpeg -framerate 30 -pattern_type glob -i '" + directory + "*.png' -c:v libx264 -pix_fmt yuv420p '" + directory + "video.mp4'"; + int result = std::system(command.c_str()); + if (result != 0) { + std::cerr << "Failed to assemble video." << std::endl; + } +} diff --git a/src/raytracer/raytracer.h b/src/raytracer/raytracer.h index 52fc05a..fdceaab 100644 --- a/src/raytracer/raytracer.h +++ b/src/raytracer/raytracer.h @@ -37,7 +37,7 @@ struct Config { class RayTracer : public QWidget { - Q_OBJECT + Q_OBJECT public: // constructor for the config RayTracer(QWidget *parent = nullptr); @@ -178,6 +178,7 @@ public: QImage m_image; void saveViewportImage(std::string filename); + void saveFFMPEGVideo(std::string filename); void wSliderChanged(QLabel* imageLabel); signals: void xyRotationChanged(float value); -- cgit v1.2.3-70-g09d2 From 8a59716630868da2b051b7c5f907c13f2324ae25 Mon Sep 17 00:00:00 2001 From: Nicholas Bottone Date: Wed, 13 Dec 2023 03:53:49 -0500 Subject: Refactor collision update function and remove unused code --- src/accelerate/bvh.cpp | 12 ------------ src/utils/sceneparser.cpp | 4 +--- src/utils/sceneparser.h | 2 -- 3 files changed, 1 insertion(+), 17 deletions(-) (limited to 'src') diff --git a/src/accelerate/bvh.cpp b/src/accelerate/bvh.cpp index 2949cbe..3640cf9 100644 --- a/src/accelerate/bvh.cpp +++ b/src/accelerate/bvh.cpp @@ -83,18 +83,6 @@ float intersectRegion( return tMin; } -void updateAfterCollision(RenderShapeData& objA, RenderShapeData& objB) { - glm::vec3 vA_prime = ((objA.mass - objB.mass) * objA.velocity + 2 * objB.mass * objB.velocity) / (objA.mass + objB.mass); - glm::vec3 vB_prime = ((objB.mass - objA.mass) * objB.velocity + 2 * objA.mass * objA.velocity) / (objA.mass + objB.mass); - - objA.velocity = glm::vec4(vA_prime, 0.f); - objB.velocity = glm::vec4(vB_prime, 0.f); - - objA.position += objA.velocity; - objB.position += objB.velocity; - -} - float RayTracer::traverseBVH( glm::vec4 p, glm::vec4 d, diff --git a/src/utils/sceneparser.cpp b/src/utils/sceneparser.cpp index bc39109..0e258c1 100644 --- a/src/utils/sceneparser.cpp +++ b/src/utils/sceneparser.cpp @@ -94,9 +94,7 @@ void initTree(SceneNode* currentNode, std::vector *shapes, std: .translation4d = currentTranslation4d, .inverseCTM = glm::inverse(currentCTM), .inverseTranslation4d = -currentTranslation4d, - // .position = glm::vec4(0.f, 0.f, 0.f, 1.f), - // .velocity = glm::vec4(0.f, 0.f, 0.f, 0.f), - // .mass = unitMass, + .velocity = primitive->velocity, }; shapes->push_back(rsd); // } diff --git a/src/utils/sceneparser.h b/src/utils/sceneparser.h index 3ab93a8..96803c9 100644 --- a/src/utils/sceneparser.h +++ b/src/utils/sceneparser.h @@ -12,9 +12,7 @@ struct RenderShapeData { glm::vec4 translation4d; // appended to the right of the ctm (for 4d translation) glm::mat4 inverseCTM; glm::vec4 inverseTranslation4d; // appended to the right of the inverse ctm (for 4d translation) - glm::vec4 position; glm::vec4 velocity; - float mass; }; // Struct which contains all the data needed to render a scene -- cgit v1.2.3-70-g09d2