Commit Graph

675 Commits

Author SHA1 Message Date
b5b6d3a8ec Make is_equal_approx have explicit float and double versions 2021-05-20 06:18:11 -04:00
0846943ad5 Fix Quat includes 2021-05-19 15:09:21 +01:00
3877ed73d0 Dynamic BVH broadphase in 2D & 3D Godot Physics
Port lawnjelly's dynamic BVH implementation from 3.x to be used in
both 2D and 3D broadphases.

Removed alternative broadphase implementations which are not meant to be
used anymore since they are much slower.

Includes changes in Rect2, Vector2, Vector3 that help with the template
implementation of the dynamic BVH by uniformizing the interface between
2D and 3D math.

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2021-05-10 16:28:55 -07:00
c3f7465b7e Merge pull request #48535 from groud/tiles_squashed
TileSet and TileMap rework (squashed)
2021-05-07 20:46:06 +02:00
a3dda2df85 Rework the TileSet resource and TileMap nodes:
- Move most properties from TileMap to TileSet,
- Make TileSet more flexible, supporting more feature (several
  collision layers, etc...),
- Fusion both the TileMap and TileSet editor,
- Implement TileSetSources, and thus a new way to index tiles in the TileSet,
- Rework the TileSet and TileMap editors completely,
- Implement an editor zoom widget (and use it in several places)
2021-05-07 18:06:17 +02:00
bcbd480c32 Merge pull request #45144 from dalexeev/color-consts
Rename color constants (alternative)
2021-05-07 12:22:49 +02:00
e196733e88 Re-bind posmod, use int64_t instead of int
Fixes #48420, fixes #48421.
The binding was missed when moving GDScript built-in to Global Scope it seems.

