Commit Graph

4141 Commits

Author SHA1 Message Date
Rémi Verschelde 497653ab53
Merge pull request #44628 from JFonS/new_cpu_lightmapper_3.2
[3.2] New CPU lightmapper
2021-01-15 13:25:46 +01:00
JFonS b1ca82c43a CPU lightmapper fixes.
- Fix Embree runtime when using MinGW (patch by @RandomShaper).
- Fix baking of lightmaps on GridMaps.
- Fix some GLSL errors.
- Fix overflow in the number of shader variants (GLES2).
2021-01-15 12:32:54 +01:00
Rémi Verschelde d298949513
Merge pull request #42882 from madmiraal/fix-39767-3.2
[3.2] Set Bullet collision shape index to zero when using a single shape or ConcavePolygonShape
2021-01-14 20:46:06 +01:00
Rémi Verschelde 152415a006
Merge pull request #43924 from madmiraal/fix-43588-3.2
[3.2] Fix cast_motion sometimes failing
2021-01-14 20:44:40 +01:00
JFonS 7d7d7ef16d CPU lightmapper formatting and minor fixes. 2021-01-14 18:08:33 +01:00
JFonS 112b416056 Implement new CPU lightmapper
Completely re-write the lightmap generation code:
- Follow the general lightmapper code structure from 4.0.
- Use proper path tracing to compute the global illumination.
- Use atlassing to merge all lightmaps into a single texture (done by @RandomShaper)
- Use OpenImageDenoiser to improve the generated lightmaps.
- Take into account alpha transparency in material textures.
- Allow baking environment lighting.
- Add bicubic lightmap filtering.

There is some minor compatibility breakage in some properties and methods
in BakedLightmap, but lightmaps generated in previous engine versions
should work fine out of the box.

The scene importer has been changed to generate `.unwrap_cache` files
next to the imported scene files. These files *SHOULD* be added to any
version control system as they guarantee there won't be differences when
re-importing the scene from other OSes or engine versions.

This work started as a Google Summer of Code project; Was later funded by IMVU for a good amount of progress;
Was then finished and polished by me on my free time.

Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2021-01-14 18:05:56 +01:00
JFonS a80e4a6158 Add Embree thirdparty library 2021-01-14 18:02:07 +01:00
JFonS ad8abef74c Add OpenImageDenoise thirdparty library 2021-01-14 18:02:07 +01:00
Sergey Minakov 614f701373 iOS Modules: separate main platform code from modules
Moved previously builtin modules 'GameCenter', 'AppStore', 'iCloud' to separate modules to be represented as plugin.
Modified 'ARKit' and 'Camera' to not be builtin into engine and work as plugin.
Changed platform code so it's not affected by the move.
Modified Xcode project file to remove parameters that doesn't make any effect.
Added basic '.gdip' plugin config file.
2021-01-14 15:30:00 +03:00
Rémi Verschelde f93c2ddc92
Merge pull request #45163 from akien-mga/3.2-cherrypicks
Cherry-picks for the 3.2 branch (future 3.2.4) - 16th batch
2021-01-13 17:38:05 +01:00
Rémi Verschelde 652105dcdd
Merge pull request #44704 from madmiraal/fix-44510-3.2
[3.2] Add signal to inform joint that body has exited tree
2021-01-13 17:16:19 +01:00
Rémi Verschelde b64fe918aa
Merge pull request #45160 from madmiraal/fix-45145-3.2
[3.2] Only remove Bullet's body constraints when removing body from space
2021-01-13 17:16:01 +01:00
Rémi Verschelde 8a8e0ae2eb
Merge pull request #40990 from madmiraal/fix-40739-3.2
[3.2] Reload Bullet space override modifier even when RigidBody is inactive.
2021-01-13 16:44:04 +01:00
Vedat Günel de34616552
Change reserved keyword in Regex documentation code
(cherry picked from commit 446a3f8ff2)
2021-01-13 16:17:09 +01:00
David Snopek bd0f5f50b2
Invert the Y-axis on thumbsticks and trackpads in WebXR
(cherry picked from commit 7a0d4275a2)
2021-01-13 16:17:09 +01:00
zero13cool 57416ce3ff
Changed type to make it work on x32 architecture.
(cherry picked from commit 9f3d7d9709)
2021-01-13 16:17:09 +01:00
Aaron Franke 6e1b2af770
Descriptive error message when using AudioStream(OGG/MP3) incorrectly
(cherry picked from commit 193564d83e)
2021-01-13 16:17:08 +01:00
nevarek 2167b977de
Optimize data format for OpenSimplex images
The previous RGBA format included unused RGB data. Using the LA8 format
removes the need to store the extra data.

