diff options
author | David Doan <daviddoan@Davids-MacBook-Pro-193.local> | 2023-12-13 03:59:19 -0500 |
---|---|---|
committer | David Doan <daviddoan@Davids-MacBook-Pro-193.local> | 2023-12-13 03:59:19 -0500 |
commit | 8f3662d06a015f9b6e21b43bdd5f22765b12323a (patch) | |
tree | 39c0fea1596e9be3d0d472f18f27e450f2015f6f | |
parent | eaea332f31d8f14caf2f4675779241ad30655fc3 (diff) | |
parent | 8a59716630868da2b051b7c5f907c13f2324ae25 (diff) |
camera movement
-rw-r--r-- | cmake-build-release/.ninja_deps | bin | 553376 -> 564116 bytes | |||
-rw-r--r-- | cmake-build-release/.ninja_log | 18 | ||||
-rw-r--r-- | cmake-build-release/CMakeFiles/projects_ray_autogen.dir/ParseCache.txt | 124 | ||||
-rw-r--r-- | cmake-build-release/Testing/Temporary/LastTest.log | 4 | ||||
-rwxr-xr-x | cmake-build-release/projects_ray | bin | 353561 -> 353305 bytes | |||
-rw-r--r-- | scenefiles-4d/five_shapes.json | 2 | ||||
-rw-r--r-- | scenefiles-4d/unit_cube.json | 4 | ||||
-rw-r--r-- | src/accelerate/bvh.cpp | 12 | ||||
-rw-r--r-- | src/accelerate/myqtconcurrent.cpp | 2 | ||||
-rw-r--r-- | src/illuminate/illuminate.cpp | 6 | ||||
-rw-r--r-- | src/raytracer/raytracer.cpp | 104 | ||||
-rw-r--r-- | src/raytracer/raytracer.h | 3 | ||||
-rw-r--r-- | src/utils/sceneparser.cpp | 4 | ||||
-rw-r--r-- | src/utils/sceneparser.h | 2 |
14 files changed, 115 insertions, 170 deletions
diff --git a/cmake-build-release/.ninja_deps b/cmake-build-release/.ninja_deps Binary files differindex f9ce467..929c00d 100644 --- a/cmake-build-release/.ninja_deps +++ b/cmake-build-release/.ninja_deps diff --git a/cmake-build-release/.ninja_log b/cmake-build-release/.ninja_log index e50c793..1171a5a 100644 --- a/cmake-build-release/.ninja_log +++ b/cmake-build-release/.ninja_log @@ -29,3 +29,21 @@ 1693 2445 1702452579001092270 CMakeFiles/projects_ray.dir/src/aliasing/filter.cpp.o 9dee6d99978c214 1224 1917 1702452578473192908 CMakeFiles/projects_ray.dir/src/illuminate/shadow.cpp.o 976dc05943374640 1917 3319 1702452579874611066 CMakeFiles/projects_ray.dir/src/accelerate/myqtconcurrent.cpp.o 202e3ecc659447bc +6 34 1702453038917081702 projects_ray_autogen/timestamp 55fca76aac650d2f +6 34 1702453038917081702 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f +6 34 1702453038917081702 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f +6 34 1702453038917081702 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f +37 760 1702453039640098864 CMakeFiles/projects_ray.dir/src/illuminate/illuminate.cpp.o 36fb1526130d4f10 +760 869 1702453039751149956 projects_ray 45fbfe11691b47a4 +6 34 1702453551761047603 projects_ray_autogen/timestamp 55fca76aac650d2f +6 34 1702453551761047603 projects_ray_autogen/mocs_compilation.cpp 55fca76aac650d2f +6 34 1702453551761047603 /Users/sotech117/Documents/master/graphics/the-all-americans-in-cs1230/cmake-build-release/projects_ray_autogen/timestamp 55fca76aac650d2f +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 032ef86..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:32 EST +Start testing: Dec 13 03:16 EST ---------------------------------------------------------- -End testing: Dec 13 02:32 EST +End testing: Dec 13 03:16 EST diff --git a/cmake-build-release/projects_ray b/cmake-build-release/projects_ray Binary files differindex a433436..455ae55 100755 --- a/cmake-build-release/projects_ray +++ b/cmake-build-release/projects_ray diff --git a/scenefiles-4d/five_shapes.json b/scenefiles-4d/five_shapes.json index c6c6645..18245c5 100644 --- a/scenefiles-4d/five_shapes.json +++ b/scenefiles-4d/five_shapes.json @@ -8,7 +8,7 @@ "gravity": [0.0, -0.0098, 0.0, 0.0] }, "cameraData": { - "position": [30.0, 30.0, 30.0, 30.0], + "position": [-10.0, -10.0, -10.0, -10.0], "up": [0.0, 1.0, 0.0, 0.0], "heightAngle": 30.0, "focus": [0.0, 0.0, 0.0, 0.0], diff --git a/scenefiles-4d/unit_cube.json b/scenefiles-4d/unit_cube.json index 6810d2e..6b1ee6f 100644 --- a/scenefiles-4d/unit_cube.json +++ b/scenefiles-4d/unit_cube.json @@ -13,8 +13,8 @@ "heightAngle": 30.0, "depthAngle": 30.0, "focus": [0.0, 0.0, 0.0, 0.0], - "over": [0.0, 1.0, 0.0, 0.0] - }, + "over": [0.0, 0.0, 0.0, 1.0] +}, "groups": [ { "lights": [ 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/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 diff --git a/src/raytracer/raytracer.cpp b/src/raytracer/raytracer.cpp index 3a06910..19595e8 100644 --- a/src/raytracer/raytracer.cpp +++ b/src/raytracer/raytracer.cpp @@ -1,6 +1,7 @@ #include <QList> #include <QtConcurrent> #include <iostream> +#include <cstdlib> #include "raytracer.h" #include "raytracescene.h" #include "settings.h" @@ -38,44 +39,7 @@ glm::vec4 getPt(glm::vec3 n1 , glm::vec3 n2 , float perc ) // 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 @@ -85,6 +49,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 = ""; } } emit cameraPositionChanged(m_metaData.cameraData.pos); @@ -148,37 +117,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; @@ -188,6 +126,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<RGBA *>(m_image.bits()); return; } @@ -207,17 +146,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<RGBA *>(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<RGBA *>(m_image.bits()); return; } @@ -226,7 +159,7 @@ void RayTracer::settingsChanged(QLabel* imageLabel) { QImage image = QImage(width, height, QImage::Format_RGBX8888); image.fill(Qt::black); - RGBA *data = reinterpret_cast<RGBA *>(image.bits()); + m_imageData = reinterpret_cast<RGBA *>(image.bits()); RayTraceScene rtScene{ m_width, m_height, m_metaData, m_depth }; Camera camera = rtScene.getCamera(); @@ -340,3 +273,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 58b1815..ee46668 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); // Camera m_camera; diff --git a/src/utils/sceneparser.cpp b/src/utils/sceneparser.cpp index e2015cd..7db16b0 100644 --- a/src/utils/sceneparser.cpp +++ b/src/utils/sceneparser.cpp @@ -94,9 +94,7 @@ void initTree(SceneNode* currentNode, std::vector<RenderShapeData> *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 |