133 Commits

Author SHA1 Message Date
Marc Gilleron
89750a20f8 Made file streams thread-safe (but still won't be used in more than one thread)
- Added a global file locker so threads can synchronize when accessing files
- Added mutexes to serialize access to file streams (i.e to call in series)
- VoxelStream API now expects implementations to be thread-safe
- Did some logic/data separation in RegionFile in case we need an
  in-memory implementation, however I might just use SQLite in the
  future instead
2021-01-16 13:34:45 +00:00
Marc Gilleron
348618d605 Fix wrong variable name 2021-01-09 19:33:48 +00:00
Marc Gilleron
973cf729cd Added FastNoise2 for SIMD noise, but it won't be integrated yet.
It requires C++17, while Godot uses C++14. I was unable to override it,
and I'm not sure how compatible this will be with the runtime.
At least this would be doable in Godot 4.
2021-01-09 16:35:40 +00:00
Marc Gilleron
1e95374ccb The graph runtime now suports arbitrary position buffers, instead of an XZ rectangle 2021-01-08 21:04:49 +00:00
Marc Gilleron
e00ed9b538 Move all node logic to function pointers, each combined into one place 2021-01-07 22:19:06 +00:00
Marc Gilleron
3364748fef Integrate FastNoiseLite to voxel graph generator 2021-01-03 20:23:45 +00:00
Marc Gilleron
ff0b9271cf Make FastNoiseLite access constant 2021-01-03 17:43:18 +00:00
Marc Gilleron
c8dcbc55e3 Added FastNoiseLite 2021-01-02 00:59:12 +00:00
Marc Gilleron
37a202a00b Added material_override 2021-01-01 01:39:06 +00:00
Marc Gilleron
a34710f74c Added VoxelInstancer. First working API, script only. 2020-12-29 22:25:22 +00:00
Marc Gilleron
a12144304f Optimized Transvoxel (nearly twice as fast), also allowing 16, 32 and 64 bit precision 2020-12-23 02:27:54 +00:00
Marc Gilleron
87e575e504 Use reinterpret_cast instead of ambiguous C-style cast 2020-12-18 20:46:54 +00:00
Marc Gilleron
e18b3a55fd Don't make the editor redraw every frame when gizmos are shown 2020-11-21 18:15:12 +00:00
Marc Gilleron
10d6e5bd8a Script-based generators and streams have their own class, should fix C# API 2020-10-31 22:11:25 +00:00
Marc Gilleron
40d299413f Don't compute matrices if they aren't used when transforming blocks 2020-10-29 00:54:27 +00:00
Marc Gilleron
1200b012bb Some notes about tracy 2020-10-29 00:47:25 +00:00
Marc Gilleron
d158a92f57 Show bounds and octrees of VoxelLodTerrain with debug drawing 2020-10-24 00:08:14 +01:00
Marc Gilleron
4e65c8d937 Added bounds support to VoxelLodTerrain (rounded to octree size) 2020-10-22 22:43:31 +01:00
Marc Gilleron
68bb9d74df Removed unused class 2020-09-12 21:08:55 +01:00
Marc Gilleron
9ccf16419d Merge branch 'master' into threading_refactor
# Conflicts:
#	streams/voxel_block_serializer.cpp
#	voxel_buffer.h
2020-09-08 21:40:59 +01:00
Marc Gilleron
0922b92ace Fix some GCC warnings and Clang error 2020-09-07 23:26:04 +01:00
Marc Gilleron
fb8a1210e3 Comment and formatting 2020-09-06 19:59:08 +01:00
Marc Gilleron
d81ffb95f4 Detect usage of Tracy, add some profiler scopes 2020-08-30 04:00:01 +01:00
Marc Gilleron
107f29c5d3 Removed old profiler 2020-08-29 23:20:51 +01:00
Marc Gilleron
ac3e303818 Report script errors a bit better, I hope 2020-08-02 18:57:08 +01:00
Marc Gilleron
c47d0905a9 Fix missing file 2020-07-11 02:52:22 +01:00
Marc Gilleron
b8c235fce3 Added preview nodes (has a few limitations, may fix them later) 2020-07-07 23:28:02 +01:00
Marc Gilleron
33d38e61b1 Merge branch 'master' into voxel_gen_graph 2020-05-08 18:09:09 +01:00
Thor Correia
3e79f5e7e7 added raycast case for integer positions 2020-04-24 13:30:44 -07:00
Marc Gilleron
f73e566535 Added smoothstep 2020-04-05 19:53:07 +01:00
Marc Gilleron
9ce0ded22e Added a bunch of operation types, untested 2020-03-20 00:21:09 +00:00
Marc Gilleron
dbca01de59 Implemented more accurate noise range detection, moved range utils to their own file 2020-02-24 19:32:18 +00:00
Marc Gilleron
3a579dfb3e Merge branch 'master' into voxel_gen_graph 2020-02-23 01:57:14 +00:00
Marc Gilleron
9f7a081dd4 Non-cube voxels don't contribute to AO for now 2020-02-23 01:29:32 +00:00
Marc Gilleron
f5001fdc07 Merge branch 'master' into custom_blocky_mesh
# Conflicts:
#	util/array_slice.h
2020-02-22 22:55:50 +00:00
Marc Gilleron
927f7c4e3f Moved interval.h to the math/ folder 2020-02-22 22:52:19 +00:00
Marc Gilleron
60fb709c1c Added range analyzis to automatically find when a block will be uniform 2020-02-22 22:11:07 +00:00
Marc Gilleron
258b211560 Fix box bounds going off charts 2020-02-21 20:27:18 +00:00
Marc Gilleron
197c6c71bc Use a pattern matrix to determine side culling, so it can be baked more precisely 2020-02-11 21:20:05 +00:00
Tin Švagelj
e67ec6f207
Added missing semicolons on line endings 2020-02-07 04:52:06 +01:00
Marc Gilleron
aec06b214b Merge branch 'master' into depth 2020-01-26 23:34:08 +00:00
Marc Gilleron
87a9766442 voxel_raycast is now template 2020-01-26 20:43:40 +00:00
Marc Gilleron
4626b4d7a3 Added iso_scale parameter to heightmap generators, which eliminates terracing. As a result, sdf_mode is now useless and was removed. 2020-01-26 20:08:25 +00:00
Marc Gilleron
4b52d8fd18 get_channel_raw returns an ArraySlice instead of a pointer 2020-01-25 23:26:55 +00:00
Marc Gilleron
7723988b15 Merge branch 'master' into depth
# Conflicts:
#	meshers/transvoxel/voxel_mesher_transvoxel.cpp
2020-01-25 19:46:53 +00:00
Marc Gilleron
2c4c4f3288 Fix stupid bugs 2020-01-21 21:17:15 +00:00
Marc Gilleron
6a417bf657 Abstracted some of the heightmap SDF algorithm, WIP 2020-01-21 19:51:05 +00:00
Marc Gilleron
e76e4d2b49 Fix bad discarding code when block management threads are told to exit
In short, std::remove_if does NOT remove anything
2020-01-19 18:13:00 +00:00
Marc Gilleron
2fe83ce154 Fix wrong return values 2020-01-19 01:22:48 +00:00
Marc Gilleron
09acd82c72 Merge branch 'master' into depth 2020-01-18 19:29:57 +00:00