The Docs have been updated to reflect the format changes.

(cherry picked from commit 041fe20f64)
2021-01-13 16:17:07 +01:00
Rémi Verschelde 49646383f1
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 🎆

(cherry picked from commit b5334d14f7)
2021-01-13 16:17:06 +01:00
Rémi Verschelde 188609e5ab
CI: Update to clang-format 11 and apply ternary operator changes
(cherry picked from commit af878716f2)
2021-01-13 16:14:35 +01:00
Marcel Admiraal 47657cd140 Only remove Bullet's body constraints when removing body from space 2021-01-13 13:45:40 +00:00
Rémi Verschelde 0a8cc0a565
Merge pull request #44006 from RandomShaper/gds_needless_check_3.2
Remove useless check in GDScript (3.2)
2021-01-11 13:53:42 +01:00
Yuri Roubinsky 602fc00e56 [3.2] Auto-assign default value for variable in visual script on type changing 2021-01-11 10:29:12 +03:00
Rémi Verschelde 3d31433229
doc: Remove links to RNG tutorial, not yet in 3.2 branch 2021-01-07 14:33:36 +01:00
Rémi Verschelde a18df71789
Merge pull request #44897 from RevoluPowered/add-blender-fbx-support
Preliminary Blender FBX support [3.2]
2021-01-06 09:43:26 +01:00
Gordon MacPherson 31bc1af82a Preliminary Blender FBX support
limitations:
- always has to use generated normal's.
- some animations won't be compatible (yet)

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-01-05 21:56:21 +00:00
Rémi Verschelde d7102ac78f
doc: Sync classref with current source 2021-01-05 21:33:34 +01:00
LoipesMas 0fc433d046
More explicit wording for str() and print() functions
(cherry picked from commit 9c65927aeb)
2021-01-05 21:33:34 +01:00
Hugo Locurcio e35f17d33d
Use `static const int` instead of `#define` for OpenSimplexNoise octaves
This closes #44860.

(cherry picked from commit 7a65375b7a)
2021-01-05 21:33:32 +01:00
Rémi Verschelde 3d88ea8468
Merge pull request #42397 from dsnopek/webxr
Add WebXR support (for Godot 3.2)
2021-01-05 00:13:10 +01:00
David Snopek 22cfa90ef5 Add support for WebXR 2021-01-04 17:01:42 -06:00
Marcel Admiraal 6b3bab6e54 Add signal to inform joint that body has exited tree 2020-12-31 14:51:07 +00:00
Rémi Verschelde 10cc044ea5
FBX: Clarify outdated format error
See #44780.

(cherry picked from commit 1dd75f41e5)
2020-12-29 16:02:03 +01:00
hoontee 85cc31332a
Properly handle empty CSGShapes
(cherry picked from commit 24a6aac472)
2020-12-29 16:02:02 +01:00
Marcel Admiraal cb629dd06b
Ensure flags are applied to CVTT options
(cherry picked from commit 709aa8ae2c)
2020-12-29 16:02:02 +01:00
Eyad d4bfa5a684
Fixes #42149 and fixes indentation errors to pass clang-format
(cherry picked from commit be1c161b0b)
2020-12-29 16:02:01 +01:00
Yuri Roubinsky 742a3f461c
Fix broken members panel in visual script editor
(cherry picked from commit d6bdd042bc)
2020-12-29 16:02:01 +01:00
Ignacio Etcheverry bf942447a3
Mono: Add extra WASM framework assemblies on game export
This is needed with newer Mono versions, at least with Mono 6.12+

Depends on the following commit from our build scripts:
godotengine/godot-mono-builds@9d75cff174

