Commit Graph

1121 Commits

Author SHA1 Message Date
ShyRed
96093778ed Remove hardcoded joint bias
Use user provided bias instead of hardcoded bias.
2019-03-27 19:21:07 +01:00
Daniel Rakos
6dd65c0d67 KinematicBody performance and quality improvements
With this change finally one can use compound collisions (like those created
by Gridmaps) without serious performance issues. The previous KinematicBody
code for Bullet was practically doing a whole bunch of unnecessary
calculations. Gridmaps with fairly large octant sizes (in my case 32) can get
up to 10000x speedup with this change (literally!). I expect the FPS demo to
get a fair speedup as well.

List of fixes and improvements:

- Fixed a general bug in move_and_slide that affects both GodotPhysics and
  Bullet, where ray shapes would be ignored unless the stop_on_slope parameter
  is disabled. Not sure where that came from, but looking at the 2D physics
  code it was obvious there's a difference.
- Enabled the dynamic AABB tree that Bullet uses to allow broadphase collision
  tests against individual shapes of compound shapes. This is crucial to get
  good performance with Gridmaps and in general improves the performance
  whenever a KinematicBody collides with compound collision shapes.
- Added code to the broadphase collision detection code used by the Bullet
  module for KinematicBodies to also do broadphase on the sub-shapes of
  compound collision shapes. This is possible thanks to the dynamic AABB
  tree that was previously disabled and it's the change that provides the
  biggest performance boost.
- Now broadphase test is only done once per KinematicBody in Bullet instead of
  once per each of its shapes which was completely unnecessary.
- Fixed the way how the ray separation results are populated in Bullet which
  was completely broken previously, overwriting previous results and similar
  non-sense.
- Fixed ray shapes for good now. Previously the margin set in the editor was
  not respected at all, and the KinematicBody code for ray separation was
  complete bogus, thus all previous attempts to fix it were mislead.
- Fixed an obvious bug also in GodotPhysics where an out-of-bounds index was
  used in the ray result array.

There are a whole set of other problems with the KinematicBody code of Bullet
which cost performance and may cause unexpected behavior, but those are not
addressed in this change (need to keep it "simple").

Not sure whether this fixes any outstanding Github issues but I wouldn't be
surprised.
2019-03-27 00:39:47 +01:00
Windy Darian
ff318d91ee Fix bone aabb calculation, which caused a skeletal mesh culling issue
There was a bug that could result in most bone aabb boxes ending up with
tiny size upon import and mess up with culling of skeletal meshes. This
fixes it.
2019-03-14 00:35:53 -04:00
Rémi Verschelde
6c2283b2d4
Merge pull request #26660 from marxin/fix-25639-audio-negative-shift
Fix #25639 by not shifting a negative value.
2019-03-05 23:10:02 +01:00
marxin
c24f53d4f6 Fix #25639 by not shifting a negative value. 2019-03-05 21:32:18 +01:00
marxin
0e781aeacb Fix #25641 by not shifting a negative value. 2019-03-05 21:18:46 +01:00
Rémi Verschelde
453d239a69
Merge pull request #26532 from aqnuep/texture_array_fixes
Fixed TextureArray and Texture3D issues
2019-03-04 15:09:11 +01:00
Juan Linietsky
34dd772054 Properly redraw if something animated is visible 2019-03-03 13:43:54 -03:00
Daniel Rakos
582f62c2b2 Fixed TextureArray and Texture3D issues
- Texture arrays and 3D textures weren't working previously due to an
  incorrect number of calls to glTexImage3D with incorrect level parameters.
  This change fixes that.
