main
Brett 2022-12-13 01:33:31 -05:00
parent 0a82024f3e
commit 213ad18210
50 changed files with 650 additions and 1134 deletions

Binary file not shown.

View File

@ -2,63 +2,29 @@
3039 4673 1670818921470590191 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_tables.cpp.o 98cb1b8b0c737d0d
2111 3258 1670561167507169650 CMakeFiles/Step_3.dir/src/graphics/gl/gl.c.o 1829c9b0491e17e
2501 4061 1670818920858574640 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_demo.cpp.o 154c013a52483b59
2 1730 1670875779372692994 CMakeFiles/Step_3.dir/src/engine/mpi.cpp.o 5d24537a85ed8416
3 3686 1670875781324743035 CMakeFiles/Step_3.dir/src/engine/world.cpp.o c64baeb5ba601bb4
2 2866 1670875780508722116 CMakeFiles/Step_3.dir/src/engine/util/debug.cpp.o 6a4e11c94bba7102
1 4287 1670875781928758517 CMakeFiles/Step_3.dir/src/engine/image/image.cpp.o 27aa2206b4129a91
1730 4395 1670875782036761287 CMakeFiles/Step_3.dir/src/graphics/debug_gui.cpp.o db185e4c05df35c6
2559 3039 1670818919838548725 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_impl_x11.cpp.o affde06b41e3251b
2947 5232 1670875782872782719 CMakeFiles/Step_3.dir/src/opencl/open_ray_tracing.cpp.o 1e13ffe3688667ce
1 2570 1670875780212714528 CMakeFiles/Step_3.dir/src/engine/globals.cpp.o ef21dad2d7d55f95
2 2319 1670875779960708068 CMakeFiles/Step_3.dir/src/engine/math/colliders.cpp.o e1cb3573834144bf
3 2947 1670875780588724168 CMakeFiles/Step_3.dir/src/engine/util/models.cpp.o a3c3944da9146668
2268 5802 1670818922598618848 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui.cpp.o 4939d3e79602c127
5495 5804 1670875783444797383 Step_3 cf178136bfdaf811
3258 3505 1670561167755176449 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_impl_glfw.cpp.o 3708a9542084698e
2 4011 1670875781652751444 CMakeFiles/Step_3.dir/src/engine/raytracing.cpp.o f1ea987e58fdb6e
2686 4069 1670875781712752982 CMakeFiles/Step_3.dir/src/graphics/input.cpp.o 78c22cd6c124c15f
2557 4753 1670818921550592224 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_draw.cpp.o 5fdd1c1c2474d086
2571 5495 1670875783136789487 CMakeFiles/Step_3.dir/src/graphics/graphics.cpp.o 3e9ee255e3b079b6
3065 5675 1670818922474615699 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_widgets.cpp.o d66bb60c1727d1ac
2136 4541 1670875782184765082 CMakeFiles/Step_3.dir/src/graphics/gl/gl.cpp.o 60ee6de1376d9db2
3505 3710 1670561167959182040 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_impl_opengl3.cpp.o 11f263dd8d9ae8a1
2319 4385 1670875782028761080 CMakeFiles/Step_3.dir/src/graphics/gl/shader.cpp.o 2a1ad2717bf993ad
2 3389 1670875781028735447 CMakeFiles/Step_3.dir/src/engine/math/bvh.cpp.o bfaa9112c6c83140
1 4504 1670875782144764057 CMakeFiles/Step_3.dir/src/engine/main.cpp.o 9aae8e577719f01
2866 5127 1670875782768780051 CMakeFiles/Step_3.dir/src/opencl/cl.cpp.o a2b56fe5c1c9fba8
3 2136 1670875779776703352 CMakeFiles/Step_3.dir/src/engine/util/parser.cpp.o 98940b44ed977a44
2 2686 1670875780324717400 CMakeFiles/Step_3.dir/src/engine/util/loaders.cpp.o 7aeb3d1871cf6703
2 2088 1670876626790443307 CMakeFiles/Step_3.dir/src/opencl/open_ray_tracing.cpp.o 1e13ffe3688667ce
2 2265 1670876626970447932 CMakeFiles/Step_3.dir/src/graphics/graphics.cpp.o 3e9ee255e3b079b6
2 2349 1670876627054450088 CMakeFiles/Step_3.dir/src/engine/world.cpp.o c64baeb5ba601bb4
2 2411 1670876627114451630 CMakeFiles/Step_3.dir/src/engine/raytracing.cpp.o f1ea987e58fdb6e
2 2944 1670876627646465294 CMakeFiles/Step_3.dir/src/engine/main.cpp.o 9aae8e577719f01
2944 3218 1670876627918472281 Step_3 cf178136bfdaf811
2 1777 1670876656827214817 CMakeFiles/Step_3.dir/src/graphics/debug_gui.cpp.o db185e4c05df35c6
1777 2028 1670876657079221290 Step_3 cf178136bfdaf811
2 1813 1670876672483616966 CMakeFiles/Step_3.dir/src/graphics/debug_gui.cpp.o db185e4c05df35c6
1813 2045 1670876672715622926 Step_3 cf178136bfdaf811
2 1548 1670877423150902603 CMakeFiles/Step_3.dir/src/engine/mpi.cpp.o 5d24537a85ed8416
2 2015 1670877423614914525 CMakeFiles/Step_3.dir/src/engine/util/parser.cpp.o 98940b44ed977a44
1 2165 1670877423766918432 CMakeFiles/Step_3.dir/src/engine/math/colliders.cpp.o e1cb3573834144bf
2 2331 1670877423930922646 CMakeFiles/Step_3.dir/src/engine/util/loaders.cpp.o 7aeb3d1871cf6703
2 2615 1670877424214929942 CMakeFiles/Step_3.dir/src/engine/util/models.cpp.o a3c3944da9146668
1 2810 1670877424410934980 CMakeFiles/Step_3.dir/src/engine/globals.cpp.o ef21dad2d7d55f95
2 3033 1670877424634940736 CMakeFiles/Step_3.dir/src/engine/util/debug.cpp.o 6a4e11c94bba7102
1 3084 1670877424682941969 CMakeFiles/Step_3.dir/src/engine/math/bvh.cpp.o bfaa9112c6c83140
3 3475 1670877425074952040 CMakeFiles/Step_3.dir/src/engine/world.cpp.o c64baeb5ba601bb4
2 3939 1670877425538963963 CMakeFiles/Step_3.dir/src/engine/raytracing.cpp.o f1ea987e58fdb6e
3 3931 1670885092248845833 CMakeFiles/Step_3.dir/src/engine/world.cpp.o c64baeb5ba601bb4
3 3330 1670885091648828645 CMakeFiles/Step_3.dir/src/engine/util/debug.cpp.o 6a4e11c94bba7102
1 3975 1670877425574964888 CMakeFiles/Step_3.dir/src/engine/image/image.cpp.o 27aa2206b4129a91
4 3694 1670885092012839072 CMakeFiles/Step_3.dir/src/graphics/debug_gui.cpp.o db185e4c05df35c6
2559 3039 1670818919838548725 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_impl_x11.cpp.o affde06b41e3251b
7 3508 1670885091824833687 CMakeFiles/Step_3.dir/src/opencl/open_ray_tracing.cpp.o 1e13ffe3688667ce
1 3102 1670885091420822114 CMakeFiles/Step_3.dir/src/engine/globals.cpp.o ef21dad2d7d55f95
2 2597 1670885090916807676 CMakeFiles/Step_3.dir/src/engine/math/colliders.cpp.o e1cb3573834144bf
3 3177 1670885091496824293 CMakeFiles/Step_3.dir/src/engine/util/models.cpp.o a3c3944da9146668
2268 5802 1670818922598618848 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui.cpp.o 4939d3e79602c127
4586 4873 1670885093188872759 Step_3 cf178136bfdaf811
3258 3505 1670561167755176449 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_impl_glfw.cpp.o 3708a9542084698e
2 4236 1670885092556854655 CMakeFiles/Step_3.dir/src/engine/raytracing.cpp.o f1ea987e58fdb6e
2615 3979 1670877425582965094 CMakeFiles/Step_3.dir/src/graphics/input.cpp.o 78c22cd6c124c15f
1548 4161 1670877425762969720 CMakeFiles/Step_3.dir/src/graphics/debug_gui.cpp.o db185e4c05df35c6
1 4176 1670877425774970028 CMakeFiles/Step_3.dir/src/engine/main.cpp.o 9aae8e577719f01
2557 4753 1670818921550592224 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_draw.cpp.o 5fdd1c1c2474d086
6 3857 1670885092176843771 CMakeFiles/Step_3.dir/src/graphics/graphics.cpp.o 3e9ee255e3b079b6
3065 5675 1670818922474615699 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_widgets.cpp.o d66bb60c1727d1ac
4 2937 1670885091252817301 CMakeFiles/Step_3.dir/src/graphics/gl/gl.cpp.o 60ee6de1376d9db2
3505 3710 1670561167959182040 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_impl_opengl3.cpp.o 11f263dd8d9ae8a1
2165 4305 1670877425906973421 CMakeFiles/Step_3.dir/src/graphics/gl/shader.cpp.o 2a1ad2717bf993ad
2015 4311 1670877425914973624 CMakeFiles/Step_3.dir/src/graphics/gl/gl.cpp.o 60ee6de1376d9db2
2 3632 1670885091948837239 CMakeFiles/Step_3.dir/src/engine/math/bvh.cpp.o bfaa9112c6c83140
2 4585 1670885092904864624 CMakeFiles/Step_3.dir/src/engine/main.cpp.o 9aae8e577719f01
2810 5053 1670877426654992640 CMakeFiles/Step_3.dir/src/opencl/cl.cpp.o a2b56fe5c1c9fba8
2332 5059 1670877426662992846 CMakeFiles/Step_3.dir/src/graphics/graphics.cpp.o 3e9ee255e3b079b6
3034 5193 1670877426794996236 CMakeFiles/Step_3.dir/src/opencl/open_ray_tracing.cpp.o 1e13ffe3688667ce
5193 5415 1670877427015001889 Step_3 cf178136bfdaf811
1 2701 1670877524021495952 CMakeFiles/Step_3.dir/src/engine/main.cpp.o 9aae8e577719f01
2701 2951 1670877524269506723 Step_3 cf178136bfdaf811
1 2489 1670877552138705772 CMakeFiles/Step_3.dir/src/engine/main.cpp.o 9aae8e577719f01
2489 2792 1670877552442718726 Step_3 cf178136bfdaf811
2 2015 1670877423614914525 CMakeFiles/Step_3.dir/src/engine/util/parser.cpp.o 98940b44ed977a44
2 2331 1670877423930922646 CMakeFiles/Step_3.dir/src/engine/util/loaders.cpp.o 7aeb3d1871cf6703