(cherry picked from commit b98e8b11e6)
2020-12-29 16:01:59 +01:00
skyace65 e072b3db82
Pow method doc fix
(cherry picked from commit 4fd20015f3)
2020-12-29 16:01:59 +01:00
Rémi Verschelde 688d422554
PVRTC: Move compress func to `modules/pvr`, drop obsolete PVRTexTool code
The code we had for PVRTexTool doesn't work as it's not compatible with current
PVRTexTool CLI options, and likely hasn't been for years.

Instead, we have our own vendored pvrtccompressor thirdparty library which all
users have thus de-facto been using. This commit moves the compress code to
`modules/pvr` where it belongs.

There's no proper compress function for PVRTC 2-bit format, that's a bug that
will need to be fixed (currently it's compressed as 4-bit format even if you
use Image::FORMAT_PVRTC2).

Fixes #28669.

(cherry picked from commit 1a31274855)
2020-12-29 15:12:06 +01:00
Marcel Admiraal 125032d8ee Fix ETC quality setting 2020-12-25 11:36:26 +00:00
Rémi Verschelde 344a02834b
Merge pull request #43899 from madmiraal/fix-43852-3.2
[3.2] Remove any constraints connected to a Bullet body when removing it
2020-12-19 09:31:04 +01:00
Rémi Verschelde 65c1db3131
Merge pull request #44305 from RevoluPowered/fbx-update-plugin
[fbx] Implement ColorIndex for Vertex Colors to ensure they are correct and duplicate vertexes correctly for multiple color attributes.
2020-12-17 21:19:59 +01:00
Rémi Verschelde 80c9f2d975
Merge pull request #44373 from neikeq/3.2-mono-wasm-m2n-hook
[3.2] Mono: Make Godot provide its own WASM m2n trampolines
2020-12-17 09:58:50 +01:00
Rémi Verschelde c01ccab885
Merge pull request #44392 from madmiraal/fix-42285-3.2
[3.2] Remove Generic6DOFJoint precision property
2020-12-15 19:07:27 +01:00
Marcel Admiraal 825ad65fc4 Remove Generic6DOFJoint precision property 2020-12-15 10:15:42 +00:00
Gordon MacPherson 18d1898309 [fbx] Fix #44371 #44376 File crash and Buffer Overflow
Fixes:
- Element collection will only contain valid elements.
- Fixes buffer overflow in the FBX document
2020-12-14 21:57:41 +00:00
Ignacio Etcheverry 1a5e985ed4 [3.2] Mono: Make Godot provide its own WASM m2n trampolines
This depends on a custom Mono patch from this commit:
godotengine/godot-mono-builds@0e312939bd
2020-12-14 19:46:41 +01:00
Gordon MacPherson 8ffad0d8bd ColorIndex supported now for vertex colors.
Other properties should index override where appropriate in future.
2020-12-14 16:51:15 +00:00
Ignacio Etcheverry 2c89152b33 Mono: Don't use -rdynamic when compiling for WASM
`-rdynamic` was causing the emsdk linker to silently fail to
generate the output `.wasm` file (even though exit code was 0).
2020-12-13 21:46:38 +01:00
Rémi Verschelde fd6b3060c1
Merge pull request #44316 from madmiraal/fix-handles-baseexception-3.2
[3.2] Don't handle BaseException in build scripts
2020-12-12 12:44:17 +01:00
Marcel Admiraal e21adf2bc6 Don't handle BaseException in build scripts 2020-12-12 10:10:23 +00:00
Rémi Verschelde b5e8b48bb7
Merge pull request #43921 from RevoluPowered/fbx-update-plugin
[FBX] general purpose fixes 🎄
2020-12-10 20:56:03 +01:00
Gordon MacPherson de61cfe7c5 [fbx] bugfixes skinning, materials and debugging info, merry xmas 🎄
Better materials:
- default values will no longer trigger things like emission,
clear coat being enabled etc incorrectly, mostly importers misunderstand
this value, a value of 1 is not actually enabled emission, it must have a
non zero setting other than emission value for the emission flags to
actually be enabled correctly in our engine #42386
- lambert materials are warned against significantly,
do not use Lambert in Godot, use a PBR material like Ai Standard Surface
 (it's like going from low quality to high definition in terms of output
 in scenes and on assets)
