Chunk storage and switch to vertex arrays
parent
d3db6e90e0
commit
6c265b7c3c
Binary file not shown.
|
@ -1,26 +1,28 @@
|
||||||
# ninja log v5
|
# ninja log v5
|
||||||
|
2 20 1676232077903790563 CMakeFiles/FinalProject.dir/src/world/registry.cpp.o 1550caaa717d6c77
|
||||||
50 999 1673895013560650475 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/string.cpp.o cfdb4277170e1146
|
50 999 1673895013560650475 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/string.cpp.o cfdb4277170e1146
|
||||||
19 736 1675834610673267689 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/monitor.c.o 239e3c995f2fc57c
|
19 736 1675834610673267689 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/monitor.c.o 239e3c995f2fc57c
|
||||||
1 523 1676069587365885604 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/system.cpp.o d9d07699ecf3c7f6
|
2 421 1676232078307801473 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/system.cpp.o d9d07699ecf3c7f6
|
||||||
2 1125 1675915441950533587 libraries/BLT/CMakeFiles/BLT.dir/src/blt/profiling/profiler.cpp.o f6cc949795fe632a
|
2 1098 1676232078983819728 libraries/BLT/CMakeFiles/BLT.dir/src/blt/profiling/profiler.cpp.o f6cc949795fe632a
|
||||||
1 591 1676069587433887466 CMakeFiles/FinalProject.dir/src/render/window.cpp.o aa0f847cb87c783c
|
2 768 1676232078655810871 CMakeFiles/FinalProject.dir/src/render/window.cpp.o aa0f847cb87c783c
|
||||||
19 685 1675834610617266094 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/vulkan.c.o 7ac098ea2e755b71
|
19 685 1675834610617266094 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/vulkan.c.o 7ac098ea2e755b71
|
||||||
2 377 1675835240591243670 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/window.c.o a716fdf6afcb3ac2
|
2 377 1675835240591243670 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/window.c.o a716fdf6afcb3ac2
|
||||||
19 807 1675834610745269744 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/x11_init.c.o 7a310a4749a2e05
|
19 807 1675834610745269744 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/x11_init.c.o 7a310a4749a2e05
|
||||||
0 98 1676224079279616938 build.ninja 190f84590f6ee728
|
0 98 1676240847353699603 build.ninja 190f84590f6ee728
|
||||||
2 434 1675915441258513581 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/format.cpp.o 342a5daa6ca9681d
|
2 434 1675915441258513581 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/format.cpp.o 342a5daa6ca9681d
|
||||||
18 706 1675834610629266436 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/init.c.o 6051295f860fb367
|
18 706 1675834610629266436 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/init.c.o 6051295f860fb367
|
||||||
948 1087 1676069680836445373 libraries/BLT/libBLT.a 163b10f2e7f6635
|
1099 1278 1676232079155824369 libraries/BLT/libBLT.a 163b10f2e7f6635
|
||||||
870 1011 1676096394558982469 FinalProject 542cc2a74c29d7b
|
1278 1376 1676232079259827178 FinalProject 907f0360f99b8435
|
||||||
1 49 1673895012612644820 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/queues.cpp.o 55504c9533707c50
|
1 49 1673895012612644820 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/queues.cpp.o 55504c9533707c50
|
||||||
556 706 1675834610629266436 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/posix_thread.c.o 1da38a427ecbe82e
|
556 706 1675834610629266436 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/posix_thread.c.o 1da38a427ecbe82e
|
||||||
2 1036 1675915441858530925 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/logging.cpp.o 13e8110c601a4029
|
2 1099 1676232078983819728 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/logging.cpp.o 13e8110c601a4029
|
||||||
677 879 1675834610785270884 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/glx_context.c.o cc5282d2f93e112a
|
677 879 1675834610785270884 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/glx_context.c.o cc5282d2f93e112a
|
||||||
555 677 1675834610613265978 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/xkb_unicode.c.o 86b8813c62a6792d
|
555 677 1675834610613265978 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/xkb_unicode.c.o 86b8813c62a6792d
|
||||||
|
1 668 1676232078555808170 CMakeFiles/FinalProject.dir/src/render/camera.cpp.o 7f43512660c0023
|
||||||
19 1031 1675834610965276015 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/x11_window.c.o f99a7b64357948e7
|
19 1031 1675834610965276015 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/x11_window.c.o f99a7b64357948e7
|
||||||
2 948 1676069680728442417 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/loader.cpp.o 7528e7ecb90e9c26
|
2 948 1676069680728442417 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/loader.cpp.o 7528e7ecb90e9c26
|
||||||
4 334 1675868672109234286 libraries/glfw-3.3.8/src/libglfw3.a 4545fd6d0d1d5667
|
4 334 1675868672109234286 libraries/glfw-3.3.8/src/libglfw3.a 4545fd6d0d1d5667
|
||||||
1 869 1676096394410976932 CMakeFiles/FinalProject.dir/src/main.cpp.o 460fff588e5870a1
|
1 858 1676232078743813246 CMakeFiles/FinalProject.dir/src/main.cpp.o 460fff588e5870a1
|
||||||
1 1125 1673895013688651239 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/random.cpp.o 2e94f773455f509
|
1 1125 1673895013688651239 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/random.cpp.o 2e94f773455f509
|
||||||
18 830 1675834610765270314 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/input.c.o cb7dfd07cdb7c2ab
|
18 830 1675834610765270314 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/input.c.o cb7dfd07cdb7c2ab
|
||||||
825 1269 1675834611193282518 libraries/BLT/CMakeFiles/BLT.dir/src/blt/nbt/nbt_block.cpp.o 18383112b14888b9
|
825 1269 1675834611193282518 libraries/BLT/CMakeFiles/BLT.dir/src/blt/nbt/nbt_block.cpp.o 18383112b14888b9
|
||||||
|
@ -30,19 +32,9 @@
|
||||||
911 1024 1675172775513082023 Final_Project ac4f30c617bfa6fd
|
911 1024 1675172775513082023 Final_Project ac4f30c617bfa6fd
|
||||||
680 883 1675834610813271683 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/egl_context.c.o e777fb0716cc9fd8
|
680 883 1675834610813271683 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/egl_context.c.o e777fb0716cc9fd8
|
||||||
2 438 1675894969704002907 libraries/BLT/CMakeFiles/BLT.dir/src/blt/nbt/nbt.cpp.o a93fa48842fb10a4
|
2 438 1675894969704002907 libraries/BLT/CMakeFiles/BLT.dir/src/blt/nbt/nbt.cpp.o a93fa48842fb10a4
|
||||||
686 825 1675834610761270198 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/osmesa_context.c.o c49ca4e889b3908b
|
|
||||||
2 316 1675881681815231506 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/filesystem.cpp.o ac1bd7bf33d73c31
|
|
||||||
1 798 1676096311636683630 CMakeFiles/FinalProject.dir/src/render/gl.cpp.o d59ba6eec5836ace
|
|
||||||
706 883 1675834610809271567 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/linux_joystick.c.o afc8940b6e7eeae1
|
|
||||||
2 20 1676232077903790563 CMakeFiles/FinalProject.dir/src/world/registry.cpp.o 1550caaa717d6c77
|
|
||||||
2 421 1676232078307801473 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/system.cpp.o d9d07699ecf3c7f6
|
|
||||||
2 490 1676232078375803310 CMakeFiles/FinalProject.dir/src/world/chunk/storage.cpp.o c62e5c67ebfa06d
|
2 490 1676232078375803310 CMakeFiles/FinalProject.dir/src/world/chunk/storage.cpp.o c62e5c67ebfa06d
|
||||||
1 668 1676232078555808170 CMakeFiles/FinalProject.dir/src/render/camera.cpp.o 7f43512660c0023
|
686 825 1675834610761270198 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/osmesa_context.c.o c49ca4e889b3908b
|
||||||
2 768 1676232078655810871 CMakeFiles/FinalProject.dir/src/render/window.cpp.o aa0f847cb87c783c
|
|
||||||
2 849 1676232078735813031 CMakeFiles/FinalProject.dir/src/world/chunk/chunk.cpp.o c2a1c71b30b93ca7
|
2 849 1676232078735813031 CMakeFiles/FinalProject.dir/src/world/chunk/chunk.cpp.o c2a1c71b30b93ca7
|
||||||
1 858 1676232078743813246 CMakeFiles/FinalProject.dir/src/main.cpp.o 460fff588e5870a1
|
2 316 1675881681815231506 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/filesystem.cpp.o ac1bd7bf33d73c31
|
||||||
1 1057 1676232078943818647 CMakeFiles/FinalProject.dir/src/render/gl.cpp.o d59ba6eec5836ace
|
1 1057 1676232078943818647 CMakeFiles/FinalProject.dir/src/render/gl.cpp.o d59ba6eec5836ace
|
||||||
2 1098 1676232078983819728 libraries/BLT/CMakeFiles/BLT.dir/src/blt/profiling/profiler.cpp.o f6cc949795fe632a
|
706 883 1675834610809271567 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/linux_joystick.c.o afc8940b6e7eeae1
|
||||||
2 1099 1676232078983819728 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/logging.cpp.o 13e8110c601a4029
|
|
||||||
1099 1278 1676232079155824369 libraries/BLT/libBLT.a 163b10f2e7f6635
|
|
||||||
1278 1376 1676232079259827178 FinalProject 907f0360f99b8435
|
|
||||||
|
|
|
@ -1,39 +1,11 @@
|
||||||
/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=/opt/netbrains/clion/clion-2022.1.3/bin/ninja/linux/ninja -G Ninja -S "/home/brett/Documents/Brock/CS 3P98/Final Project" -B "/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-debug"
|
/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=/opt/netbrains/clion/clion-2022.1.3/bin/ninja/linux/ninja -G Ninja -S "/home/brett/Documents/Brock/CS 3P98/Final Project" -B "/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-debug"
|
||||||
-- 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 Debug
|
Building for Debug
|
||||||
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
|
|
||||||
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
|
|
||||||
-- Found Threads: TRUE
|
|
||||||
-- Using X11 for window creation
|
-- Using X11 for window creation
|
||||||
-- Found X11: /usr/include
|
|
||||||
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
|
|
||||||
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
|
|
||||||
-- Looking for gethostbyname
|
|
||||||
-- Looking for gethostbyname - found
|
|
||||||
-- Looking for connect
|
|
||||||
-- Looking for connect - found
|
|
||||||
-- Looking for remove
|
|
||||||
-- Looking for remove - found
|
|
||||||
-- Looking for shmat
|
|
||||||
-- Looking for shmat - found
|
|
||||||
-- Looking for IceConnectionNumber in ICE
|
|
||||||
-- Looking for IceConnectionNumber in ICE - found
|
|
||||||
Standard Files /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/filesystem.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/format.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/loader.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/logging.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/system.cpp
|
Standard Files /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/filesystem.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/format.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/loader.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/logging.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/system.cpp
|
||||||
Profiler Files /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/profiling/profiler.cpp
|
Profiler Files /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/profiling/profiler.cpp
|
||||||
Source: /home/brett/Documents/Brock/CS 3P98/Final Project
|
Source: /home/brett/Documents/Brock/CS 3P98/Final Project
|
||||||
Current Source: /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT
|
Current Source: /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT
|
||||||
BLT 3.3.8 Successfully included!
|
BLT Successfully included!
|
||||||
-- Configuring done
|
-- Configuring done
|
||||||
-- Generating done
|
-- Generating done
|
||||||
-- Build files have been written to: /home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-debug
|
-- Build files have been written to: /home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-debug
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,39 +1,11 @@
|
||||||
/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=/opt/netbrains/clion/clion-2022.1.3/bin/ninja/linux/ninja -G Ninja -S "/home/brett/Documents/Brock/CS 3P98/Final Project" -B "/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-release"
|
/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=/opt/netbrains/clion/clion-2022.1.3/bin/ninja/linux/ninja -G Ninja -S "/home/brett/Documents/Brock/CS 3P98/Final Project" -B "/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-release"
|
||||||
-- 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
|
Building for Release
|
||||||
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
|
|
||||||
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
|
|
||||||
-- Found Threads: TRUE
|
|
||||||
-- Using X11 for window creation
|
-- Using X11 for window creation
|
||||||
-- Found X11: /usr/include
|
|
||||||
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
|
|
||||||
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
|
|
||||||
-- Looking for gethostbyname
|
|
||||||
-- Looking for gethostbyname - found
|
|
||||||
-- Looking for connect
|
|
||||||
-- Looking for connect - found
|
|
||||||
-- Looking for remove
|
|
||||||
-- Looking for remove - found
|
|
||||||
-- Looking for shmat
|
|
||||||
-- Looking for shmat - found
|
|
||||||
-- Looking for IceConnectionNumber in ICE
|
|
||||||
-- Looking for IceConnectionNumber in ICE - found
|
|
||||||
Standard Files /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/filesystem.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/format.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/loader.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/logging.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/system.cpp
|
Standard Files /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/filesystem.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/format.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/loader.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/logging.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/system.cpp
|
||||||
Profiler Files /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/profiling/profiler.cpp
|
Profiler Files /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/profiling/profiler.cpp
|
||||||
Source: /home/brett/Documents/Brock/CS 3P98/Final Project
|
Source: /home/brett/Documents/Brock/CS 3P98/Final Project
|
||||||
Current Source: /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT
|
Current Source: /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT
|
||||||
BLT 3.3.8 Successfully included!
|
BLT Successfully included!
|
||||||
-- Configuring done
|
-- Configuring done
|
||||||
-- Generating done
|
-- Generating done
|
||||||
-- Build files have been written to: /home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-release
|
-- Build files have been written to: /home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-release
|
||||||
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -1,23 +1,25 @@
|
||||||
# ninja log v5
|
# ninja log v5
|
||||||
|
2 11 1676232112772732564 CMakeFiles/FinalProject.dir/src/world/registry.cpp.o 3a6f3370180acf81
|
||||||
1 268 1675879686057895775 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/monitor.c.o 3306a3caed247cee
|
1 268 1675879686057895775 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/monitor.c.o 3306a3caed247cee
|
||||||
2 462 1676094325030001887 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/system.cpp.o 9999b1f01228dc1e
|
2 617 1676232113376748890 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/system.cpp.o 9999b1f01228dc1e
|
||||||
3 1909 1676094326474041633 libraries/BLT/CMakeFiles/BLT.dir/src/blt/profiling/profiler.cpp.o 3879c77c4691aa0a
|
2 1761 1676232114520779812 libraries/BLT/CMakeFiles/BLT.dir/src/blt/profiling/profiler.cpp.o 3879c77c4691aa0a
|
||||||
2 540 1676094325106003980 CMakeFiles/FinalProject.dir/src/render/window.cpp.o fa6296e23b056a91
|
2 722 1676232404604645452 CMakeFiles/FinalProject.dir/src/render/window.cpp.o fa6296e23b056a91
|
||||||
1 184 1675879685973893394 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/vulkan.c.o 726a0ce9066c22d2
|
1 184 1675879685973893394 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/vulkan.c.o 726a0ce9066c22d2
|
||||||
1 338 1675879686125897703 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/window.c.o f41ed544e41bb850
|
1 338 1675879686125897703 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/window.c.o f41ed544e41bb850
|
||||||
2 417 1675879686205899971 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/x11_init.c.o 84c854e192bd136
|
2 417 1675879686205899971 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/x11_init.c.o 84c854e192bd136
|
||||||
2 578 1676094325146005079 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/format.cpp.o 3b328e151712ca4
|
2 578 1676094325146005079 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/format.cpp.o 3b328e151712ca4
|
||||||
1 213 1675879686001894187 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/init.c.o 7363bcb2dba2054a
|
1 213 1675879686001894187 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/init.c.o 7363bcb2dba2054a
|
||||||
1909 1977 1676094326534043287 libraries/BLT/libBLT.a 163b10f2e7f6635
|
1761 1836 1676232114588781647 libraries/BLT/libBLT.a 163b10f2e7f6635
|
||||||
675 757 1676094384419636592 FinalProject 15ed46d94186936d
|
609 685 1676232422409129549 FinalProject 610f68e05cfd8836
|
||||||
240 342 1675879686133897930 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/posix_thread.c.o ed8a69d447bea26a
|
240 342 1675879686133897930 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/posix_thread.c.o ed8a69d447bea26a
|
||||||
2 1444 1676094326010028861 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/logging.cpp.o a4d3cad66687d105
|
2 1568 1676232114328774619 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/logging.cpp.o a4d3cad66687d105
|
||||||
268 513 1675879686301902692 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/glx_context.c.o 3a83b8e61a7e27f1
|
268 513 1675879686301902692 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/glx_context.c.o 3a83b8e61a7e27f1
|
||||||
185 272 1675879686061895889 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/xkb_unicode.c.o b26e96d6509cc15d
|
185 272 1675879686061895889 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/xkb_unicode.c.o b26e96d6509cc15d
|
||||||
|
1 629 1676232404512642951 CMakeFiles/FinalProject.dir/src/render/camera.cpp.o b8ecbf9d580cb1ce
|
||||||
3 816 1675879686605911309 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/x11_window.c.o 3c77d54154e66152
|
3 816 1675879686605911309 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/x11_window.c.o 3c77d54154e66152
|
||||||
2 1148 1676094325714020716 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/loader.cpp.o dba8b361d1594e59
|
2 1148 1676094325714020716 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/loader.cpp.o dba8b361d1594e59
|
||||||
816 896 1675879686681913464 libraries/glfw-3.3.8/src/libglfw3.a 4545fd6d0d1d5667
|
816 896 1675879686681913464 libraries/glfw-3.3.8/src/libglfw3.a 4545fd6d0d1d5667
|
||||||
1 675 1676094384335634280 CMakeFiles/FinalProject.dir/src/main.cpp.o d6fd815a69105af1
|
1 644 1676232404528643389 CMakeFiles/FinalProject.dir/src/main.cpp.o d6fd815a69105af1
|
||||||
1 489 1675879686277902012 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/input.c.o b9b0555d1bde647a
|
1 489 1675879686277902012 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/input.c.o b9b0555d1bde647a
|
||||||
490 862 1675879686649912557 libraries/BLT/CMakeFiles/BLT.dir/src/blt/nbt/nbt_block.cpp.o 2100792179af25a6
|
490 862 1675879686649912557 libraries/BLT/CMakeFiles/BLT.dir/src/blt/nbt/nbt_block.cpp.o 2100792179af25a6
|
||||||
1 240 1675879686029894982 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/context.c.o 66a0481f161ec0b0
|
1 240 1675879686029894982 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/context.c.o 66a0481f161ec0b0
|
||||||
|
@ -25,35 +27,9 @@
|
||||||
2 311 1675879686097896910 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/x11_monitor.c.o f704fd1b3f3f9ebf
|
2 311 1675879686097896910 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/x11_monitor.c.o f704fd1b3f3f9ebf
|
||||||
273 531 1675879686321903260 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/egl_context.c.o b183bcb8286b3466
|
273 531 1675879686321903260 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/egl_context.c.o b183bcb8286b3466
|
||||||
3 598 1676094325166005631 libraries/BLT/CMakeFiles/BLT.dir/src/blt/nbt/nbt.cpp.o 3e0e238c32ed62ec
|
3 598 1676094325166005631 libraries/BLT/CMakeFiles/BLT.dir/src/blt/nbt/nbt.cpp.o 3e0e238c32ed62ec
|
||||||
299 466 1675879686253901332 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/osmesa_context.c.o a913dd02c9ac6f97
|
|
||||||
2 409 1676094324978000454 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/filesystem.cpp.o 49e1226ae352c85c
|
|
||||||
2 1269 1676094325838024127 CMakeFiles/FinalProject.dir/src/render/gl.cpp.o 2e02d50528893aea
|
|
||||||
311 524 1675879686313903031 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/linux_joystick.c.o 3df40cb71360060f
|
|
||||||
2 11 1676232112772732564 CMakeFiles/FinalProject.dir/src/world/registry.cpp.o 3a6f3370180acf81
|
|
||||||
2 525 1676232113288746511 CMakeFiles/FinalProject.dir/src/world/chunk/storage.cpp.o 8466edd0d9c6fbd8
|
2 525 1676232113288746511 CMakeFiles/FinalProject.dir/src/world/chunk/storage.cpp.o 8466edd0d9c6fbd8
|
||||||
2 617 1676232113376748890 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/system.cpp.o 9999b1f01228dc1e
|
299 466 1675879686253901332 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/osmesa_context.c.o a913dd02c9ac6f97
|
||||||
2 816 1676232113576754295 CMakeFiles/FinalProject.dir/src/world/chunk/chunk.cpp.o 901d26561b8e342a
|
|
||||||
1 832 1676232113592754727 CMakeFiles/FinalProject.dir/src/main.cpp.o d6fd815a69105af1
|
|
||||||
2 861 1676232113620755485 CMakeFiles/FinalProject.dir/src/render/window.cpp.o fa6296e23b056a91
|
|
||||||
1 930 1676232113692757428 CMakeFiles/FinalProject.dir/src/render/camera.cpp.o b8ecbf9d580cb1ce
|
|
||||||
1 1311 1676232114072767702 CMakeFiles/FinalProject.dir/src/render/gl.cpp.o 2e02d50528893aea
|
|
||||||
2 1568 1676232114328774619 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/logging.cpp.o a4d3cad66687d105
|
|
||||||
2 1761 1676232114520779812 libraries/BLT/CMakeFiles/BLT.dir/src/blt/profiling/profiler.cpp.o 3879c77c4691aa0a
|
|
||||||
1761 1836 1676232114588781647 libraries/BLT/libBLT.a 163b10f2e7f6635
|
|
||||||
1836 1918 1676232114676784028 FinalProject 610f68e05cfd8836
|
|
||||||
1 618 1676232178958522931 CMakeFiles/FinalProject.dir/src/world/chunk/chunk.cpp.o 901d26561b8e342a
|
|
||||||
618 686 1676232179026524771 FinalProject 610f68e05cfd8836
|
|
||||||
1 680 1676232264640844706 CMakeFiles/FinalProject.dir/src/world/chunk/chunk.cpp.o 901d26561b8e342a
|
|
||||||
1 709 1676232264672845577 CMakeFiles/FinalProject.dir/src/main.cpp.o d6fd815a69105af1
|
|
||||||
1 711 1676232264672845577 CMakeFiles/FinalProject.dir/src/render/camera.cpp.o b8ecbf9d580cb1ce
|
|
||||||
1 781 1676232264744847527 CMakeFiles/FinalProject.dir/src/render/window.cpp.o fa6296e23b056a91
|
|
||||||
1 1236 1676232265196859788 CMakeFiles/FinalProject.dir/src/render/gl.cpp.o 2e02d50528893aea
|
|
||||||
1236 1310 1676232265272861850 FinalProject 610f68e05cfd8836
|
|
||||||
1 629 1676232404512642951 CMakeFiles/FinalProject.dir/src/render/camera.cpp.o b8ecbf9d580cb1ce
|
|
||||||
1 644 1676232404528643389 CMakeFiles/FinalProject.dir/src/main.cpp.o d6fd815a69105af1
|
|
||||||
2 645 1676232404528643389 CMakeFiles/FinalProject.dir/src/world/chunk/chunk.cpp.o 901d26561b8e342a
|
|
||||||
2 722 1676232404604645452 CMakeFiles/FinalProject.dir/src/render/window.cpp.o fa6296e23b056a91
|
|
||||||
1 1218 1676232405100658939 CMakeFiles/FinalProject.dir/src/render/gl.cpp.o 2e02d50528893aea
|
|
||||||
1218 1293 1676232405176661003 FinalProject 610f68e05cfd8836
|
|
||||||
2 609 1676232422337127593 CMakeFiles/FinalProject.dir/src/world/chunk/chunk.cpp.o 901d26561b8e342a
|
2 609 1676232422337127593 CMakeFiles/FinalProject.dir/src/world/chunk/chunk.cpp.o 901d26561b8e342a
|
||||||
609 685 1676232422409129549 FinalProject 610f68e05cfd8836
|
2 409 1676094324978000454 libraries/BLT/CMakeFiles/BLT.dir/src/blt/std/filesystem.cpp.o 49e1226ae352c85c
|
||||||
|
1 1218 1676232405100658939 CMakeFiles/FinalProject.dir/src/render/gl.cpp.o 2e02d50528893aea
|
||||||
|
311 524 1675879686313903031 libraries/glfw-3.3.8/src/CMakeFiles/glfw.dir/linux_joystick.c.o 3df40cb71360060f
|
||||||
|
|
|
@ -1,39 +1,11 @@
|
||||||
/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_MAKE_PROGRAM=/opt/netbrains/clion/clion-2022.1.3/bin/ninja/linux/ninja -G Ninja -S "/home/brett/Documents/Brock/CS 3P98/Final Project" -B "/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-relwithdebinfo"
|
/opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_MAKE_PROGRAM=/opt/netbrains/clion/clion-2022.1.3/bin/ninja/linux/ninja -G Ninja -S "/home/brett/Documents/Brock/CS 3P98/Final Project" -B "/home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-relwithdebinfo"
|
||||||
-- 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
|
Building for Release
|
||||||
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
|
|
||||||
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
|
|
||||||
-- Found Threads: TRUE
|
|
||||||
-- Using X11 for window creation
|
-- Using X11 for window creation
|
||||||
-- Found X11: /usr/include
|
|
||||||
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
|
|
||||||
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
|
|
||||||
-- Looking for gethostbyname
|
|
||||||
-- Looking for gethostbyname - found
|
|
||||||
-- Looking for connect
|
|
||||||
-- Looking for connect - found
|
|
||||||
-- Looking for remove
|
|
||||||
-- Looking for remove - found
|
|
||||||
-- Looking for shmat
|
|
||||||
-- Looking for shmat - found
|
|
||||||
-- Looking for IceConnectionNumber in ICE
|
|
||||||
-- Looking for IceConnectionNumber in ICE - found
|
|
||||||
Standard Files /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/filesystem.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/format.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/loader.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/logging.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/system.cpp
|
Standard Files /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/filesystem.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/format.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/loader.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/logging.cpp;/home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/std/system.cpp
|
||||||
Profiler Files /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/profiling/profiler.cpp
|
Profiler Files /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT/src/blt/profiling/profiler.cpp
|
||||||
Source: /home/brett/Documents/Brock/CS 3P98/Final Project
|
Source: /home/brett/Documents/Brock/CS 3P98/Final Project
|
||||||
Current Source: /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT
|
Current Source: /home/brett/Documents/Brock/CS 3P98/Final Project/libraries/BLT
|
||||||
BLT 3.3.8 Successfully included!
|
BLT Successfully included!
|
||||||
-- Configuring done
|
-- Configuring done
|
||||||
-- Generating done
|
-- Generating done
|
||||||
-- Build files have been written to: /home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-relwithdebinfo
|
-- Build files have been written to: /home/brett/Documents/Brock/CS 3P98/Final Project/cmake-build-relwithdebinfo
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,70 +0,0 @@
|
||||||
/*
|
|
||||||
* Created by Brett on 11/02/23.
|
|
||||||
* Licensed under GNU General Public License V3.0
|
|
||||||
* See LICENSE file for license detail
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef FINALPROJECT_CHUNK_H
|
|
||||||
#define FINALPROJECT_CHUNK_H
|
|
||||||
|
|
||||||
#include <world/chunk/storage.h>
|
|
||||||
#include <render/gl.h>
|
|
||||||
|
|
||||||
namespace fp {
|
|
||||||
|
|
||||||
class chunk {
|
|
||||||
private:
|
|
||||||
block_storage* storage;
|
|
||||||
VAO* chunk_vao;
|
|
||||||
|
|
||||||
bool isDirty = false;
|
|
||||||
unsigned long render_size = 0;
|
|
||||||
protected:
|
|
||||||
mesh_storage* generateMesh();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts from world coord to chunk coords
|
|
||||||
* @param coord world space coordinate
|
|
||||||
* @return chunk internal coord
|
|
||||||
*/
|
|
||||||
static inline int cc(int coord) {
|
|
||||||
auto val = coord % CHUNK_SIZE;
|
|
||||||
return val < 0 ? CHUNK_SIZE + val : val;
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
|
||||||
chunk() {
|
|
||||||
storage = new block_storage();
|
|
||||||
chunk_vao = new VAO();
|
|
||||||
// set up the VBOs which will be later updated when the mesh is generated.
|
|
||||||
chunk_vao->bindVBO(new VBO(ARRAY_BUFFER, nullptr, 0), 0, 3);
|
|
||||||
chunk_vao->bindElementVBO(new VBO(ELEMENT_BUFFER, nullptr, 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
void update();
|
|
||||||
void render(fp::shader& chunk_shader);
|
|
||||||
|
|
||||||
inline void setBlock(int x, int y, int z, char blockID){
|
|
||||||
// mark the chunk for a mesh update
|
|
||||||
isDirty = true;
|
|
||||||
storage->set(cc(x), cc(y), cc(z), blockID);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void setBlock(float x, float y, float z, char blockID){setBlock((int)x,(int)y,(int)z, blockID);}
|
|
||||||
|
|
||||||
inline char getBlock(int x, int y, int z){
|
|
||||||
return storage->get(x, y, z);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline char getBlock(float x, float y, float z){
|
|
||||||
return getBlock((int)x,(int)y,(int)z);
|
|
||||||
}
|
|
||||||
|
|
||||||
~chunk() {
|
|
||||||
delete storage;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif //FINALPROJECT_CHUNK_H
|
|
|
@ -17,7 +17,7 @@
|
||||||
constexpr int CHUNK_SIZE = 32;
|
constexpr int CHUNK_SIZE = 32;
|
||||||
const int CHUNK_SHIFT = (int)(log(CHUNK_SIZE) / log(2));
|
const int CHUNK_SHIFT = (int)(log(CHUNK_SIZE) / log(2));
|
||||||
// size that the base vertex arrays are assumed to be (per face)
|
// size that the base vertex arrays are assumed to be (per face)
|
||||||
constexpr int VTX_ARR_SIZE = 12;
|
constexpr int VTX_ARR_SIZE = 18;
|
||||||
|
|
||||||
namespace fp {
|
namespace fp {
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,153 @@
|
||||||
|
/*
|
||||||
|
* Created by Brett on 11/02/23.
|
||||||
|
* Licensed under GNU General Public License V3.0
|
||||||
|
* See LICENSE file for license detail
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FINALPROJECT_WORLD_H
|
||||||
|
#define FINALPROJECT_WORLD_H
|
||||||
|
|
||||||
|
#include <world/chunk/storage.h>
|
||||||
|
#include <render/gl.h>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
namespace fp {
|
||||||
|
|
||||||
|
struct ChunkPos {
|
||||||
|
int x, y, z;
|
||||||
|
};
|
||||||
|
|
||||||
|
namespace _static {
|
||||||
|
/**
|
||||||
|
* Converts from world coord to chunk-internal coords
|
||||||
|
* @param coord world space coordinate
|
||||||
|
* @return chunk internal coord
|
||||||
|
*/
|
||||||
|
static inline int world_to_internal(int coord) {
|
||||||
|
auto val = coord % CHUNK_SIZE;
|
||||||
|
return val < 0 ? CHUNK_SIZE + val : val;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts from world coord to chunk pos coords
|
||||||
|
*
|
||||||
|
* consider: (int) (-31 / 32) which equals 0
|
||||||
|
* but a negative chunk would be stored at -1, not 0 (since that is taken by the positive coord chunk)
|
||||||
|
* an arithmetic right shift would produce the desired -1 (see Java, which performs a signed right bit shift)
|
||||||
|
* however in C++ shifting on a signed type is undefined behaviour. So we must emulate an arithmetic right shift.
|
||||||
|
*
|
||||||
|
* @param coord x,y, or z coordinate to convert
|
||||||
|
* @return a right arithmetic bit shift resulting in a signed division of the coordinate by CHUNK_SIZE
|
||||||
|
*/
|
||||||
|
static inline int world_to_chunk(int coord) {
|
||||||
|
auto ucoord = (unsigned int) coord;
|
||||||
|
|
||||||
|
ucoord >>= CHUNK_SHIFT;
|
||||||
|
|
||||||
|
if (coord < 0) {
|
||||||
|
// the mask only has to be generated once since it is never modified at runtime beyond assignment
|
||||||
|
static unsigned int mask = 0;
|
||||||
|
if (mask == 0) {
|
||||||
|
for (int i = 0; i < CHUNK_SHIFT; i++)
|
||||||
|
mask |= (1 << ((sizeof(int) * 8 - 1) - i));
|
||||||
|
}
|
||||||
|
ucoord |= mask;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (int) (ucoord);
|
||||||
|
}
|
||||||
|
|
||||||
|
// std::unordered_map requires a type. As a result the functions are encapsulated.
|
||||||
|
struct ChunkPosHash {
|
||||||
|
inline size_t operator()(const ChunkPos& pos) const {
|
||||||
|
size_t p1 = std::hash<int>()(pos.x);
|
||||||
|
size_t p2 = std::hash<int>()(pos.y);
|
||||||
|
size_t p3 = std::hash<int>()(pos.z);
|
||||||
|
return (p1 ^ (p2 << 1)) ^ p3;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ChunkPosEquality {
|
||||||
|
inline bool operator()(const ChunkPos& p1, const ChunkPos& p2) const {
|
||||||
|
return p1.x == p2.x && p1.y == p2.y && p1.z == p2.z;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
struct chunk {
|
||||||
|
public:
|
||||||
|
block_storage* storage;
|
||||||
|
mesh_storage* mesh = nullptr;
|
||||||
|
VAO* chunk_vao;
|
||||||
|
ChunkPos pos;
|
||||||
|
|
||||||
|
unsigned char dirtiness = 0;
|
||||||
|
unsigned long render_size = 0;
|
||||||
|
public:
|
||||||
|
explicit chunk(ChunkPos pos): pos(pos) {
|
||||||
|
storage = new block_storage();
|
||||||
|
chunk_vao = new VAO();
|
||||||
|
// using indices uses:
|
||||||
|
// 12 faces * 4 vertex * 3 float * 4 bytes + 12 faces * 6 indices * 4 bytes = 864 bytes for vertex + index
|
||||||
|
|
||||||
|
// using only vertices:
|
||||||
|
// 12 faces * 6 vertex * 3 floats * 4 bytes = 864 bytes.
|
||||||
|
|
||||||
|
// since they both use the same amount of memory we will only store the vertices and draw with drawArrays, since it is less complex.
|
||||||
|
// set up the VBOs which will be later updated when the mesh is generated.
|
||||||
|
chunk_vao->bindVBO(new VBO(ARRAY_BUFFER, nullptr, 0), 0, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
~chunk() {
|
||||||
|
delete storage;
|
||||||
|
delete chunk_vao;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class world {
|
||||||
|
private:
|
||||||
|
std::unordered_map<ChunkPos, chunk*, _static::ChunkPosHash, _static::ChunkPosEquality> chunk_storage;
|
||||||
|
protected:
|
||||||
|
mesh_storage* generateChunkMesh(chunk* chunk);
|
||||||
|
|
||||||
|
chunk* getChunk(int x, int y, int z) {
|
||||||
|
return chunk_storage.at(ChunkPos{_static::world_to_chunk(x), _static::world_to_chunk(y), _static::world_to_chunk(z)});
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
world() {
|
||||||
|
chunk_storage.insert({{0, 0, 0}, new chunk({0, 0, 0})});
|
||||||
|
}
|
||||||
|
|
||||||
|
void update();
|
||||||
|
|
||||||
|
void render(fp::shader& shader);
|
||||||
|
|
||||||
|
inline void setBlock(int x, int y, int z, char blockID) {
|
||||||
|
auto c = getChunk(x, y, z);
|
||||||
|
// mark the chunk for a mesh update
|
||||||
|
c->dirtiness = 2;
|
||||||
|
c->storage->set(_static::world_to_internal(x), _static::world_to_internal(y), _static::world_to_internal(z), blockID);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void setBlock(float x, float y, float z, char blockID) { setBlock((int) x, (int) y, (int) z, blockID); }
|
||||||
|
|
||||||
|
inline char getBlock(int x, int y, int z) {
|
||||||
|
auto c = getChunk(x, y, z);
|
||||||
|
return c->storage->get(x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline char getBlock(float x, float y, float z) {
|
||||||
|
return getBlock((int) x, (int) y, (int) z);
|
||||||
|
}
|
||||||
|
|
||||||
|
~world() {
|
||||||
|
for (auto& chunk : chunk_storage)
|
||||||
|
delete (chunk.second);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //FINALPROJECT_WORLD_H
|
17
src/main.cpp
17
src/main.cpp
|
@ -6,7 +6,7 @@
|
||||||
#include <shaders/chunk.frag>
|
#include <shaders/chunk.frag>
|
||||||
#include <shaders/chunk.vert>
|
#include <shaders/chunk.vert>
|
||||||
#include "render/camera.h"
|
#include "render/camera.h"
|
||||||
#include "world/chunk/chunk.h"
|
#include "world/chunk/world.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef __EMSCRIPTEN__
|
#ifdef __EMSCRIPTEN__
|
||||||
|
@ -16,15 +16,14 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fp::shader* chunk_shader;
|
fp::shader* chunk_shader;
|
||||||
fp::chunk* chunk;
|
fp::world* world;
|
||||||
|
|
||||||
void loop(){
|
void loop(){
|
||||||
glClearColor(1.0, 1.0, 1.0, 1.0);
|
glClearColor(1.0, 1.0, 1.0, 1.0);
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
|
||||||
chunk_shader->use();
|
world->update();
|
||||||
chunk->update();
|
world->render(*chunk_shader);
|
||||||
chunk->render(*chunk_shader);
|
|
||||||
|
|
||||||
if (fp::window::isKeyPressed(GLFW_KEY_R)){
|
if (fp::window::isKeyPressed(GLFW_KEY_R)){
|
||||||
BLT_DEBUG("R Key is pressed!");
|
BLT_DEBUG("R Key is pressed!");
|
||||||
|
@ -48,10 +47,10 @@ int main() {
|
||||||
fp::window::init();
|
fp::window::init();
|
||||||
|
|
||||||
chunk_shader = new fp::shader(shader_chunk_vert, shader_chunk_frag);
|
chunk_shader = new fp::shader(shader_chunk_vert, shader_chunk_frag);
|
||||||
chunk = new fp::chunk();
|
world = new fp::world();
|
||||||
|
|
||||||
chunk->setBlock(0, 0, 0, 1);
|
world->setBlock(0, 0, 0, 1);
|
||||||
chunk->setBlock(2, 2, 2, 1);
|
world->setBlock(2, 2, 2, 1);
|
||||||
|
|
||||||
glEnable(GL_CULL_FACE);
|
glEnable(GL_CULL_FACE);
|
||||||
glCullFace(GL_BACK);
|
glCullFace(GL_BACK);
|
||||||
|
@ -70,7 +69,7 @@ int main() {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
delete(chunk_shader);
|
delete(chunk_shader);
|
||||||
delete(chunk);
|
delete(world);
|
||||||
|
|
||||||
fp::window::close();
|
fp::window::close();
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ void fp::camera::update() {
|
||||||
if (window::isKeyPressed(GLFW_KEY_LEFT_CONTROL)){
|
if (window::isKeyPressed(GLFW_KEY_LEFT_CONTROL)){
|
||||||
speed = MAX_SPEED;
|
speed = MAX_SPEED;
|
||||||
} else if (window::isKeyPressed(GLFW_KEY_LEFT_ALT))
|
} else if (window::isKeyPressed(GLFW_KEY_LEFT_ALT))
|
||||||
speed = DEFAULT_SPEED / 2;
|
speed = DEFAULT_SPEED / 8;
|
||||||
else
|
else
|
||||||
speed = DEFAULT_SPEED;
|
speed = DEFAULT_SPEED;
|
||||||
|
|
||||||
|
|
|
@ -1,60 +0,0 @@
|
||||||
/*
|
|
||||||
* Created by Brett on 11/02/23.
|
|
||||||
* Licensed under GNU General Public License V3.0
|
|
||||||
* See LICENSE file for license detail
|
|
||||||
*/
|
|
||||||
#include <world/chunk/chunk.h>
|
|
||||||
|
|
||||||
fp::mesh_storage* fp::chunk::generateMesh() {
|
|
||||||
auto* meshStorage = new mesh_storage;
|
|
||||||
|
|
||||||
for (int i = 0; i < CHUNK_SIZE; i++){
|
|
||||||
for (int j = 0; j < CHUNK_SIZE; j++){
|
|
||||||
for (int k = 0; k < CHUNK_SIZE; k++){
|
|
||||||
auto block = storage->get(i,j,k);
|
|
||||||
if (block != 0) {
|
|
||||||
meshStorage->addFace(X_NEG, i, j, k);
|
|
||||||
meshStorage->addFace(X_POS, i, j, k);
|
|
||||||
meshStorage->addFace(Y_NEG, i, j, k);
|
|
||||||
meshStorage->addFace(Y_POS, i, j, k);
|
|
||||||
meshStorage->addFace(Z_NEG, i, j, k);
|
|
||||||
meshStorage->addFace(Z_POS, i, j, k);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return meshStorage;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fp::chunk::update() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void fp::chunk::render(fp::shader& chunk_shader) {
|
|
||||||
// process mesh updates
|
|
||||||
if (isDirty){
|
|
||||||
auto* new_mesh = generateMesh();
|
|
||||||
|
|
||||||
auto& vertices = new_mesh->getVertices();
|
|
||||||
auto& indices = new_mesh->getIndices();
|
|
||||||
|
|
||||||
BLT_INFO("Chunk mesh updated with %d vertices and %d indices taking (%d, %d) bytes!", vertices.size(), indices.size(), vertices.size() * sizeof(float), indices.size() * sizeof(unsigned int));
|
|
||||||
|
|
||||||
chunk_vao->getVBO(0)->update(vertices);
|
|
||||||
chunk_vao->getVBO(-1)->update(indices);
|
|
||||||
|
|
||||||
render_size = indices.size();
|
|
||||||
|
|
||||||
delete(new_mesh);
|
|
||||||
isDirty = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (render_size > 0){
|
|
||||||
chunk_vao->bind();
|
|
||||||
glEnableVertexAttribArray(0);
|
|
||||||
glDrawElements(GL_TRIANGLES, render_size, GL_UNSIGNED_INT, nullptr);
|
|
||||||
glDisableVertexAttribArray(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -9,40 +9,64 @@
|
||||||
constexpr float scale = 0.5f;
|
constexpr float scale = 0.5f;
|
||||||
|
|
||||||
const float x_positive_vertices[VTX_ARR_SIZE] = {
|
const float x_positive_vertices[VTX_ARR_SIZE] = {
|
||||||
scale, scale, scale, // +x top right
|
// +x first triangle
|
||||||
|
scale, -scale, scale, // +x top left
|
||||||
scale, scale, -scale, // +x bottom right
|
scale, scale, -scale, // +x bottom right
|
||||||
|
scale, scale, scale, // +x top right
|
||||||
|
// +x second triangle
|
||||||
|
scale, -scale, scale, // +x top left
|
||||||
scale, -scale, -scale, // +x bottom left
|
scale, -scale, -scale, // +x bottom left
|
||||||
scale, -scale, scale // +x top left
|
scale, scale, -scale, // +x bottom right
|
||||||
};
|
};
|
||||||
const float x_negative_vertices[VTX_ARR_SIZE] = {
|
const float x_negative_vertices[VTX_ARR_SIZE] = {
|
||||||
|
// -x first triangle
|
||||||
-scale, scale, scale, // -x top right
|
-scale, scale, scale, // -x top right
|
||||||
-scale, scale, -scale, // -x bottom right
|
-scale, scale, -scale, // -x bottom right
|
||||||
|
-scale, -scale, scale, // -x top left
|
||||||
|
// -x second triangle
|
||||||
|
-scale, scale, -scale, // -x bottom right
|
||||||
-scale, -scale, -scale, // -x bottom left
|
-scale, -scale, -scale, // -x bottom left
|
||||||
-scale, -scale, scale // -x top left
|
-scale, -scale, scale, // -x top left
|
||||||
};
|
};
|
||||||
const float y_positive_vertices[VTX_ARR_SIZE] = {
|
const float y_positive_vertices[VTX_ARR_SIZE] = {
|
||||||
scale, scale, scale, // +y top right
|
// first triangle
|
||||||
-scale, scale, scale, // +y bottom right
|
scale, scale, -scale, // top left
|
||||||
-scale, scale, -scale, // +y bottom left
|
-scale, scale, scale, // bottom right
|
||||||
scale, scale, -scale, // +y top left
|
scale, scale, scale, // top right
|
||||||
|
// second triangle
|
||||||
|
scale, scale, -scale, // top left
|
||||||
|
-scale, scale, -scale, // bottom left
|
||||||
|
-scale, scale, scale, // bottom right
|
||||||
};
|
};
|
||||||
const float y_negative_vertices[VTX_ARR_SIZE] = {
|
const float y_negative_vertices[VTX_ARR_SIZE] = {
|
||||||
scale, -scale, scale, // -y top right
|
// first triangle
|
||||||
-scale, -scale, scale, // -y bottom right
|
scale, -scale, scale, // top right
|
||||||
-scale, -scale, -scale, // -y bottom left
|
-scale, -scale, scale, // bottom right
|
||||||
scale, -scale, -scale, // -y top left
|
scale, -scale, -scale, // top left
|
||||||
|
// second triangle
|
||||||
|
-scale, -scale, scale, // bottom right
|
||||||
|
-scale, -scale, -scale, // bottom left
|
||||||
|
scale, -scale, -scale, // top left
|
||||||
};
|
};
|
||||||
const float z_positive_vertices[VTX_ARR_SIZE] = {
|
const float z_positive_vertices[VTX_ARR_SIZE] = {
|
||||||
scale, scale, scale, // +z top right
|
// first triangle
|
||||||
scale, -scale, scale, // +z bottom right
|
-scale, scale, scale, // top left
|
||||||
-scale, -scale, scale, // +z bottom left
|
scale, -scale, scale, // bottom right
|
||||||
-scale, scale, scale // +z top left
|
scale, scale, scale, // top right
|
||||||
|
// second triangle
|
||||||
|
-scale, scale, scale, // top left
|
||||||
|
-scale, -scale, scale, // bottom left
|
||||||
|
scale, -scale, scale, // bottom right
|
||||||
};
|
};
|
||||||
const float z_negative_vertices[VTX_ARR_SIZE] = {
|
const float z_negative_vertices[VTX_ARR_SIZE] = {
|
||||||
scale, scale, -scale, // -z top right
|
// first triangle
|
||||||
scale, -scale, -scale, // -z bottom right
|
scale, scale, -scale, // top right
|
||||||
-scale, -scale, -scale, // -z bottom left
|
scale, -scale, -scale, // bottom right
|
||||||
-scale, scale, -scale // -z top left
|
-scale, scale, -scale, // top left
|
||||||
|
// second triangle
|
||||||
|
scale, -scale, -scale, // bottom right
|
||||||
|
-scale, -scale, -scale, // bottom left
|
||||||
|
-scale, scale, -scale, // top left
|
||||||
};
|
};
|
||||||
|
|
||||||
// always ordered the same as the enum!
|
// always ordered the same as the enum!
|
||||||
|
@ -55,29 +79,6 @@ const float* face_decode[] = {
|
||||||
z_negative_vertices
|
z_negative_vertices
|
||||||
};
|
};
|
||||||
|
|
||||||
// indices are the same on all axis but are flipped between negative / positive as a result of back-face culling.
|
|
||||||
const std::vector<unsigned int> negative_indices = {
|
|
||||||
0, 1, 3,
|
|
||||||
1, 2, 3
|
|
||||||
};
|
|
||||||
const std::vector<unsigned int> positive_indices = {
|
|
||||||
3, 1, 0,
|
|
||||||
3, 2, 1
|
|
||||||
};
|
|
||||||
|
|
||||||
void fp::mesh_storage::addFace(fp::face face, float x, float y, float z) {
|
void fp::mesh_storage::addFace(fp::face face, float x, float y, float z) {
|
||||||
BLT_DEBUG("Creating face %d ", face);
|
|
||||||
add_and_translate(face_decode[face], x, y, z);
|
add_and_translate(face_decode[face], x, y, z);
|
||||||
|
|
||||||
// 3 floats per vertex, 4 vertices per face
|
|
||||||
|
|
||||||
// 576 + 288 = 864 bytes for vertex + index
|
|
||||||
// 12 faces * 6 vertex * 3 floats * 4 bytes = 864 bytes.
|
|
||||||
|
|
||||||
// no savings but extra complexity
|
|
||||||
// auto indice_offset = (vertices.size()/3 - 4);
|
|
||||||
// auto& face_indices = face % 2 == 0 ? positive_indices : negative_indices;
|
|
||||||
//
|
|
||||||
// for (unsigned int indice : face_indices)
|
|
||||||
// indices.push_back(indice_offset + indice);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,97 @@
|
||||||
|
/*
|
||||||
|
* Created by Brett on 11/02/23.
|
||||||
|
* Licensed under GNU General Public License V3.0
|
||||||
|
* See LICENSE file for license detail
|
||||||
|
*/
|
||||||
|
#include <world/chunk/world.h>
|
||||||
|
|
||||||
|
|
||||||
|
//void fp::chunk::render(fp::shader& chunk_shader) {
|
||||||
|
// // process mesh updates
|
||||||
|
// if (isDirty){
|
||||||
|
// auto* new_mesh = generateMesh();
|
||||||
|
//
|
||||||
|
// auto& vertices = new_mesh->getVertices();
|
||||||
|
// //auto& indices = new_mesh->getIndices();
|
||||||
|
//
|
||||||
|
// BLT_INFO("Chunk mesh updated with %d vertices and %d indices taking (%d, %d) bytes!", vertices.size(), 0, vertices.size() * sizeof(float), 0 * sizeof(unsigned int));
|
||||||
|
//
|
||||||
|
// chunk_vao->getVBO(0)->update(vertices);
|
||||||
|
// //chunk_vao->getVBO(-1)->update(indices);
|
||||||
|
//
|
||||||
|
// render_size = vertices.size();
|
||||||
|
//
|
||||||
|
// delete(new_mesh);
|
||||||
|
// isDirty = false;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (render_size > 0){
|
||||||
|
// chunk_vao->bind();
|
||||||
|
// glEnableVertexAttribArray(0);
|
||||||
|
// //glDrawElements(GL_TRIANGLES, render_size, GL_UNSIGNED_INT, nullptr);
|
||||||
|
// glDrawArrays(GL_TRIANGLES, 0, render_size);
|
||||||
|
// glDisableVertexAttribArray(0);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//}
|
||||||
|
|
||||||
|
fp::mesh_storage* fp::world::generateChunkMesh(fp::chunk* chunk) {
|
||||||
|
auto* meshStorage = new mesh_storage;
|
||||||
|
|
||||||
|
if (chunk->dirtiness > 1) { // full chunk mesh
|
||||||
|
for (int i = 0; i < CHUNK_SIZE; i++) {
|
||||||
|
for (int j = 0; j < CHUNK_SIZE; j++) {
|
||||||
|
for (int k = 0; k < CHUNK_SIZE; k++) {
|
||||||
|
auto block = chunk->storage->get(i, j, k);
|
||||||
|
if (block != 0) {
|
||||||
|
meshStorage->addFace(X_NEG, i, j, k);
|
||||||
|
meshStorage->addFace(X_POS, i, j, k);
|
||||||
|
meshStorage->addFace(Y_NEG, i, j, k);
|
||||||
|
meshStorage->addFace(Y_POS, i, j, k);
|
||||||
|
meshStorage->addFace(Z_NEG, i, j, k);
|
||||||
|
meshStorage->addFace(Z_POS, i, j, k);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (chunk->dirtiness > 0){ // partial chunk mesh (had null edges)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return meshStorage;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fp::world::update() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void fp::world::render(fp::shader& shader) {
|
||||||
|
shader.use();
|
||||||
|
|
||||||
|
for (const auto& chunk_pair : chunk_storage) {
|
||||||
|
auto chunk = chunk_pair.second;
|
||||||
|
|
||||||
|
if (chunk->dirtiness > 0){
|
||||||
|
auto mesh = generateChunkMesh(chunk);
|
||||||
|
auto& vertices = mesh->getVertices();
|
||||||
|
|
||||||
|
BLT_INFO("Chunk mesh updated with %d vertices and %d indices taking (%d, %d) bytes!", vertices.size(), 0, vertices.size() * sizeof(float), 0 * sizeof(unsigned int));
|
||||||
|
|
||||||
|
chunk->chunk_vao->getVBO(0)->update(vertices);
|
||||||
|
//chunk_vao->getVBO(-1)->update(indices);
|
||||||
|
|
||||||
|
chunk->render_size = vertices.size();
|
||||||
|
|
||||||
|
delete(mesh);
|
||||||
|
chunk->dirtiness = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (chunk->render_size > 0){
|
||||||
|
chunk->chunk_vao->bind();
|
||||||
|
glEnableVertexAttribArray(0);
|
||||||
|
//glDrawElements(GL_TRIANGLES, render_size, GL_UNSIGNED_INT, nullptr);
|
||||||
|
glDrawArrays(GL_TRIANGLES, 0, (int)chunk->render_size);
|
||||||
|
glDisableVertexAttribArray(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue