Commit Graph

36 Commits (ba35689c6cac8d1e576d52f61f169f76f292b90e)

Author SHA1 Message Date
EmaMaker ba35689c6c chunkmesher: also cleanup colors at the start 2023-03-13 12:56:10 +01:00
EmaMaker bc2225e0f3 chunk: first delete buffer, then vao 2023-03-13 12:55:20 +01:00
EmaMaker f3d89a2e5a chunk release resources on destruction 2023-03-12 22:14:28 +01:00
EmaMaker ddd047e82f interval map: clean map on destruction 2023-03-12 22:14:05 +01:00
EmaMaker ab762eb9bc use unique_ptr when dumping intervalmap to array 2023-03-12 19:28:23 +01:00
EmaMaker f7eb04a5f1 use unique_ptr when dumping intervalmap to array 2023-03-12 19:24:09 +01:00
EmaMaker 383fb60686 proper frustum culling 2023-03-12 19:24:05 +01:00
EmaMaker e69c58abd3 gracefully shut down secondary threads 2023-03-12 12:43:41 +01:00
EmaMaker 716056b8c5 experimental multithreaded generation and meshing 2023-03-03 21:33:11 +01:00
EmaMaker 2ec728897e main: print currently used GPU at the start 2023-02-23 19:07:35 +01:00
EmaMaker b1e420f564 camera: allow to strafe up and down 2023-02-23 19:07:17 +01:00
EmaMaker cf0bb3f111 update .gitignore 2023-02-23 19:06:42 +01:00
EmaMaker b600ef5214 memory: delete shader when terminating 2023-02-23 17:02:20 +01:00
EmaMaker 0baa2eb649 memory: use proper delete[] 2023-02-22 21:54:15 +01:00
EmaMaker c547d11cd5 chunks: drop per-chunk chunkmesh
Use a single mesher. This, on top of the previous commits, shaves off another 20MB of total RAM usage, using a total of about 120MB for a standard world (16 chunk size, 8 render distance), of which 22 in heap
2023-02-12 14:36:59 +01:00
EmaMaker ec2feb919f chunkmanager: chunkmesh on the stack 2023-02-12 12:20:03 +01:00
EmaMaker 9f82a17bd2 chunkmesh: do not create shader for every object 2023-02-12 12:18:30 +01:00
EmaMaker 2e0ed7b057 clear mesh data after sending to gpu 2023-02-11 22:26:34 +01:00
EmaMaker 3c54de5f21 update .gitignore 2023-02-11 21:52:31 +01:00
EmaMaker 4aef800210 ship glfw 2023-02-11 21:49:35 +01:00
emamaker 69c44e3609 enable faceculling
Doesn't give a massive improve in performance right now, but a nice one to have and was already made from the jme3 porting
2022-12-01 23:45:05 +01:00
emamaker 773b7999d4 chunkmgr: do not update same chunk multiple times
Iterating on radius from 0 up to RENDER_DISTANCE made the algorithm check the same "sphere" multiple times
2022-12-01 23:45:05 +01:00
emamaker 1ccbf8b157 rudimentary frustum culling
TODO: maybe manually extract planes and check against those
2022-12-01 23:45:05 +01:00
EmaMaker 8116791dcf use hilbert curve instead of flatten array
Using valgrind heap memory tracker, this does not seem to bring any advantage on heap memory usage. To be tested more in depth
2022-12-01 23:44:47 +01:00
EmaMaker b724640384 chunkgen: take advantage of intervalmap structure
brings down heap memory usage to about 67% of that using arrays (valgrind, tested on standard terrain with renderdistance at 8)
2022-12-01 23:44:03 +01:00
EmaMaker 8eb15f4725 chunk: migration to intervalmaps 2022-12-01 23:44:03 +01:00
EmaMaker 5dd924abf7 implement intervalmaps 2022-12-01 23:44:03 +01:00
emamaker 2418c481bd camera: wider and further view 2022-12-01 23:44:03 +01:00
emamaker 9b133181ba chunkmesh: cleanup 2022-12-01 23:44:03 +01:00
EmaMaker c8f429564c chunkmgr: properly dispose allocated chunk memory 2022-12-01 23:44:03 +01:00
EmaMaker a5ddb0e37f chunkmgr: avoid call of chunkmesh default ctor 2022-12-01 23:44:03 +01:00
EmaMaker 93adf73777 better fake lightning 2022-12-01 23:44:03 +01:00
EmaMaker 8e727a9ff7 chunkgen: use correct variable for z coord 2022-12-01 23:43:59 +01:00
EmaMaker 9ec4e42495 chunkmesh: resolve bug in mesh index counting 2022-11-10 23:29:34 +01:00
EmaMaker 768312a9dd colors and fake lightning 2022-11-10 22:47:06 +01:00
EmaMaker 3a649836e5 initial commit
initial port of https::/git.emamaker/voxel-test-intervalmaps to c++ and opengl
2022-11-10 19:53:52 +01:00