- roughness values are calculated correctly in this version

Fixes for normal's array - some normal's from some files were dropped and
generated, this is now fixed.
- FBX indexing for items with (-1) index, for normal data is supported,
this is super helpful at increasing our range of compatibility of
FBX meshes.

Fix bone rest data **no longer requiring go to bind pose in Maya and various applications**
- Partial fix for #43688

Validation tools added for validating large projects

Provide package name, vendor and FBX vendor in the log.

Implemented metadata properties so we can read extra document
info required for bug reporting

**FBX 2011 (version 7200)** is unsupported now,
you must re-export your file in Maya or Max to upgrade the file format.

Fixes skin bind poses being generated based on node xforms in the scene
Fixes duplicate bones being added to skin and prevents add_bones from
registering skeleton bones it now registers skin bind poses,
but this should really be documented in the engine correctly right now
 it doesn't tell you this is the case.
2020-12-10 19:30:17 +00:00
Rémi Verschelde 31cd9e560c
Mono: Fix GodotTools build after invalid cherry-pick
I wrongly resolved the cherry-pick conflict in c5acdfb5f5.
2020-12-10 17:54:37 +01:00
Rémi Verschelde 0c7a9bd283
doc: Sync classref with current source
And fix broken doctool after #43948.
2020-12-10 14:22:31 +01:00
PouleyKetchoupp e1561a6f29 Fix regression in gdscript initialization
A case was missing when cherry-picking PR #44093 from 4.0 to 3.2 branch.
2020-12-09 17:11:03 -07:00
Hugo Locurcio 8542d6ecd5
Tweak log file names for consistency between Mono and non-Mono logs
- Avoid spaces in Mono log file names.
- Use a `.log` extension for Mono logs, just like non-Mono logs.
- Use periods to separate hours/minutes/seconds for non-Mono logs.

(cherry picked from commit 4d81776fc9)
2020-12-09 11:22:05 +01:00
Ignacio Etcheverry a624448197
Mono: Add mono_bcl SCons option for a custom BCL location
Makes it let's bothersome to work with builds from our
godotengine/godot-mono-builds scripts, as they write the
BCL into an output directory separate from the runtime
(which is good as two runtimes may share the same BCL).

(cherry picked from commit dd5ace219d)
2020-12-09 11:22:05 +01:00
Ignacio Etcheverry 2725ce6798
Fix unhandled exception re-thrown in the editor
(cherry picked from commit bbaf854956)
2020-12-09 11:22:05 +01:00
Ignacio Etcheverry c5acdfb5f5
C#: Fix very slow build log update in the editor
(cherry picked from commit b0eb9061e4)
2020-12-09 11:22:05 +01:00
PouleyKetchoupp 9d2c012f23
Fix base script not initialized properly in some cases
Storing script references to pointer only in result.script_type could
lead to losing the last reference, causing further conversions from
Script* to Ref<Script> to fail.

Now result.script_type_ref is always set first, and then cleared in the
specific case of the script being the owner, to avoid cyclic reference
issues.

(cherry picked from commit 87d73faa66)
2020-12-09 11:22:05 +01:00
Sacha Waked d5ea412848
Updated open-simplex to have const noise functions
"open-simplex-noise-in-c" now updated to master and "opensimplex" module refactored accordingly

(cherry picked from commit 7e2b88a7eb)
2020-12-09 11:22:04 +01:00
Danil Alexeev 6c3a0e3a5a
Several edits to the GDScript docs
(cherry picked from commit bf96056ad0)
2020-12-09 11:22:03 +01:00
Rémi Verschelde 0b5a9bf716
Merge pull request #44135 from neikeq/godot-net-sdk-fixes-n-impr
Godot.NET.Sdk/3.2.4 - Fix targeting .NETFramework with .NET 5
2020-12-08 09:44:15 +01:00
Rémi Verschelde 2beb36fbad
Merge pull request #44170 from Faless/js/3.x_gdnative
[3.2] [HTML5] Optional GDNative Support
2020-12-07 18:15:13 +01:00
Vincent 75d38765a8 mp3 import and playback support backport 2020-12-07 15:32:09 +01:00
Ignacio Etcheverry a07589e2ad C#: Bump Godot.NET.Sdk version to 3.2.4 2020-12-06 01:12:10 +01:00
Ignacio Etcheverry cd339ff002 C#: Remove ProjectTypeGuids from Godot.NET.Sdk
The property has no effect as the older VS project system doesn't
work with Sdk style projects.