- Fixed the incorrect calculation of the byte size of layered textures.
- Added the layer count to the debugger info when viewing video memory usage.
2019-03-03 16:40:48 +01:00
Juan Linietsky
2f32a75d2e Skeletons can now choose between using local or world coords for processing, fixes #26468 2019-03-03 12:24:00 -03:00
Rémi Verschelde
467f18b738 Fix style issues from recent commits 2019-03-03 12:45:20 +01:00
Rémi Verschelde
56520d7bd6
Merge pull request #26505 from marcelofg55/input_buffer_crashfix
Fix possible crash on AudioDriver::input_buffer_write
2019-03-02 23:51:24 +01:00
Marcelo Fernandez
f529649cec Fix possible crash on AudioDriver::input_buffer_write 2019-03-02 19:41:45 -03:00
Juan Linietsky
1b8f56c099 Clean up and fix some situations where triangulation may fail, closes #26366 2019-03-02 12:04:24 -03:00
marxin
6be77da7eb Fix new GCC 9 warnings: -Wdeprecated-copy. 2019-03-02 14:37:02 +01:00
Juan Linietsky
b84b015225 Make query checks less agressive, fixes #24694 2019-03-02 08:48:47 -03:00
Juan Linietsky
3f681b0681 Clean up blend shape support in GLES2 and GLES3. 2019-03-01 16:01:44 -03:00
Marcelo Fernandez
f04bff349b Fix possible crash when AudioDriver::capture_start fails 2019-03-01 09:33:15 -03:00
Rémi Verschelde
09a541edd0
Merge pull request #26287 from JFonS/fix_25992
Use item_shadow_mask for LightOccluder2D culling
2019-02-27 21:28:31 +01:00
Rémi Verschelde
426a6fdc17
Merge pull request #26134 from marxin/fix-Wsign-compare
Fix -Wsign-compare warnings.
2019-02-27 09:22:47 +01:00
marxin
e5f665c718 Fix -Wsign-compare warnings.
I decided to modify code in a defensive way. Ideally functions
like size() or length() should return an unsigned type.
2019-02-27 07:45:57 +01:00
Juan Linietsky
ffb9f342a5 Ensure implicit conversions for scalar constants work in shaders, closes #26239 2019-02-26 23:21:37 -03:00
Juan Linietsky
f669ebeeaf -Properly handle missing ETC support on export
-Added ability for resource importers to save metadata
-Added ability for resource importers to validate depending on project settings
2019-02-26 18:45:06 -03:00
Juan Linietsky
5eeb06ffd1 -Remove harcoded opengl extension testing from OS, ask rasterizer instead.
-Fixed a bug where etc textures were imported broken
2019-02-26 11:58:47 -03:00
JFonS
1c3a1165e5 Use item_shadow_mask for LightOccluder2D culling 2019-02-25 22:58:14 +01:00
Juan Linietsky
fd68bb2596 -Treat scalar conversions when calling functions as error, closes #24261
-Make shader editor display errors if exist when just opening it
-Make ShaderMaterial not lose parameters if opened in error.
2019-02-23 17:55:09 -03:00
Rémi Verschelde
24097811e4 Fix invalid change from CLAMP to MAX in #26099
CLAMP limits the value between the two bounds, so for unsigned ints
it should be replaced by MIN(val, max), not MAX.

The issue in voxel_light_baker.cpp was fixed in 4f697f7.

Fixes #26170.
2019-02-23 12:08:21 +01:00
Rémi Verschelde
726f31e992
Merge pull request #26132 from marxin/fix-Wignored-qualifiers
Fix warnings seen with -Wignored-qualifiers.
2019-02-22 09:55:27 +01:00
Rémi Verschelde
60fe9321ac
Merge pull request #26099 from marxin/fix-Wtype-limits-warnings
Fix all -Wtype-limits warnings.
2019-02-22 09:44:59 +01:00
Juan Linietsky
87b303aa95 Fixed bugs in test body motion and removed unnecesary test in move_and_slide. Fixes #25968 2019-02-21 17:21:36 -03:00
marxin
c11e7ffd0e Fix warnings seen with -Wignored-qualifiers. 2019-02-21 20:24:29 +01:00
marxin
7de7f0ef17 Fix all -Wtype-limits warnings. 2019-02-21 19:34:35 +01:00
Rémi Verschelde
cac1a93d1b
Merge pull request #26103 from nekomatata/area2d-rectangle-collision-fix
Fixed Area2d input events ignoring the top and left edge of rectangle shape
2019-02-21 14:39:26 +01:00
PouleyKetchoupp
edcfe41bd5 Area2d rectangle collision check doesn't ignore the first pixel row and column (fix #25462) 2019-02-21 00:34:57 +01:00
marxin
8d51618949 Add -Wshadow=local to warnings and fix reported issues.
Fixes #25316.
2019-02-20 19:44:12 +01:00
JFonS
54b95b6c5a Add FRUSTUM camera mode, allowing tilted frustums
This new camera mode makes it easy to create tilted frustums for mirror
or portal effects.