Co-authored-by: kleonc <9283098+kleonc@users.noreply.github.com>
2021-05-04 13:25:08 +02:00
7610fc02a0 Cast Unix time to uint in the randomize function
This returns a double while the other values are all uint64_t. The
clang compiler gives a warning since converting the constant to double
loses precision.
2021-05-03 11:08:39 -03:00
a165eed73b Fix area calculation of Face3
There seemed to be a bug in area calculation in Face3::get_area()-function. It returned the area of "imaginary" parallelogram instead of the triangle. Therefore the area returned was twice the real area. This manifested itself when using a hydro module for godot ( https://gitlab.com/ringtechsolutions/godot-tools/hydro/hydro ) causing the buoyancy to be two times the expected value.

"Reference": http://www.maths.usyd.edu.au/u/MOW/vectors/vectors-11/v-11-7.html
2021-04-28 11:09:41 +02:00
305b2a15bf Merge pull request #48239 from akien-mga/goodbye-copymem
Core: Drop custom `copymem`/`zeromem` defines
2021-04-28 11:04:05 +02:00
8247667a3e Core: Drop custom copymem/zeromem defines
We've been using standard C library functions `memcpy`/`memset` for these since
2016 with 67f65f6639.

There was still the possibility for third-party platform ports to override the
definitions with a custom header, but this doesn't seem useful anymore.
2021-04-27 16:26:27 +02:00
4d9d99bb82 Implement occlusion culling
Added an occlusion culling system with support for static occluder meshes.
It can be enabled via `Project Settings > Rendering > Occlusion Culling > Use Occlusion Culling`.

Occluders are defined via the new `Occluder3D` resource and instanced using the new
`OccluderInstance3D` node. The occluders can also be automatically baked from a
scene using the built-in editor plugin.
2021-04-23 21:45:23 +02:00
22efa850bd Make randomize() use unix time too 2021-04-22 21:08:33 +02:00
e63976d4b2 Fix Color::get_{r,g,b,a}8
Closes #47022.
2021-04-09 16:11:02 +03:00
d83761ba80 Style: Apply clang-tidy's readability-braces-around-statements 2021-04-05 14:09:59 +02:00
9bbe51dc27 Style: Apply clang-tidy's modernize-use-nullptr 2021-04-05 14:05:07 +02:00
9196722935 Fix Quat multiplication
x, y, z values were updated too early
2021-03-29 13:57:34 -06:00
91181c2086 Fixes small typos and grammar correction 2021-03-12 19:05:16 +05:30
b59a06da25 Make Color::from_hsv use Color::set_hsv 2021-02-25 19:50:43 +01:00
988f4cdc90 Geometry2D::make_atlas Fail is passed invalid rect size 2021-02-24 23:38:30 +01:00
f054f760e6 Fix unchecked array access in build_*_planes 2021-02-22 16:32:51 +01:00
7d9ad2b845 Use Vector3.UP as a default value for look_at's up vector 2021-02-16 18:33:23 -05:00
2c71ff1119 Added signed_angle_to for Vector3 2021-02-16 05:07:33 -05:00
333f184734 Cylinder support in Godot Physics 3D
Cylinder collision detection uses a mix of SAT and GJKEPA.
GJKEPA is used to find the best separation axis in cases where finding
it analytically is too complex.

Changes in SAT solver:
Added support for generating separation axes for cylinder shape.
Added support for generating contact points with circle feature.

Changes in GJKEPA solver:
Updated from latest Bullet version which includes EPA fixes in some
scenarios.
Setting a lower EPA_ACCURACY to fix accuracy problems with cylinder vs.
cylinder in some cases.
2021-02-10 10:00:53 -07:00
3a3af0279b Merge pull request #45658 from RandomShaper/fix_frozen_peak
Make audio bus channels' peak volume consistent
2021-02-03 10:05:34 +01:00
a2b3a73e2d Make audio bus channels' peak volume consistent
Channels that are inactive -or when playback has not started yet- will report -200 dB as their peak value (which is also the lowest value possible during playback).
2021-02-02 11:30:32 +01:00
f55445079a Replace ColorN and from HTML with a string constructor 2021-02-01 17:27:19 -05:00
d2e1216504 Merge pull request #37547 from aaronfranke/tau
Use Math_TAU and deg2rad/etc in more places and optimize code
2021-02-01 20:55:25 +01:00
1be0d6b30e Type consistencies in core 2021-01-26 13:04:22 -05:00
fa498f6105 Merge pull request #45373 from aaronfranke/gdnative-sizeof
Define GDNative sizes using sizeof(godot_real) and sizeof(int32_t)
2021-01-26 14:00:32 -03:00
a97f1a3dc6 Rename color constants (alternative)
Named color constants renamed to UPPERCASE. Unlike #41019, this PR
is complete and implements these changes in the simplest way possible.

Co-authored-by: Shivam Mukherjee <mshivam98@gmail.com>
2021-01-26 19:07:00 +03:00
8b983bddfb Remove Quat set methods in favour of constructors 2021-01-26 06:52:04 +00:00
6c197cf259 Define GDNative sizes using sizeof(godot_real_t) and sizeof(int32_t) 2021-01-25 16:42:14 -05:00
8a6d4dd5ed Merge pull request #45023 from reduz/optimize-shader-vgpr1
Shader optimizations to reduce VGPR usage and increase occupancy
2021-01-20 00:10:21 +01:00
099dee35f4 Added GPU based cluster builder
Clustering is now GPU based, uses an implementation based on the Activision algorithm.
2021-01-19 23:31:06 +01:00
356d0fccc2 Remove useless "else" statements from vector3.h 2021-01-19 16:36:29 -05:00
0b409d89d0 Merge pull request #45136 from akien-mga/clang-format-11
CI: Update to clang-format 11 and apply ternary operator changes
2021-01-13 16:10:44 +01:00
ddd6fb37e8 Update PolyPartition / Triangulator library 2021-01-12 13:46:16 -05:00
af878716f2 CI: Update to clang-format 11 and apply ternary operator changes 2021-01-12 19:32:53 +01:00
1d5042c9e2 Use Math_TAU and deg2rad/rad2deg in more places and optimize code 2021-01-09 03:47:14 -05:00
9349a5507f Merge pull request #35505 from dalexeev/rtl_colors
Unified named colors in RichTextLabel
2021-01-08 09:03:55 +01:00
4cb070e590 Fix xform_inv of Plane, intermediate results were ignored 2021-01-03 23:49:39 -05:00
b5334d14f7 Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆
2021-01-01 20:19:21 +01:00
e455ca2f2f Added Geometry2D unit tests 2020-12-30 21:11:09 +01:00
6cebb8c117 Merge pull request #44586 from madmiraal/rename-stepify
Rename Math::stepify to snapped
2020-12-28 21:46:43 +01:00
058f3fe069 Merge pull request #44149 from madmiraal/rename-tangent-orthogonal
Rename Vector2.tangent() to Vector2.orthogonal()
2020-12-28 16:00:12 +01:00
b743a2ef3c Rename Math::stepify to snapped 2020-12-28 13:01:30 +00:00
b628912af0 Rename Rect2 and Rect2i grow_margin() to grow_side() 2020-12-28 12:47:33 +00:00
5b937d493f Rename empty() to is_empty() 2020-12-28 10:39:56 +00:00
2e66e5d599 Use page allocator for BVH 2020-12-24 14:08:03 -03:00