The presence of the property was preventing Visual Studio for Mac
from opening the project if the Godot extension is not installed.
2020-12-06 01:12:10 +01:00
Ignacio Etcheverry d639941446 C#: Fix targeting .NETFramework with Godot.NET.Sdk and .NET 5
Our target was overriding the official one, while not doing its job
assuming it was already taken care of...
2020-12-06 01:12:10 +01:00
Ignacio Etcheverry 9b24d5f2d0 C#: Don't overwrite newer Godot.NET.Sdk patch version in csproj
Allow game projects to use a Godot.NET.Sdk with a newer patch version.
The major and minor version are still required to be the same.

For example: Allow a Godot 3.2.4 C# project to use a hypothetical
3.2.5 version of Godot.NET.Sdk.
2020-12-06 01:11:31 +01:00
Fabio Alessandrelli 79a1418e7d [HTML5] Make GDNative support feature-based.
This is suboptimal as it requires adding an extra flag, but rewriting
how feature tags work is beyond the scope of this work.
2020-12-05 01:14:03 +01:00
Fabio Alessandrelli 4d1ebaad0f [HTML5] GDNative support via SIDE_MODULE.
Working, with emscripten > 2.0.9
Yes, the unreleased version. 2.0.9 works, but throws and error due to a
bug in emscripten with the thirdparty ENet library.
The issue is fixed upstream so newer releases will work.
2020-12-05 01:00:02 +01:00
Fabio Alessandrelli 8ebb52fad6 [HTML5] Add function signatures to JS libraries. 2020-12-04 23:37:41 +01:00
Rémi Verschelde 9df3d06d1f
Merge pull request #43897 from RandomShaper/fix_refl_probe_vis_3.2
Put misc. 3D tool visible instances on their own layer (3.2)
2020-12-03 13:29:36 +01:00
Adam Brown 639fdefc10
xatlas should be using the options configured here
It was using the defaults by mistake

(cherry picked from commit 9367b1d6c1)
2020-12-02 20:54:39 +01:00
Adam Brown df047e56fe
xatlas: Sync with upstream 5571fc7
Fixes #44017 by changing the `normalize()` function to check for non-negative rather than non-zero via an epsilon check.

(cherry picked from commit 23c754360a)
2020-12-02 16:03:26 +01:00
Pedro J. Estébanez 46fc451b9c Remove useless check in GDScript
The removed check was adding a protection for the case where a `Reference` has not yet got its reference count initialized and a script is called on it. That would cause the object to be released after the call. The removed code was constructing the `Variant` via the `Object` constructor so it didn't deal with the reference count and so the release was prevented.

 However, `Variant` no longer works that way so that check was useless. Now it's just illegal to run GDScript on a Reference whose reference count has not been initialized.
2020-12-01 12:35:06 +01:00
Marcel Admiraal 2e99b5b137 Fix cast_motion sometimes failing
- Fixes Godot physics failing when the cast Shape is inside of, or
already colliding with another Shape.
- Fixes Bullet physics failing when there is no motion.
- Ensures Godot and Bullet physics behave the same.
- Updates the documentation to exclude the caveats for the failures and
differences.
2020-11-27 15:32:25 +00:00
Pedro J. Estébanez 08a46bbacd Put misc. 3D tool visible instances on their own layer
This makes that visible stuff invisible to ReflectionProbes, whose preview in the editor shouldn't involve them.
2020-11-26 20:08:30 +01:00
Marcel Admiraal 4bfcaeff5a Remove any constraints connected to a Bullet body when removing it 2020-11-26 18:16:47 +00:00
Marcel Admiraal e4b3461441
Fix useless assignement in webrtc/library_godot_webrtc.js
(cherry picked from commit 4f654dad13)
2020-11-26 09:38:47 +01:00
Hugo Locurcio 922136b30d
Document that WebM videos don't support the alpha channel
(cherry picked from commit 1a616726cf)
2020-11-26 09:38:46 +01:00
Rémi Verschelde ac8dedd532
doc: Warn about using Node internal processing
See #43689.