This work was kindly sponsored by IMVU.
2019-02-19 17:48:08 +01:00
JFonS
964338b06b Fix update of canvas AABB with update_when_visible
Ensure the AABB of canvas items is always updated when
`update_when_visible` is enabled.
2019-02-17 20:28:00 +01:00
Juan Linietsky
81e15358c0 Skip disabled shape when getting rest info. Fixes #25941 2019-02-16 16:32:30 -03:00
Juan Linietsky
6d4eaebe1e Support multiple ray shapes in kinematicbody, fixes #25050 2019-02-16 16:15:22 -03:00
Juan Linietsky
ee464f56c4 Add a minimum treshold for acquiring rest contacts to avoid numerical precision issues. Fixes #25074 2019-02-16 13:45:01 -03:00
Juan Linietsky
f439b786ea Allow kinematic bodies without shapes to still move, fixes #24775 2019-02-16 11:06:44 -03:00
Juan Linietsky
2e6c98058f Make ray shapes not work with OWC. They don't make practical sense together. Closes #25532 2019-02-16 10:07:27 -03:00
Rémi Verschelde
5fc86026ca Fix typos with codespell
Using codespell 1.14.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
doubleclick
lod
nd
numer
que
te
unselect
EOF
$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2019-02-13 09:23:29 +01:00
Rémi Verschelde
75dae1b9a9 Drivers, main, servers: Ensure classes match their header filename
Renamed:
- `drivers/alsamidi/alsa_midi.h` -> `midi_driver_alsamidi.h`
  (same for `coremidi` and `winmidi`)
- `main/timer_sync.h` -> `main_timer_sync.h`
- `servers/visual/visual_server_global.h` -> `visual_server_globals.h`
2019-02-12 14:39:47 +01:00
Rémi Verschelde
b7cc2bb1e2 Core: Ensure classes match their header filename
Also drop some unused files.

Renamed:
- `core/dvector.h` -> `pool_vector.h`
- `core/io/resource_import.h` -> `resource_importer.h`
- `core/sort.h` -> `sort_array.h`
- `core/string_db.h` -> `string_name.h`

Dropped:
- `core/allocators.h`
- `core/os/shell.h`
- `core/variant_construct_string.cpp`
2019-02-12 13:34:25 +01:00
Juan Linietsky
cb09abdbbd Fixed OWC for rigid bodies, closes #25732 2019-02-12 08:40:18 -03:00
Rémi Verschelde
13c50e8aa5
Merge pull request #25481 from hpvb/fix-ubsan-asan-reports
Fix many asan and ubsan reported issues
2019-02-12 12:21:01 +01:00
Aaron Franke
3f837d5cc5 [Core] Rename Matrix3 file to Basis
The code already referred to "Basis", it's just the file name that was different for some reason.
2019-02-09 14:42:23 -05:00
Bastiaan Olij
005fb62284 Added a mesh interface to the arvr positional trackers 2019-02-06 21:03:43 +11:00
Hein-Pieter van Braam
d308eb091a Fix many asan and ubsan reported issues
This allows most demos to run without any ubsan or asan errors. There
are still some things in thirdpart/ and some things in AudioServer that
needs a look but this fixes a lot of issues. This should help debug less
obvious issues, hopefully.

This fixes #25217 and fixes #25218
2019-01-30 06:43:56 +01:00
Rémi Verschelde
5876c3f089 Revert " Deprecated Godot 3D physics engine"
This reverts commit 5de5a4140b.