Binary file not shown.

View File

@ -1,3 +1,3 @@
Start testing: Dec 12 15:39 EST
Start testing: Dec 12 17:44 EST
----------------------------------------------------------
End testing: Dec 12 15:39 EST
End testing: Dec 12 17:44 EST

View File

@ -1,14 +1,22 @@
# ninja log v5
1 2101 1670866040849862101 CMakeFiles/Step_3.dir/src/engine/mpi.cpp.o 6e3ab647b4170cd7
2 1933 1670866040681857601 CMakeFiles/Step_3.dir/src/engine/world.cpp.o c4fd93f3ffca4556
2 1405 1670866040149843351 CMakeFiles/Step_3.dir/src/engine/util/debug.cpp.o d5362da8222b5a91
1 7720 1670866046470012634 CMakeFiles/Step_3.dir/src/engine/image/image.cpp.o 16af2923d66aa3dc
1 1356 1670866040105842171 CMakeFiles/Step_3.dir/src/engine/globals.cpp.o d84683b57cabd9e2
1 1285 1670866040033840245 CMakeFiles/Step_3.dir/src/engine/math/colliders.cpp.o 69b8991a5a16265f
2 1753 1670866040501852779 CMakeFiles/Step_3.dir/src/engine/util/models.cpp.o f5a3601ffc57f560
7720 7777 1670866046526014136 Step_3 b99522ee7272b43c
1 2378 1670866041125869495 CMakeFiles/Step_3.dir/src/engine/raytracing.cpp.o 7cb473c21d72e8b4
1 2120 1670866040869862637 CMakeFiles/Step_3.dir/src/engine/math/bvh.cpp.o 1c9c19bd37115c1f
1 3037 1670866041785887176 CMakeFiles/Step_3.dir/src/engine/main.cpp.o fc9aafb6de653876
2 2029 1670866040777860172 CMakeFiles/Step_3.dir/src/engine/util/parser.cpp.o 5e496bc6e41e11aa
2 2277 1670866041025866816 CMakeFiles/Step_3.dir/src/engine/util/loaders.cpp.o 8bd5e7f27c69483d
2 2190 1670912286882657204 CMakeFiles/Step_3.dir/src/engine/mpi.cpp.o 6e3ab647b4170cd7
2 2095 1670912286786654661 CMakeFiles/Step_3.dir/src/engine/world.cpp.o c4fd93f3ffca4556
2 1592 1670912286282641308 CMakeFiles/Step_3.dir/src/engine/util/debug.cpp.o d5362da8222b5a91
1 8038 1670912292726812046 CMakeFiles/Step_3.dir/src/engine/image/image.cpp.o 16af2923d66aa3dc
1 1265 1670912285954632616 CMakeFiles/Step_3.dir/src/engine/globals.cpp.o d84683b57cabd9e2
1 1310 1670912285998633783 CMakeFiles/Step_3.dir/src/engine/math/colliders.cpp.o 69b8991a5a16265f
2 1754 1670912286446645652 CMakeFiles/Step_3.dir/src/engine/util/models.cpp.o f5a3601ffc57f560
8038 8105 1670912292794813848 Step_3 b99522ee7272b43c
2 2646 1670912287334669180 CMakeFiles/Step_3.dir/src/engine/raytracing.cpp.o 7cb473c21d72e8b4
1 2407 1670912287098662928 CMakeFiles/Step_3.dir/src/engine/math/bvh.cpp.o 1c9c19bd37115c1f
1 3623 1670912288314695146 CMakeFiles/Step_3.dir/src/engine/main.cpp.o fc9aafb6de653876
2 2015 1670912286706652541 CMakeFiles/Step_3.dir/src/engine/util/parser.cpp.o 5e496bc6e41e11aa
2 2180 1670912286870656887 CMakeFiles/Step_3.dir/src/engine/util/loaders.cpp.o 8bd5e7f27c69483d
1 1563 1670912412297758676 CMakeFiles/Step_3.dir/src/engine/mpi.cpp.o 6e3ab647b4170cd7
1 2057 1670912412789770209 CMakeFiles/Step_3.dir/src/engine/raytracing.cpp.o 7cb473c21d72e8b4
1 2823 1670912413553788123 CMakeFiles/Step_3.dir/src/engine/main.cpp.o fc9aafb6de653876
2823 2892 1670912413621789718 Step_3 b99522ee7272b43c
1 1595 1670912466371033890 CMakeFiles/Step_3.dir/src/engine/mpi.cpp.o 6e3ab647b4170cd7
1 2115 1670912466895046320 CMakeFiles/Step_3.dir/src/engine/raytracing.cpp.o 7cb473c21d72e8b4
1 2870 1670912467647064160 CMakeFiles/Step_3.dir/src/engine/main.cpp.o fc9aafb6de653876
2870 2924 1670912467703065488 Step_3 b99522ee7272b43c

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

View File

@ -1,3 +1,3 @@
Start testing: Dec 12 15:18 EST
Start testing: Dec 13 01:21 EST
----------------------------------------------------------
End testing: Dec 12 15:18 EST
End testing: Dec 13 01:21 EST

View File

