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