@reduz still intends to rework it in the future, and it's convenient to
test if issues are specific to Bullet or not, so we keep it around for
the time being.
2019-01-28 16:51:03 +01:00
Rémi Verschelde
d0f289b0d9
Merge pull request #25314 from marxin/fix-24417-class-memaccess
Fix class memaccess
2019-01-27 21:32:26 +01:00
Juan Linietsky
0c60d4c682 Properly get proxy texture size for canvas light, fixes #17067 2019-01-27 16:57:05 -03:00
Juan Linietsky
1253b9c038 Add a check to help find transforms that are passes invalid. 2019-01-26 19:10:11 -03:00
Rémi Verschelde
433b8ee526 doc: Sync classref with current source 2019-01-26 22:21:53 +01:00
Juan Linietsky
a1157e8c5f Add "Apple" to the list of GPU vendors where depth prepass is disabled. 2019-01-25 11:48:28 -03:00
marxin
3e4dab5386 Use placement new in visual_server_scene.cpp (#24417). 2019-01-25 12:41:55 +01:00
Juan Linietsky
46af4b0a4b Changes to GLES2 renderer to not use cube shadows if not available, fixes #25132 2019-01-22 10:05:23 -03:00
Rémi Verschelde
769341e180 Cleanup after @reduz :)
Fixes #25172.
2019-01-21 11:12:55 +01:00
Juan Linietsky
d8b702b566 -Re-added margins in one way collision (made in a more user friendly way than in Godot 2.1), fixes #23860
-Fixed potential bug in OWC (i dont think anyone had it but..)
2019-01-18 14:15:05 -03:00
Juan Linietsky
7478f468b2 Fixes to 2D lights, closes #24750 2019-01-17 10:40:36 -03:00
Rémi Verschelde
7d46dbb553
Merge pull request #24826 from bojidar-bg/24755-fix-ysort-bug
Fix a nested ysort invalid memory read again
2019-01-09 14:15:06 +01:00
Bojidar Marinov
d1406bfeb4
Fix a nested ysort invalid memory read again
Fixes #24755
2019-01-09 14:22:54 +02:00
Rémi Verschelde
a15620c83e doc: Fix wrong references found by Sphinx and new makerst.py 2019-01-07 12:15:01 +01:00
Rémi Verschelde
1504c96112
Merge pull request #24539 from BastiaanOlij/override_gl_position
Override GL_position
2019-01-04 15:40:05 +01:00
Rémi Verschelde
b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Bastiaan Olij
c1a53d8b06 Always treat exponent as float 2018-12-30 13:10:58 +01:00
Bastiaan Olij
9f266cf7e5 Override GL_position 2018-12-29 23:56:50 +11:00
hedin
1dfdd6834e fixes crash when Body2DSW doesn't have space 2018-12-27 19:29:47 +02:00
Rémi Verschelde
2e39e38c10 doc: Sync classref with current source
Fix various code formatting issues and argument names.
2018-12-27 11:10:18 +01:00
Bastiaan Olij
f3dd3c0830 Adding option to re-orient our sky 2018-12-15 19:41:34 +11:00
Rémi Verschelde
4148eed943
Merge pull request #24324 from volzhs/access-mic
Request mic access only when is needed
2018-12-14 08:57:22 +01:00
volzhs
7d387dc63f Request mic access only when is needed 2018-12-14 06:40:13 +09:00
Rémi Verschelde
016092181c
Merge pull request #22910 from marcelofg55/nothreads_rec
Fix AudioEffectRecord not working without thread support
2018-12-13 21:11:02 +01:00
Marcelo Fernandez
7da55fb739 Fix AudioEffectRecord not working without thread support 2018-12-12 21:44:11 -03:00
Rémi Verschelde
c7cef29b00
Merge pull request #24218 from staddy/master
Disabled CollisionShape2D is not processed now
2018-12-12 16:39:45 +01:00
Stanislav
9edf98e841 Disabled CollisionShape and CollisionShape2D are not processed now
Fixes #24183
2018-12-12 17:48:35 +03:00
Rémi Verschelde
4fe5a1dbef
Merge pull request #24214 from marcelofg55/editor_audio_buses_fix
Fix EditorAudioBuses not updating when changing to a device with different channels
2018-12-12 13:55:21 +01:00
Rémi Verschelde
ac87560fda
Merge pull request #23469 from clayjohn/fragment_camera_matrix
Added CAMERA_MATRIX to fragment shader
2018-12-12 13:46:58 +01:00
Marcelo Fernandez
792786b4b7 Fix EditorAudioBuses not updating when changing to a device with different channels 2018-12-11 19:54:52 -03:00
Rémi Verschelde
37e198c320
Merge pull request #23483 from clayjohn/fragment_camera_view
Make VIEW vector available in fragment shader
2018-12-11 20:44:41 +01:00
clayjohn
2042d6214e make VIEW vector available in fragment 2018-12-11 09:44:38 -08:00
Rémi Verschelde
0a9a2b1d62
Merge pull request #24163 from clayjohn/light_uv_const
Make LIGHT_UV constant in canvas_item light shader
2018-12-11 15:25:18 +01:00
Rémi Verschelde
8fda8769d1 doc: Sync classref with current source 2018-12-04 21:57:07 +01:00
Bojidar Marinov
02b569297e
Fix error when adding children to YSort
If it weren't for this warning, it would have crashed in release builds.
Fix #23889, fixup 6b8d6e3b07
2018-12-04 21:11:40 +02:00
clayjohn
4740dd343e make LIGHT_UV constant 2018-12-04 10:10:47 -08:00
Rémi Verschelde
78cdbc54b0
Merge pull request #23994 from AndreaCatania/prec
Added function to control 6DOF precision
2018-11-28 10:30:47 +01:00
Juan Linietsky
af8d941c55 Added luminance capping to avoid glitches on small dots. closes #17996 2018-11-28 01:22:20 -03:00
Andrea Catania
a395d809a5 Added function to control 6DOF precision 2018-11-27 07:11:28 +01:00
Kanabenki
33a7fae127 Allow *= operator between vec and mat types in shaders 2018-11-24 18:57:29 +01:00
Juan Linietsky
631cf676c3 Removed noperspective (not in GLSL ES 3.0), do not write smooth if not specified. Fixes #20435 2018-11-21 23:07:09 -03:00
Juan Linietsky
10c3ba2c1b Remove comments and corrected code, which exists for correctness but will likely never be used. Fixes #20362 2018-11-21 22:57:31 -03:00
Rémi Verschelde
3df9aa3339
Merge pull request #23878 from bojidar-bg/23775-ysort-crash
Fix YSort crash when removing a child
2018-11-21 15:35:03 +01:00
Bojidar Marinov
d2750ce593
Fix YSort crash when removing a child
Fixup of 8e4837f357
Fixes #23775
2018-11-21 15:01:11 +02:00
Juan Linietsky
d304228003 Do not draw particles if they are not processing at all, fixes #19507 2018-11-19 20:34:29 -03:00
Juan Linietsky
634aa4fc24 Ensure bone AABBs are properly transformed to affect mesh AABB, fixes #19281 2018-11-19 10:43:29 -03:00
Rémi Verschelde
60ee61c7ff
Merge pull request #23742 from JFonS/fix_23698
Use hint_color when getting shader default params
2018-11-18 12:05:02 +01:00
Rémi Verschelde
5075e372f3
Merge pull request #23668 from sdfgeoff/fix_angular_constraints
Exposing more of bullets 6DOF spring constraints
2018-11-17 16:15:33 +01:00
Juan Linietsky
256bbd3561 Corrected some points discussed in #17491 2018-11-16 10:07:26 -03:00
Juan Linietsky
0b1e93ccd4 -Make sure monitorable cant be flipped while flushing queries, fixes #17330
-Also added set_deferred, this was missing.
2018-11-16 08:49:26 -03:00