@ -0,0 +1,190 @@
{
"inputs" :
[
{
"path" : "CMakeLists.txt"
},
{
"isGenerated" : true,
"path" : "cmake-build-release-omp/CMakeFiles/3.24.2/CMakeSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeSystemSpecificInitialize.cmake"
},
{
"isGenerated" : true,
"path" : "cmake-build-release-omp/CMakeFiles/3.24.2/CMakeCCompiler.cmake"
},
{
"isGenerated" : true,
"path" : "cmake-build-release-omp/CMakeFiles/3.24.2/CMakeCXXCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeSystemSpecificInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeGenericSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeInitializeConfigs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/UnixPaths.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeLanguageInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCommonLanguageInclude.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCXXInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeLanguageInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCommonLanguageInclude.cmake"
},
{
"path" : "include/engine/config.h.in"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindOpenGL.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindPackageMessage.cmake"
},
{
"isExternal" : true,
"path" : "/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3ConfigVersion.cmake"
},
{
"isExternal" : true,
"path" : "/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Config.cmake"
},
{
"isExternal" : true,
"path" : "/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Targets.cmake"
},
{
"isExternal" : true,
"path" : "/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Targets-none.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindOpenMP.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeParseImplicitLinkInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindPackageMessage.cmake"
}
],
"kind" : "cmakeFiles",
"paths" :
{
"build" : "/home/brett/Documents/Brock/CS 3P93/Project/Step 3/cmake-build-release-omp",
"source" : "/home/brett/Documents/Brock/CS 3P93/Project/Step 3"
},
"version" :
{
"major" : 1,
"minor" : 0
}
}

View File

@ -1,809 +0,0 @@
{
"inputs" :
[
{
"path" : "CMakeLists.txt"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeDetermineSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeSystem.cmake.in"
},
{
"isGenerated" : true,
"path" : "cmake-build-release-omp/CMakeFiles/3.24.2/CMakeSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeSystemSpecificInitialize.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeDetermineCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeDetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeDetermineCompilerId.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCompilerIdDetection.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/ADSP-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Borland-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Clang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Cray-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GHS-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/HP-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/IAR-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Intel-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/LCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/MSVC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/PGI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/PathScale-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/SCO-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/TI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Watcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/XL-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeFindBinUtils.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-FindBinUtils.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCCompiler.cmake.in"
},
{
"isGenerated" : true,
"path" : "cmake-build-release-omp/CMakeFiles/3.24.2/CMakeCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeDetermineCXXCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeDetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-Determine-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeDetermineCompilerId.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCompilerIdDetection.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/ADSP-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Borland-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Clang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Cray-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GHS-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/IAR-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Intel-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/MSVC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/PGI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/PathScale-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/SCO-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/TI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/Watcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeFindBinUtils.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-FindBinUtils.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCXXCompiler.cmake.in"
},
{
"isGenerated" : true,
"path" : "cmake-build-release-omp/CMakeFiles/3.24.2/CMakeCXXCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeSystemSpecificInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeGenericSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeInitializeConfigs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/UnixPaths.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeLanguageInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCommonLanguageInclude.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeTestCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeTestCompilerCommon.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeDetermineCompilerABI.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeParseImplicitIncludeInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeParseImplicitLinkInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeParseLibraryArchitecture.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeTestCompilerCommon.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCCompilerABI.c"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeDetermineCompileFeatures.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Internal/FeatureTesting.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCCompiler.cmake.in"
},
{
"isGenerated" : true,
"path" : "cmake-build-release-omp/CMakeFiles/3.24.2/CMakeCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCXXInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeLanguageInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCommonLanguageInclude.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeTestCXXCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeTestCompilerCommon.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeDetermineCompilerABI.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeParseImplicitIncludeInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeParseImplicitLinkInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeParseLibraryArchitecture.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeTestCompilerCommon.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCXXCompilerABI.cpp"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeDetermineCompileFeatures.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Internal/FeatureTesting.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCXXCompiler.cmake.in"
},
{
"isGenerated" : true,
"path" : "cmake-build-release-omp/CMakeFiles/3.24.2/CMakeCXXCompiler.cmake"
},
{
"path" : "include/engine/config.h.in"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindOpenGL.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindPackageMessage.cmake"
},
{
"isExternal" : true,
"path" : "/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3ConfigVersion.cmake"
},
{
"isExternal" : true,
"path" : "/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Config.cmake"
},
{
"isExternal" : true,
"path" : "/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Targets.cmake"
},
{
"isExternal" : true,
"path" : "/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Targets-none.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindOpenMP.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeParseImplicitLinkInfo.cmake"
},
{
"isGenerated" : true,
"path" : "cmake-build-release-omp/CMakeFiles/FindOpenMP/OpenMPTryFlag.c"
},
{
"isGenerated" : true,
"path" : "cmake-build-release-omp/CMakeFiles/FindOpenMP/OpenMPTryFlag.cpp"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindPackageMessage.cmake"
},
{
"isGenerated" : true,
"path" : "cmake-build-release-omp/CMakeFiles/FindOpenMP/OpenMPCheckVersion.c"
},
{
"isGenerated" : true,
"path" : "cmake-build-release-omp/CMakeFiles/FindOpenMP/OpenMPCheckVersion.cpp"
}
],
"kind" : "cmakeFiles",
"paths" :
{
"build" : "/home/brett/Documents/Brock/CS 3P93/Project/Step 3/cmake-build-release-omp",
"source" : "/home/brett/Documents/Brock/CS 3P93/Project/Step 3"
},
"version" :
{
"major" : 1,
"minor" : 0
}
}

View File