Also 'fixed' some spelling for behavior in publicly visible strings.
(Sorry en_GB, en_CA, en_AU, and more... Silicon Valley won the tech spelling
war.)

(cherry picked from commit a655de89e3)
2020-11-26 09:38:45 +01:00
Rémi Verschelde 94c31175de
Merge pull request #43152 from Chaosus/color_autocompletion_3.2
[3.2] Shows ColorRect in Color constants autocompletion
2020-11-26 09:32:32 +01:00
Fabio Alessandrelli f316a1719d [HTML5] Run eslint --fix.
Should I write a poem about this whole new world? ;)
2020-11-23 13:27:13 +01:00
Fabio Alessandrelli e4cdae3624 [HTML5] Libraries refactor for linting.
Initial work to make liniting easier.

This includes:
- Rename http_request.js to library_godot_http_request.js.
- Rename externs.js to engine.externs.js.
- New library_godot_runtime.js (GodotRuntime) wraps around emscripten
  functions.
- Refactor of XMLHttpRequest handler in engine/preloader.js.
- Few fixes to bugs spotted by early stage linting.
2020-11-21 14:23:32 +01:00
Marcel Admiraal 04103db6bd
Fix godot_js_websocket_send function unused assignment.
(cherry picked from commit 112e2fdfc3)
2020-11-17 22:25:49 +01:00
Aaron Franke 3b10458a5d
Add HexEncode to C#
(cherry picked from commit 6b54d7dde1)
2020-11-17 12:02:00 +01:00
Aaron Franke e3419a7fe1
Add LStrip and RStrip to C# strings
(cherry picked from commit c89af1d433)
2020-11-17 12:01:59 +01:00
Rémi Verschelde fc5b106369
Merge pull request #42168 from madmiraal/fix-42108-3.2
[3.2]  Remove the unnecessary sync() and the restrictions it imposes on 3D Physics.
2020-11-16 09:33:17 +01:00
Aaron Franke 9c83b8ed70
[3.2] Improve comments in Color documentation 2020-11-14 04:56:18 -05:00
Rémi Verschelde adf2dabbde
Merge pull request #43456 from akien-mga/3.2-cherrypicks
Cherry-picks for the 3.2 branch (future 3.2.4) - 7th batch
2020-11-11 22:33:31 +01:00
Rémi Verschelde a57b6eb211
doc: Sync classref with current source
Move EditorSceneImporterFBX doc to its module folder.
2020-11-11 17:00:41 +01:00
Hugo Locurcio 913afd843b
Clarify that code in `assert()` should avoid side effects
(cherry picked from commit d6c7073bd7)
2020-11-11 15:44:18 +01:00
Rémi Verschelde 941e2f2ff3
Merge pull request #43454 from Faless/js/3.x_audio_worklet
[3.2][HTML5] Port inline JS code to libraries, AudioWorklet support.
2020-11-11 15:31:10 +01:00
Yuri Roubinsky 23620ff046
[Mono] Added Shuffle method to Array
(cherry picked from commit 156e4043b4)
2020-11-11 15:30:57 +01:00
Aaron Franke 1bb81488bb
Minor clamp and float fixes
(cherry picked from commit ee79fc627c)
2020-11-11 15:30:57 +01:00
Hugo Locurcio 7db872b55a
Add `Image.load_bmp_from_buffer()` for run-time BMP image loading
This partially addresses
https://github.com/godotengine/godot-proposals/issues/676.

(cherry picked from commit 0209e3790e)
2020-11-11 15:30:55 +01:00
Umang Kalra f40d46bafc
Fixes the misleading error message for call_recursive method for TreeItems
(cherry picked from commit c37f633216)
2020-11-11 15:12:02 +01:00