125 Commits

Author SHA1 Message Date
Marc Gilleron
983b7bd83d Merge branch 'master' into smooth_texturing
# Conflicts:
#	util/godot/funcs.h
2021-05-22 19:43:39 +01:00
Marc Gilleron
0dc6702308 VoxelToolTerrain.raycast now accounts for scale and rotation, and supports VoxelMesherCubes with non-zero values 2021-05-16 04:29:08 +01:00
Marc Gilleron
aa3f2c97df Fix crash when surfaces are empty (happens if one assigns blocky meshers on LOD terrain because it doesn't do the same checks up-front) 2021-05-15 23:38:35 +01:00
Marc Gilleron
fa48523073 Added collision layer and mask properties 2021-05-09 20:49:45 +01:00
Marc Gilleron
ed1de5b5f4 Comment 2021-05-07 22:29:20 +01:00
Marc Gilleron
d5bd6c794b Merge branch 'master' into smooth_texturing 2021-05-07 21:48:11 +01:00
Marc Gilleron
d53e7dd530 Fixed several bugs related to VoxelTool::paste()
- One of the Rect3i constructors was wrong
- Rewrite clipping logic of VoxelBuffer::copy_from
- Fix VoxelDataMap::paste to provide correct offsets
- Fix meshing data copy to account for clipping adjustments
2021-05-07 18:38:02 +01:00
Marc Gilleron
4e67a1530d Code to debug vertex sharing issues 2021-05-03 00:13:36 +01:00
Marc Gilleron
264b77ac21 Moved hardcoded output types outside the runtime.
For simplicity I chose to just give output nodes output ports,
like regular ones, and hide them in the editor.
It required to change a bit how output nodes are detected,
and backing output buffers are no longer required from callers.
This will allow to more easily implement custom outputs as well.
2021-05-02 01:22:44 +01:00
Marc Gilleron
0e2d7dc596 Comments and format 2021-04-25 20:23:52 +01:00
Marc Gilleron
42240fa018 Fix issues with is_uniform
- Items that cannot pack a bucket will use classic per-item comparison
- Fix wrong operator in bucket comparison
2021-04-25 16:21:15 +01:00
Marc Gilleron
b33a432b3d Optimized is_uniform for the case a buffer has not been compressed yet 2021-04-24 21:23:40 +01:00
Marc Gilleron
dc2f853b50 First version of texturing for Transvoxel. Needs optimization and tooling. 2021-04-21 18:26:40 +01:00
Marc Gilleron
10683ccd15 Comments 2021-04-15 20:35:31 +01:00
Marc Gilleron
310386bde8 Merge branch 'master' into block_size_decoupling 2021-04-11 01:09:51 +01:00
Marc Gilleron
26e42e3707 Sanity checks to prevent shifting by negative values 2021-04-10 17:46:15 +01:00
Marc Gilleron
313e592dcb Notes about big-endian 2021-04-10 17:38:07 +01:00
Marc Gilleron
2c6eb114b2 Fix order of SDF arguments 2021-04-07 00:05:38 +01:00
Marc Gilleron
9a131ed4ff Merge branch 'master' into block_size_decoupling
# Conflicts:
#	server/voxel_server.cpp
2021-04-06 22:00:55 +01:00
jacobcoughenour
c0721a7404 Added shadow mode setting to VoxelInstanceLibraryItems 2021-04-05 00:24:46 -04:00
Marc Gilleron
758e3bd227 Allow to use block size 32 for mesh blocks while using 16 for data blocks
Still hardcoded but a config should be added
2021-04-03 20:39:37 +01:00
Marc Gilleron
5766bc8b94 Merge branch 'master' into lod_fade_v2
# Conflicts:
#	README.md
#	editor/about_window.cpp
2021-03-27 01:48:36 +00:00
Marc Gilleron
9188ae619b Optimized several range analysis functions
- square, cube and polynomials are more precise
- lerp() is more precise
- smooth union and subtract are more precise
- fallback on simple min/max if smoothness is zero
2021-03-17 18:11:00 +00:00
Marc Gilleron
862e036317 More precise range analysis for FastNoiseLite 2021-03-14 18:47:23 +00:00
Marc Gilleron
43588cae17 Fix snapped implementation, it was not snapping size correctly 2021-03-12 23:33:29 +00:00
lhinuz
3430c3cf9f
Update file_locker.h
Missing file pointer convert.
2021-03-12 08:34:57 +08:00
Marc Gilleron
09c815e253 Implemented copy and paste for VoxelToolTerrain (untested) 2021-02-21 18:23:56 +00:00
Marc Gilleron
71384e25bc Moved sdf functions to their own file 2021-02-21 18:18:01 +00:00
Marc Gilleron
b51897b8df Added voxel raycast to VoxelToolLodTerrain
- Made more precise with an option to use binary search (unoptimized)
- Distance along ray is now available in blocky terrains as well
2021-02-21 03:08:47 +00:00
Marc Gilleron
f1e2ea9ad4 Update to latest Godot's threading primitives 2021-02-19 01:30:22 +00:00
Marc Gilleron
f8d5989998 Fix wrong boundary check 2021-02-18 21:17:22 +00:00
Marc Gilleron
d1207bdd96 Reorganized some utility files 2021-02-17 20:34:35 +00:00
Marc Gilleron
1c4542c8cf Fix warning 2021-02-16 22:47:13 +00:00
Marc Gilleron
5bef3b6cc6 Added scale distribution and noise 2021-02-16 01:14:04 +00:00
Marc Gilleron
094bbc1fe1 Refactored API to allow editor inspection and preview 2021-02-14 21:55:31 +00:00
Marc Gilleron
4639b8de3d Give names to threads so they show up in debugging tools 2021-02-09 00:52:26 +00:00
Marc Gilleron
b65b0b8045 Implemented saving and loading of modified instances in SQLite 2021-02-07 17:22:50 +00:00
Marc Gilleron
22471aafd0 Merge branch 'master' into instancing 2021-02-02 00:00:01 +00:00
Marc Gilleron
84181a9560 Implement buffer processing on sphere map functions 2021-02-01 23:40:17 +00:00
Marc Gilleron
a0e7a3229c Added compression header to make it reusable for other formats and more future proof 2021-01-31 15:47:36 +00:00
Marc Gilleron
0816d1fc09 Merge branch 'master' into instancing 2021-01-23 01:33:11 +00:00
Marc Gilleron
082cdf3e16 Allow ArraySlices to be empty 2021-01-16 13:37:41 +00:00
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