@ -44,7 +44,7 @@
}
},
{
"jsonFile" : "cmakeFiles-v1-82475b1a49f302642fb2.json",
"jsonFile" : "cmakeFiles-v1-7882cbe66ec291788d66.json",
"kind" : "cmakeFiles",
"version" :
{
@ -76,7 +76,7 @@
},
"cmakeFiles-v1" :
{
"jsonFile" : "cmakeFiles-v1-82475b1a49f302642fb2.json",
"jsonFile" : "cmakeFiles-v1-7882cbe66ec291788d66.json",
"kind" : "cmakeFiles",
"version" :
{

View File

@ -1,41 +1,28 @@
# ninja log v5
1 1172 1670876102540982524 CMakeFiles/Step_3.dir/src/engine/mpi.cpp.o 178ad7d143bf4643
2 1779 1670876103148998125 CMakeFiles/Step_3.dir/src/engine/world.cpp.o 29ff1a38503c06b0
1 1512 1670876102880991249 CMakeFiles/Step_3.dir/src/engine/util/debug.cpp.o c94ada31065dd0f4
0 2027 1670876103397004492 CMakeFiles/Step_3.dir/src/engine/image/image.cpp.o d267b51f3c38b1c8
0 1195 1670876102564983140 CMakeFiles/Step_3.dir/src/engine/globals.cpp.o 1fb6828ece7be9ea
1 1354 1670876102724987246 CMakeFiles/Step_3.dir/src/engine/math/colliders.cpp.o 37dd8fbf58fdf4fd
2 1602 1670876102972993610 CMakeFiles/Step_3.dir/src/engine/util/models.cpp.o 3cb2f1649f5ebcd1
2076 2154 1670876103525007777 Step_3 8fbec1723e4915f5
1 2011 1670876103381004082 CMakeFiles/Step_3.dir/src/engine/raytracing.cpp.o 78a5cc225017e748
1 1626 1670876102996994225 CMakeFiles/Step_3.dir/src/engine/math/bvh.cpp.o aff69ce8ec561f55
1 2076 1670876103445005723 CMakeFiles/Step_3.dir/src/engine/main.cpp.o a198afd6f0365ccf
2 1557 1670876102924992379 CMakeFiles/Step_3.dir/src/engine/util/parser.cpp.o 71d47ce5f4e22904
2 1479 1670876102848990426 CMakeFiles/Step_3.dir/src/engine/util/loaders.cpp.o 5e8760f6994ede45
2919 4318 1670876125585573954 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_tables.cpp.o 271e64dad1661800
1602 2411 1670876123653524365 CMakeFiles/Step_3.dir/src/graphics/gl/gl.c.o 46d0a39d744d39fa
2411 3737 1670876125005559067 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_demo.cpp.o b196cf080fdfa359
4 1515 1670876122781501987 CMakeFiles/Step_3.dir/src/engine/mpi.cpp.o 178ad7d143bf4643
44 2919 1670876124185538021 CMakeFiles/Step_3.dir/src/engine/world.cpp.o 29ff1a38503c06b0
5 2411 1670876123673524879 CMakeFiles/Step_3.dir/src/engine/util/debug.cpp.o c94ada31065dd0f4
2 2742 1670876124009533505 CMakeFiles/Step_3.dir/src/engine/image/image.cpp.o d267b51f3c38b1c8
1515 3632 1670876124897556296 CMakeFiles/Step_3.dir/src/graphics/debug_gui.cpp.o 645211f1ad0dfed4
2682 3288 1670876124557547570 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_impl_x11.cpp.o f90197c7146e69c3
2 2225 1670876123493520259 CMakeFiles/Step_3.dir/src/engine/globals.cpp.o 1fb6828ece7be9ea
3 1602 1670876122869504246 CMakeFiles/Step_3.dir/src/engine/math/colliders.cpp.o 37dd8fbf58fdf4fd
21 2136 1670876123397517797 CMakeFiles/Step_3.dir/src/engine/util/models.cpp.o 3cb2f1649f5ebcd1
6 2217 1670876123485520056 CMakeFiles/Step_3.dir/src/engine/util/loaders.cpp.o 5e8760f6994ede45
2 2225 1670876123493520259 CMakeFiles/Step_3.dir/src/engine/globals.cpp.o 1fb6828ece7be9ea
2 2301 1670876123565522109 CMakeFiles/Step_3.dir/src/engine/math/bvh.cpp.o aff69ce8ec561f55
1602 2411 1670876123653524365 CMakeFiles/Step_3.dir/src/graphics/gl/gl.c.o 46d0a39d744d39fa
5 2411 1670876123673524879 CMakeFiles/Step_3.dir/src/engine/util/debug.cpp.o c94ada31065dd0f4
25 2468 1670876123733526419 CMakeFiles/Step_3.dir/src/engine/util/parser.cpp.o 71d47ce5f4e22904
2468 2682 1670876123949531963 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_impl_glfw.cpp.o 2dac773db2e2a2df
2 2742 1670876124009533505 CMakeFiles/Step_3.dir/src/engine/image/image.cpp.o d267b51f3c38b1c8
44 2919 1670876124185538021 CMakeFiles/Step_3.dir/src/engine/world.cpp.o 29ff1a38503c06b0
4 2942 1670876124205538535 CMakeFiles/Step_3.dir/src/engine/raytracing.cpp.o 78a5cc225017e748
2743 3001 1670876124269540176 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_impl_opengl3.cpp.o 980c5261fd9c0f5b
2682 3288 1670876124557547570 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_impl_x11.cpp.o f90197c7146e69c3
2 3624 1670876124889556091 CMakeFiles/Step_3.dir/src/engine/main.cpp.o a198afd6f0365ccf
1515 3632 1670876124897556296 CMakeFiles/Step_3.dir/src/graphics/debug_gui.cpp.o 645211f1ad0dfed4
2411 3737 1670876125005559067 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_demo.cpp.o b196cf080fdfa359
2136 3754 1670876125021559476 CMakeFiles/Step_3.dir/src/graphics/gl/gl.cpp.o 6fdeee2b4621ca7d
2217 3906 1670876125173563380 CMakeFiles/Step_3.dir/src/graphics/gl/shader.cpp.o aeff19da56485422
2411 4203 1670876125469570977 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_draw.cpp.o b0031a10ecd07f54
3001 4211 1670876125477571180 CMakeFiles/Step_3.dir/src/graphics/input.cpp.o 2b898ab4a04b8bdb
2225 4231 1670876125497571694 CMakeFiles/Step_3.dir/src/graphics/graphics.cpp.o 6b1a12e1042d4a97
2919 4318 1670876125585573954 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_tables.cpp.o 271e64dad1661800
2301 4670 1670876125937582989 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui.cpp.o 600c76317c1bef84
2942 4860 1670876126129587917 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_widgets.cpp.o ddde7e88dcff6d6e
4860 4991 1670876126257591201 Step_3 6bc0df4fa69a503b
2468 2682 1670876123949531963 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_impl_glfw.cpp.o 2dac773db2e2a2df
4 2942 1670876124205538535 CMakeFiles/Step_3.dir/src/engine/raytracing.cpp.o 78a5cc225017e748
3001 4211 1670876125477571180 CMakeFiles/Step_3.dir/src/graphics/input.cpp.o 2b898ab4a04b8bdb
2411 4203 1670876125469570977 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_draw.cpp.o b0031a10ecd07f54
2225 4231 1670876125497571694 CMakeFiles/Step_3.dir/src/graphics/graphics.cpp.o 6b1a12e1042d4a97
2942 4860 1670876126129587917 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_widgets.cpp.o ddde7e88dcff6d6e
2136 3754 1670876125021559476 CMakeFiles/Step_3.dir/src/graphics/gl/gl.cpp.o 6fdeee2b4621ca7d
2743 3001 1670876124269540176 CMakeFiles/Step_3.dir/src/graphics/imgui/imgui_impl_opengl3.cpp.o 980c5261fd9c0f5b
2217 3906 1670876125173563380 CMakeFiles/Step_3.dir/src/graphics/gl/shader.cpp.o aeff19da56485422
2 2301 1670876123565522109 CMakeFiles/Step_3.dir/src/engine/math/bvh.cpp.o aff69ce8ec561f55
2 3624 1670876124889556091 CMakeFiles/Step_3.dir/src/engine/main.cpp.o a198afd6f0365ccf
25 2468 1670876123733526419 CMakeFiles/Step_3.dir/src/engine/util/parser.cpp.o 71d47ce5f4e22904
6 2217 1670876123485520056 CMakeFiles/Step_3.dir/src/engine/util/loaders.cpp.o 5e8760f6994ede45

View File

@ -1,24 +1,8 @@
/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/bin/cmake -DCMAKE_MAKE_PROGRAM=/opt/netbrains/clion/clion-2022.1.3/bin/ninja/linux/ninja -DUSE_MPI:BOOL=OFF -DCOMPILE_GUI:BOOL=ON -G Ninja -S "/home/brett/Documents/Brock/CS 3P93/Project/Step 3" -B "/home/brett/Documents/Brock/CS 3P93/Project/Step 3/cmake-build-release-omp"
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Building for Release
release mode
Compiling with GUI.
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
Found GLFW3!
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/brett/Documents/Brock/CS 3P93/Project/Step 3/cmake-build-release-omp

File diff suppressed because one or more lines are too long

View File

@ -11,24 +11,36 @@
namespace Raytracing {
// glorified structure to store our image data.
class Image {
private:
unsigned long width;
unsigned long height;
unsigned long _width;
unsigned long _height;
Vec4 *pixelData;
Vec4* pixelData;
bool m_modified = false;
public:
Image(unsigned long width, unsigned long height);
Image(const Image &image);
Image(const Image& image);
Image(const Image&& image) = delete;
/**
* Converts the image to a array of doubles, the pixels are packed vectors of order (x,y,z,w)
*/
std::vector<double> toArray();
/**
* Loads the pixel data from the double array, ignoring values which where not modified.
* It would make more sense to send only modified data however it is much easier not to.
* @param array array to load from
* @param size size of the array
* @param id unused
*/
void fromArray(double* array, int size, int id);
inline void setPixelColor(unsigned long x, unsigned long y, const Vec4 &color) {
inline void setPixelColor(unsigned long x, unsigned long y, const Vec4& color) {
m_modified = true;
pixelData[(x * height) + y] = Vec4{color.r(), color.g(), color.b(), 1.0};
}
@ -40,18 +52,23 @@ namespace Raytracing {
[[nodiscard]] inline int getPixelR(int x, int y) const {
return int(255.0 * getPixelColor(x, y).r());
};
[[nodiscard]] inline int getPixelG(int x, int y) const {
return int(255.0 * getPixelColor(x, y).g());
};
[[nodiscard]] inline int getPixelB(int x, int y) const {
return int(255.0 * getPixelColor(x, y).b());
}
[[nodiscard]] inline int getPixelA(int x, int y) const {
return int(255.0 * getPixelColor(x, y).a());
}
[[nodiscard]] inline int getWidth() const { return int(width); }
[[nodiscard]] inline int getHeight() const { return int(height); }
[[nodiscard]] inline bool modified() const { return m_modified; }
~Image();
@ -63,18 +80,32 @@ namespace Raytracing {
unsigned char* data;
public:
explicit ImageInput(const std::string& image);
/**
* Loads the image as a buffer for GUI icons
* @return pointer that must be manually freed.
*/
unsigned long* getImageAsIconBuffer();
unsigned char* getImageData(){return data;}
[[nodiscard]] int getImageSize() const{return width;}
unsigned char* getImageData() { return data; }
[[nodiscard]] int getImageSize() const { return width; }
~ImageInput();
};
// image writer class used to output the image to a file.
class ImageOutput {
private:
Image image;
const Image& image;
public:
explicit ImageOutput(const Image& image): image(image) {}
/**
* Writes the image stored in this class
* @param file file to write to
* @param formatExtension .png / .jpg etc
*/
virtual void write(const std::string& file, const std::string& formatExtension);
};

View File

@ -22,11 +22,11 @@
namespace Raytracing {
#ifdef COMPILE_GUI
#ifdef COMPILE_GUI
extern std::shared_ptr<VAO> aabbVAO;
extern int count;
extern int selected;
#endif
#endif
struct BVHObject {
Object* ptr = nullptr;
@ -34,11 +34,15 @@ namespace Raytracing {
};
struct BVHPartitionedSpace {
// corresponds to the AABB pair used to generate the partitioned space
std::vector<BVHObject> left;
std::vector<BVHObject> right;
};
inline bool operator==(const BVHPartitionedSpace& left, const BVHPartitionedSpace& right) {
// sometimes the partition function creates spaces with the same objects, which leads to infinite recursion.
// We can check if the spaces are equal and change the strategy used to split the AABB.
// and if that fails we can use this to just end the recursion.
if (left.left.size() != right.left.size() || left.right.size() != right.right.size())
return false;
for (int i = 0; i < left.left.size(); i++) {
@ -65,12 +69,14 @@ namespace Raytracing {
BVHNode* right;
// debug ints.
int index, hit = 0;
BVHNode(std::vector<BVHObject> objs, AABB aabb, BVHNode* left, BVHNode* right): objs(std::move(objs)), aabb(std::move(aabb)),
left(left), right(right) {
#ifdef COMPILE_GUI
index = count++;
#endif
}
~BVHNode() {
delete (left);
delete (right);
@ -81,28 +87,62 @@ namespace Raytracing {
private:
BVHNode* root = nullptr;
/**
* partition the objects to each AABB based on if they intersect with or not. if intersects both left will be preferred.
*/
static BVHPartitionedSpace partition(const std::pair<AABB, AABB>& aabbs, const std::vector<BVHObject>& objs);
/**
* Internal function to add objects to the correct BVH node. Creates the entire tree structure recursively. DO NOT USE.
*/
BVHNode* addObjectsRecursively(const std::vector<BVHObject>& objects, const BVHPartitionedSpace& prevSpace);
/**
* adds all the objects provided to the BVH, skipping objects which don't have proper AABBs
*/
void addObjects(const std::vector<Object*>& objects);
public:
std::vector<Object*> noAABBObjects;
/**
* creates the BVH using the provided objects, which should come from the world.
* @param objectsInWorld objects from the world to create the BVH which
*/
explicit BVHTree(const std::vector<Object*>& objectsInWorld) {
addObjects(objectsInWorld);
#ifdef COMPILE_GUI
#ifdef COMPILE_GUI
if (aabbVAO == nullptr) {
// create a basic cube for displaying the AABBs when debugging
auto aabbVertexData = Shapes::cubeVertexBuilder{};
if (aabbVAO == nullptr)
aabbVAO = std::make_shared<VAO>(aabbVertexData.cubeVerticesRaw, aabbVertexData.cubeUVs);
#endif
}
#endif
}
void addObjects(const std::vector<Object*>& objects);
BVHNode* getRoot() {return root;}
/**
* @return the root node of the BVH tree
*/
BVHNode* getRoot() { return root; }
/**
* @param ray ray to check intersection with
* @param min min of the ray to check
* @param max max of the ray to check
* @return a list of objects which the ray might intersect with between min and max
*/
std::vector<BVHObject> rayAnyHitIntersect(const Ray& ray, PRECISION_TYPE min, PRECISION_TYPE max);
~BVHTree() {
delete (root);
}
};
/**
* Everything below this line is unused due to inconsistencies in performance. Some parts of the code may contain references to this
* however the actual algorithm doesn't take into account BVHs at the object level.
*/
struct TriangleBVHObject {
Vec4 position;
std::shared_ptr<Triangle> tri;
@ -140,13 +180,16 @@ namespace Raytracing {
TriangleBVHNode* right;
// debug ints.
int index, hit = 0;
BVHHitData firstHitRayIntersectTraversal(const Ray& r, PRECISION_TYPE min, PRECISION_TYPE max);
TriangleBVHNode(std::vector<TriangleBVHObject> objs, AABB aabb, TriangleBVHNode* left, TriangleBVHNode* right)
: objs(std::move(objs)), aabb(std::move(aabb)), left(left), right(right) {
#ifdef COMPILE_GUI
index = count++;
#endif
}
~TriangleBVHNode() {
delete (left);
delete (right);
@ -158,24 +201,30 @@ namespace Raytracing {
TriangleBVHNode* root = nullptr;
static TriangleBVHPartitionedSpace partition(const std::pair<AABB, AABB>& aabbs, const std::vector<TriangleBVHObject>& objs);
TriangleBVHNode* addObjectsRecursively(const std::vector<TriangleBVHObject>& objects, const TriangleBVHPartitionedSpace& prevSpace);
public:
int index;
explicit TriangleBVHTree(const std::vector<TriangleBVHObject>& objectsInWorld) {
addObjects(objectsInWorld);
#ifdef COMPILE_GUI
#ifdef COMPILE_GUI
auto aabbVertexData = Shapes::cubeVertexBuilder{};
if (aabbVAO == nullptr)
aabbVAO = std::make_shared<VAO>(aabbVertexData.cubeVerticesRaw, aabbVertexData.cubeUVs);
index = count++;
#endif
#endif
}
void addObjects(const std::vector<TriangleBVHObject>& objects);
TriangleBVHNode* getRoot() {return root;}
TriangleBVHNode* getRoot() { return root; }
std::vector<TriangleBVHObject> rayFirstHitIntersect(const Ray& ray, PRECISION_TYPE min, PRECISION_TYPE max);
std::vector<TriangleBVHObject> rayAnyHitIntersect(const Ray& ray, PRECISION_TYPE min, PRECISION_TYPE max);
~TriangleBVHTree() {
delete (root);
}

View File

@ -19,36 +19,64 @@ namespace Raytracing {
X = 0, Y = 1, Z = 2
};
/**
* Simple minimal Axis Aligned Bounding Box implementation. Based on my C++ Game Engine's AABB which is based on my Java Game Engine's AABB
* which is based on my Minecraft Clone v2's AABB which is based on a decompiled AABB class from Minecraft Beta 1.7.3
*/
class AABB {
protected:
Vec4 min;
Vec4 max;
public:
AABB(): min({0,0,0}), max({0,0,0}) {};
/**
* Creates an empty AABB. Not useful for anything.
*/
AABB(): min({0, 0, 0}), max({0, 0, 0}) {};
/**
* Creates an AABB using the provided min/max coords
*/
AABB(PRECISION_TYPE minX, PRECISION_TYPE minY, PRECISION_TYPE minZ, PRECISION_TYPE maxX, PRECISION_TYPE maxY, PRECISION_TYPE maxZ):
min{minX, minY, minZ}, max{maxX, maxY, maxZ} {
}
/**
* Creates an AABB using the provided min/max vector coords
*/
AABB(const Vec4& min, const Vec4& max): min(min), max(max) {}
// creates an AABB extending of size centered on x, y, z
/**
* creates an AABB extending of size centered on x, y, z
* @param size radius of the AABB
*/
AABB(PRECISION_TYPE x, PRECISION_TYPE y, PRECISION_TYPE z, PRECISION_TYPE size):
min{x - size, y - size, z - size}, max{x + size, y + size, z + size} {
}
// translates the AABB to position x,y,z for world collision detection
/**
* translates the AABB to position x,y,z for world collision detection
* This creates a copy AABB.
* @return a copy of this AABB translated by Vec4{x,y,z}
*/
[[nodiscard]] AABB translate(PRECISION_TYPE x, PRECISION_TYPE y, PRECISION_TYPE z) const {
Vec4 pos = {x, y, z};
return {min + pos, max + pos};
}
/**
* Translates this AABB using a vector instead of individual coords
* @return a copy of this AABB translated by vec
*/
[[nodiscard]] AABB translate(const Vec4& vec) const {
Vec4 pos = {vec.x(), vec.y(), vec.z()};
return {min + pos, max + pos};
}
// returns an expanded version of this AABB is the other AABB is larger then this AABB
/**
* returns an expanded version of this AABB is the other AABB is larger then this AABB
* @param other other AABB to expand against
* @return a AABB which includes this AABB and the other AABB. If this AABB is empty it will return other.
*/
[[nodiscard]] AABB expand(const AABB& other) const {
// terrible hack
// a 0 init AABB was having issues when being "expanded" to a place which is larger
@ -64,24 +92,119 @@ namespace Raytracing {
return {minX, minY, minZ, maxX, maxY, maxZ};
}
[[nodiscard]] inline bool
intersects(PRECISION_TYPE minX, PRECISION_TYPE minY, PRECISION_TYPE minZ, PRECISION_TYPE maxX, PRECISION_TYPE maxY,
PRECISION_TYPE maxZ) const {
/**
* Checks if this AABB interests with the AABB described in individual coordinates
* @return true if intersection occurs
*/
[[nodiscard]] inline bool intersects(
PRECISION_TYPE minX, PRECISION_TYPE minY, PRECISION_TYPE minZ, PRECISION_TYPE maxX, PRECISION_TYPE maxY, PRECISION_TYPE maxZ
) const {
return min.x() <= maxX && max.x() >= minX && min.y() <= maxY && max.y() >= minY && min.z() <= maxZ && max.z() >= minZ;
}
/**
* Checks if this AABB interests with the AABB described in vector coordinates
* @return true if intersection occurs
*/
[[nodiscard]] inline bool intersects(const Vec4& minV, const Vec4& maxV) const {
return intersects(minV.x(), minV.y(), minV.z(), maxV.x(), maxV.y(), maxV.z());
}
/**
* Checks if this AABB intersects with the other AABB
* @return true if intersection
*/
[[nodiscard]] inline bool intersects(const AABB& other) const {
return intersects(other.min, other.max);
}
/**
* Checks if the provided ray intersects with this AABB between tmin and tmax using an implementation defined method.
* @return true if intersected
*/
AABBHitData intersects(const Ray& ray, PRECISION_TYPE tmin, PRECISION_TYPE tmax);
/**
* Slap method of checking for intersection, see the comment in the cpp file. DO NOT USE OUTSIDE THIS CLASS.
*/
AABBHitData simpleSlabRayAABBMethod(const Ray& ray, PRECISION_TYPE tmin, PRECISION_TYPE tmax);
/**
* Creates a transform matrix using information contained within the AABB, done to prevent repeating code.
* @return a transform (model) matrix for this AABB.
*/
[[nodiscard]] Mat4x4 getTransform() const;
/**
* @return the exact center of the AABB
*/
[[nodiscard]] inline Vec4 getCenter() const {
return {min.x() + (max.x() - min.x()) * 0.5, min.y() + (max.y() - min.y()) * 0.5, min.z() + (max.z() - min.z()) * 0.5};
}
/**
* @return the longest axis distance from the center point of the AABB
*/
[[nodiscard]] PRECISION_TYPE longestDistanceFromCenter() const;
/**
* 0 - x
* 1 - y
* 2 - z
*/
[[nodiscard]] int longestAxis() const;
/**
* @return the complete length from min to max of the longest axis
*/
[[nodiscard]] PRECISION_TYPE longestAxisLength() const;
/**
* @return a pair of AABB which are subsets of this AABB split by the longest axis of this AABB
*/
[[nodiscard]] std::pair<AABB, AABB> splitByLongestAxis();
/**
* @param axis axis to split on
* @return a pair of AABB which are subsets of this AABB split along the axis provided
*/
[[nodiscard]] std::pair<AABB, AABB> splitAlongAxis(AABBAxis axis);
/**
* Splits the AABB by a rotating axis. Not recommended to use. Not thread safe across ALL AABB objects.
*/
[[nodiscard]] std::pair<AABB, AABB> splitAlongAxis();
/**
* @return average distance to the center of this object, subject to axis bias (really small or really big)
*/
[[nodiscard]] PRECISION_TYPE avgDistanceFromCenter() const;
/**
* Returns true if the min and max are equal, which tells us this AABB wasn't assigned
* or was properly created. Either way it isn't responsible to use the AABB in said case.
*/
[[nodiscard]] inline bool isEmpty() const { return min == max; }
[[nodiscard]] Vec4 getMin() const { return min; }
[[nodiscard]] Vec4 getMax() const { return max; }
[[nodiscard]] inline PRECISION_TYPE getXRadius(const Vec4& center) const {
return max.x() - center.x();
}
[[nodiscard]] inline PRECISION_TYPE getYRadius(const Vec4& center) const {
return max.y() - center.y();
}
[[nodiscard]] inline PRECISION_TYPE getZRadius(const Vec4& center) const {
return max.z() - center.z();
}
/*
* Minecraft code below this
*/
[[nodiscard]] inline bool isInside(PRECISION_TYPE x, PRECISION_TYPE y, PRECISION_TYPE z) const {
return x >= min.x() && x <= max.x() && y >= min.y() && y <= max.y() && z >= min.z() && z <= max.z();
}
@ -97,44 +220,9 @@ namespace Raytracing {
[[nodiscard]] inline bool intersectsWithXY(PRECISION_TYPE x, PRECISION_TYPE y) const {
return x >= min.x() && x <= max.x() && y >= min.y() && y <= max.y();
}
[[nodiscard]] inline Vec4 getCenter() const {
return {min.x() + (max.x() - min.x()) * 0.5, min.y() + (max.y() - min.y()) * 0.5, min.z() + (max.z() - min.z()) * 0.5};
}
[[nodiscard]] PRECISION_TYPE longestDistanceFromCenter() const;
// 0 - x
// 1 - y
// 2 - z
[[nodiscard]] int longestAxis() const;
[[nodiscard]] PRECISION_TYPE longestAxisLength() const;
[[nodiscard]] std::pair<AABB, AABB> splitByLongestAxis();
[[nodiscard]] std::pair<AABB, AABB> splitAlongAxis(AABBAxis axis);
[[nodiscard]] std::pair<AABB, AABB> splitAlongAxis();
[[nodiscard]] PRECISION_TYPE avgDistanceFromCenter() const;
// Returns true if the min and max are equal, which tells us this AABB wasn't assigned
// or was properly created. Either way it isn't responsible to use the AABB in said case.
[[nodiscard]] inline bool isEmpty() const { return min == max; }
[[nodiscard]] Vec4 getMin() const { return min; }
[[nodiscard]] Vec4 getMax() const { return max; }
[[nodiscard]] inline PRECISION_TYPE getXRadius(const Vec4& center) const {
return max.x() - center.x();
}
[[nodiscard]] inline PRECISION_TYPE getYRadius(const Vec4& center) const {
return max.y() - center.y();
}
[[nodiscard]] inline PRECISION_TYPE getZRadius(const Vec4& center) const {
return max.z() - center.z();
}
};
inline bool operator==(const AABB& a, const AABB& b){
inline bool operator==(const AABB& a, const AABB& b) {
const auto& aMax = a.getMax();
const auto& aMin = a.getMin();
const auto& bMax = b.getMax();
@ -142,18 +230,6 @@ namespace Raytracing {
return aMax == bMax && aMin == bMin;
}
#ifndef USE_SIMD_CPU
inline bool operator&=(const AABB& a, const AABB& b) {
const auto& aMax = a.getMax();
const auto& aMin = a.getMin();
const auto& bMax = b.getMax();
const auto& bMin = b.getMin();
PRECISION_TYPE E = 0.5;
return (aMax < bMax + E && aMax > bMax - E && aMin < bMin + E && aMin > bMin - E);
return aMax == bMax && aMin == bMin;
}
#endif
inline std::ostream& operator<<(std::ostream& out, const AABB& v) {
auto max = v.getMax();
auto min = v.getMin();

View File

@ -275,8 +275,7 @@ namespace Raytracing {
wType v4;
};
// isn't much of a reason to do it this way
// it's unlikely that we'll need to use the w component
// but it helps better line up with the GPU and other SIMD type instructions, like what's above.
// it's unlikely that we'll need to use the w component but it helps better line up with the GPU and other SIMD type instructions, like what's above.
valueType value;
public:
Vec4(): value{0, 0, 0, 0} {}
@ -287,8 +286,6 @@ namespace Raytracing {
Vec4(const Vec4& vec): value{vec.x(), vec.y(), vec.z(), vec.w()} {}
// most of the modern c++ here is because clang tidy was annoying me
[[nodiscard]] inline PRECISION_TYPE x() const { return value.v1.x; }
[[nodiscard]] inline PRECISION_TYPE y() const { return value.v2.y; }
@ -316,27 +313,35 @@ namespace Raytracing {
return x() * x() + y() * y() + z() * z() + w() * w();
}
// returns the unit-vector.
/**
* returns the unit-vector.
*/
[[nodiscard]] inline Vec4 normalize() const {
PRECISION_TYPE mag = magnitude();
return {x() / mag, y() / mag, z() / mag, w() / mag};
}
// add operator before the vec returns the magnitude
/**
* add operator before the vec returns the magnitude
*/
PRECISION_TYPE operator+() const {
return magnitude();
}
// preforms the dot product of left * right
/**
* performs the dot product of left * right
*/
static inline PRECISION_TYPE dot(const Vec4& left, const Vec4& right) {
return left.x() * right.x()
+ left.y() * right.y()
+ left.z() * right.z();
}
// preforms the cross product of left X right
// since a general solution to the cross product doesn't exist in 4d
// we are going to ignore the w.
/**
* performs the cross product of left X right
* since a general solution to the cross product doesn't exist in 4d
* we are going to ignore the w.
*/
static inline Vec4 cross(const Vec4& left, const Vec4& right) {
return {left.y() * right.z() - left.z() * right.y(),
left.z() * right.x() - left.x() * right.z(),
@ -457,12 +462,6 @@ namespace Raytracing {
return out << "Ray{" << v.getStartingPoint() << " " << v.getDirection() << "} ";
}
#ifdef USE_SIMD_CPU
#else
#endif
// only float supported because GPUs don't like doubles
// well they do but there isn't much of a reason to use them since this is for opengl
class Mat4x4 {

View File

@ -20,7 +20,16 @@ namespace Raytracing {
class MPI {
public:
/**
* Create the OpenMPI instance
* @param argc argc provided as inputs to the main function
* @param argv argv provided as inputs to the main function
*/
static void init(int argc, char** argv);
/**
* @return the queue of image bounds which this process needs to do work on
*/
static std::queue<RaycasterImageBounds> getCurrentImageRegionAssociation(RayCaster& raycaster);
};
}

View File

@ -167,19 +167,7 @@ namespace Raytracing {
}
inline static Vec4 randomUnitVector() {
// there are two methods to generating a random unit sphere
// one which is fast and approximate:
auto v = Vec4(rnd.getDouble(), rnd.getDouble(), rnd.getDouble());
return v.normalize();
// and the one which generates an actual unit vector
/*while (true) {
auto v = Vec4(rnd.getDouble(), rnd.getDouble(), rnd.getDouble());
if (v.lengthSquared() >= 1)
continue;
return v;
}*/
// the second creates better results but is 18% slower (better defined shadows)
// likely due to not over generating unit vectors biased towards the corners
return Vec4(rnd.getDouble(), rnd.getDouble(), rnd.getDouble()).normalize();
}
RayCaster(Camera& c, Image& i, World& world, const Parser& p):

View File

@ -7,6 +7,9 @@
* so why reinvent the wheel right?
* So to avoid any kind of self plagiarism, I fully credit the source which is here:
* https://github.com/Tri11Paragon/Trapdoor-Engine/tree/dev/C%2B%2B%20Engine
*
* 2022-12-12 update:
* the above is not 100% true anymore. The functions are very similar though.
*/
#ifndef STEP_2_DEBUG_H
@ -15,19 +18,24 @@
#include "std.h"
#include <config.h>
#include <mutex>
#ifdef COMPILE_GUI
#include <graphics/debug_gui.h>
#endif
namespace Raytracing {
class profiler;
extern std::unordered_map<std::string, std::shared_ptr<profiler>> profiles;
class DebugTab{
class DebugTab {
protected:
std::string name;
public:
virtual void render() {}
std::string getName() {
return name;
}
@ -38,14 +46,17 @@ namespace Raytracing {
long _start = 0;
long _end = 0;
std::unordered_map<std::string, std::pair<long, long>> timings;
std::mutex timerLock {};
std::mutex timerLock{};
public:
explicit profiler(std::string name);
void start();
void start(const std::string& name);
static void start(const std::string& name, const std::string& tabName) {
static std::mutex staticLock{};
// since we are using threads here the change is the use of this mutex.
std::scoped_lock lock(staticLock);
if (profiles.contains(name)) {
auto p = profiles.at(name);
@ -58,31 +69,36 @@ namespace Raytracing {
}
void end();
void end(const std::string& name);
static void end(const std::string& name, const std::string& tabName){
static void end(const std::string& name, const std::string& tabName) {
static std::mutex staticLock{};
std::scoped_lock lock(staticLock);
try {
profiles.at(name)->end(tabName);
} catch (std::exception& e){}
} catch (std::exception& e) {}
}
void print();
static void print(const std::string& name){
static void print(const std::string& name) {
static std::mutex staticLock{};
std::scoped_lock lock(staticLock);
try {
profiles.at(name)->print();
} catch (std::exception& e){}
} catch (std::exception& e) {}
}
void endAndPrint();
static void endAndPrint(const std::string& name, const std::string& tabName){
static void endAndPrint(const std::string& name, const std::string& tabName) {
profiler::end(name, tabName);
profiler::print(name);
}
void render();
static void render(int count) {
for (const auto& p : profiles)
p.second->render();

View File

@ -12,7 +12,18 @@ namespace Raytracing {
class ShaderLoader {
public:
/**
* Creates a define which will be replaced as the shader is loaded.
* @param key name of the define to replace
* @param replacement the string which the define will be set to.
*/
static void define(const std::string& key, const std::string& replacement);
/**
* loads a line-terminated string from the file. Will preprocess defines and attempt to recursively load includes.
* @param path path to file to load
* @return a single string where each line is terminated with a \n
*/
static std::string loadShaderFile(const std::string& path);
};

View File

@ -113,6 +113,11 @@ namespace Raytracing {
class String {
public:
/**
* Converts the string into lower case
* @param s string to lower case
* @return a string copy that is all lower case
*/
static inline std::string toLowerCase(const std::string& s) {
std::stringstream str;
std::for_each(
@ -123,6 +128,11 @@ namespace Raytracing {
return str.str();
}
/**
* Converts the string into upper case
* @param s string to upper case
* @return a string copy that is all upper case
*/
static inline std::string toUpperCase(const std::string& s) {
std::stringstream str;
std::for_each(
@ -133,6 +143,9 @@ namespace Raytracing {
return str.str();
}
/**
* @return the standard string of time.now
*/
static inline std::string getTimeString() {
auto t = std::time(nullptr);
auto now = std::localtime(&t);

View File

@ -23,11 +23,17 @@
namespace Raytracing {
/**
* A semi-working implementation of an OpenCL raytracer. Two major issues pertain to its lack of completion:
* 1. I ran out of time
* 2. Doing the wrong thing in OpenCL seems to crash my computer with 0 warning and 0 error messages. Fun. Especially when restarting takes several minutes.
*/
class OpenClRaytracer {
private:
CLProgram* program;
Image& image;
Camera& camera;
// 16x16 can be used here but 8x8 works great on my GPU.
size_t localWorks[2]{8, 8};
size_t maxTriangleSize = 0;
size_t objectCount = 0;
@ -36,9 +42,24 @@ namespace Raytracing {
~OpenClRaytracer();
/**
* Stores the objects in the world inside the byte buffer provided.
* @param buffer buffer to store objects into
* @param totalWorldBytes total bytes between all the objects in the world.
*/
void storeObjects(unsigned char* buffer, size_t totalWorldBytes);
/**
* Updates the camera vectors on the GPU
*/
void updateCameraInformation();
/**
* stores the objects into a buffer which is loaded into the GPU.
* @param objects objects in world
* @param totalWorldBytes total bytes taken by the objects
* @return the buffer containing the objects. Must be manually deleted.
*/
unsigned char* createObjectBuffer(const std::vector<Object*>& objects, size_t totalWorldBytes);
void run();

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 904 KiB

View File

@ -0,0 +1,2 @@
# Blender 3.4.0 MTL File: 'None'
# www.blender.org

View File

@ -0,0 +1,16 @@
# Blender 3.4.0
# www.blender.org
mtllib planeflipped.mtl
o Plane
v -0.000000 -8.781555 9.817993
v -0.000001 -8.781555 -9.817993
v 0.000001 8.781555 9.817993
v 0.000000 8.781555 -9.817993
vn -1.0000 -0.0000 -0.0000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 0.000000 1.000000
vt 1.000000 1.000000
s 0
f 3/3/1 2/2/1 1/1/1
f 3/3/1 4/4/1 2/2/1

View File

@ -84,11 +84,11 @@ int main(int argc, char** args) {
"\tSets the output format to BMP, PNG, or JPEG. \n", "PNG"
);
parser.addOption(
"-w", "Image Width\n"
"--width", "Image Width\n"
"\tSets the width of the output image.\n", "1440"
);
parser.addOption(
"-h", "Image Height\n"
"--height", "Image Height\n"
"\tSets the height of the output image.\n", "720"
);
parser.addOption(
@ -156,12 +156,12 @@ int main(int argc, char** args) {
#endif
Raytracing::Image image(std::stoi(parser.getOptionValue("-w")), std::stoi(parser.getOptionValue("-h")));
Raytracing::Image image(std::stoi(parser.getOptionValue("--width")), std::stoi(parser.getOptionValue("--height")));
Raytracing::Camera camera(std::stoi(parser.getOptionValue("--fov")), image);
//camera.setPosition({0, 0, 1});
camera.setPosition({20, 12, 20});
camera.lookAt({0, 0, 0});
camera.setPosition({15.5, 10, 22});
camera.lookAt({0, 4, 0});
#ifdef COMPILE_GUI
@ -178,7 +178,9 @@ int main(int argc, char** args) {
Raytracing::ModelData spider = Raytracing::OBJLoader::loadModel(parser.getOptionValue("--resources") + "models/spider.obj");
Raytracing::ModelData house = Raytracing::OBJLoader::loadModel(parser.getOptionValue("--resources") + "models/house.obj");
Raytracing::ModelData plane = Raytracing::OBJLoader::loadModel(parser.getOptionValue("--resources") + "models/plane.obj");
Raytracing::ModelData planeflipped = Raytracing::OBJLoader::loadModel(parser.getOptionValue("--resources") + "models/planeflipped.obj");
Raytracing::ModelData debugCube = Raytracing::OBJLoader::loadModel(parser.getOptionValue("--resources") + "models/debugcube.obj");
Raytracing::ModelData skyboxCube = Raytracing::OBJLoader::loadModel(parser.getOptionValue("--resources") + "models/cubeflipped.obj");
Raytracing::ModelData floor = Raytracing::OBJLoader::loadModel(parser.getOptionValue("--resources") + "models/floor.obj");
Raytracing::ModelData deathSphere = Raytracing::OBJLoader::loadModel(parser.getOptionValue("--resources") + "models/deathsphere.obj");
@ -187,10 +189,13 @@ int main(int argc, char** args) {
world.add("blueDiffuse", new Raytracing::DiffuseMaterial{Raytracing::Vec4{0, 0, 1.0, 1}});
world.add("greenMetal", new Raytracing::MetalMaterial{Raytracing::Vec4{0.4, 1.0, 0.4, 1}});
world.add("blueMirror", new Raytracing::BrushedMetalMaterial{Raytracing::Vec4{0.2, 0.2, 0.8, 1}, 0.0f});
world.add("blueMirror", new Raytracing::BrushedMetalMaterial{Raytracing::Vec4{0.4, 0.4, 0.9, 1}, 0.01f});
world.add("imperfectMirror", new Raytracing::BrushedMetalMaterial{Raytracing::Vec4{0.8, 0.8, 0.8, 1}, 0.4f});
world.add("perfectMirror", new Raytracing::BrushedMetalMaterial{Raytracing::Vec4{0.8, 0.8, 0.8, 1}, 0.0f});
// Textures in here will automatically be added to the world and used when generating the objects in the world.
std::vector<std::string> textures = {
"029a_-_Survival_of_the_Idiots_349.jpg",
"029a_-_Survival_of_the_Idiots_349.jpg",
"760213.png",
"1531688878833.png",
@ -200,19 +205,28 @@ int main(int argc, char** args) {
"1544568744585.jpg",
"1544568782473.jpg",
"1616466348379.png",
"livingmylifeinstereodoesntseemthatbad.PNG"
"livingmylifeinstereodoesntseemthatbad.PNG",
"1659204763642001.jpg",
"1659204763642001.jpg",
"zucc.png",
"zucc.png",
"brockboy.jpg",
"brockboy.jpg"
};
for (const std::string& texture : textures) {
world.add(texture, new Raytracing::TexturedMaterial{parser.getOptionValue("--resources") + "images/" + texture});
}
world.add("grass", new Raytracing::TexturedMaterial{parser.getOptionValue("--resources") + "images/d5fcf6258bd25b58773de035dce4663d.jpg", 4.0f});
world.add("floor", new Raytracing::TexturedMaterial{parser.getOptionValue("--resources") + "images/brick_floor_diff_1k.png", 4.0f});
world.add("skybox", new Raytracing::TexturedMaterial{parser.getOptionValue("--resources") + "images/robson.jpeg", 2.0f});
world.add(new Raytracing::ModelObject({0, 0, 0}, floor, world.getMaterial("grass")));
world.add(new Raytracing::ModelObject({0, 0, 0}, floor, world.getMaterial("floor")));
world.add(new Raytracing::ModelObject({0, 0, 0}, skyboxCube, world.getMaterial("skybox")));
// odds and ends
world.add(new Raytracing::ModelObject({-40, 0, -40}, deathSphere, world.getMaterial("imperfectMirror")));
world.add(new Raytracing::ModelObject({10, 4, -20}, deathSphere, world.getMaterial("imperfectMirror")));
world.add(new Raytracing::ModelObject({0, 2, 0}, spider, world.getMaterial("redDiffuse")));
world.add(new Raytracing::ModelObject({-5, 5, 0}, plane, world.getMaterial("greenMetal")));
world.add(new Raytracing::ModelObject({-5.001, 5, 0}, planeflipped, world.getMaterial("greenMetal")));
world.add(new Raytracing::ModelObject({0, 1, -5}, house, world.getMaterial("blueDiffuse")));
world.add(new Raytracing::ModelObject({0, 1, 5}, house, world.getMaterial("blueDiffuse")));
@ -232,17 +246,13 @@ int main(int argc, char** args) {
if (i % 2 == 0) {
// cubes are 1 off the ground
pos = Vec4{pos.x(), 1, pos.z()};
if (chance.getDouble() <= 0.8) {
auto& texture = textures[textureIndexSelect.getLong()];
world.add(new Raytracing::ModelObject{pos, debugCube, world.getMaterial(texture)});
} else {
world.add(new Raytracing::ModelObject{pos, debugCube, world.getMaterial("redDiffuse")});
}
} else {
auto radius = (chance.getDouble() + 0.15f) * 2.0f;
// while spheres have a variable radius
pos = Vec4{pos.x(), radius, pos.z()};
if (chance.getDouble() <= 0.65) {
if (chance.getDouble() <= 0.75) {
auto& texture = textures[textureIndexSelect.getLong()];
world.add(new Raytracing::SphereObject{pos, radius, world.getMaterial(texture)});
} else {

View File

@ -127,8 +127,8 @@ namespace Raytracing {
break;
}
} else {
// since we didn't hit, we hit the sky.
color = color * Vec4{0.5, 0.7, 1.0};
//color = Vec4{};
// if we don't hit we cannot keep looping.
break;
@ -275,6 +275,8 @@ namespace Raytracing {
threads = 1;
divs = 1;
} else {
// check for the special case of threads being 0, which is used by the commandline parser to assert that the option wasn't used.
// in which case we will use the number of threads that the physical system has available
if (threads == 0)
threads = (int) system_threads;
// calculate the max divisions we can have per side, then expand by a factor of 4.