Commit graph

4013 commits

Author SHA1 Message Date
Vincent
75d38765a8 mp3 import and playback support backport 2020-12-07 15:32:09 +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
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
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
Fabio Alessandrelli
e52ed6d89e [HTML5] Port JavaScript inline code to libraries.
The API is implemented in javascript, and generates C functions that can
be called from godot.
This allows much cleaner code replacing all `EM_ASM` calls in our C++
code with plain C function calls.
This also gets rid of few hacks and comes with few optimizations (e.g.
custom cursor shapes should be much faster now).
2020-11-10 10:56:13 +01:00
Gordon
866c8de0ac Revert partial "FBX add roughness mappings and fixes general some material bugs"
This reverts partial commit b624e13681.

This resolves a bug with pivots and skinning breaking with this change.
2020-11-09 18:03:06 +00:00
Gordon
b624e13681 FBX add roughness mappings and fixes general some material bugs
- Fixed bug with FBX so we can import material values from the document for PBR when using StingRay (not Arnold *yet*)
- Adds more explicit errors and makes things simpler to read. Has more sanity checks to be sure things are working correctly
- Lazy Properties fixed items not loading due to capital letter errors in FBX parser
- Added debug tools to the materials so you know explicitly what material mapping is assigned to a texture and where it came from. (enable verbose printing to use this)
- Fix broken material mappings and debug entries properly
- Fix make embedded images properly detected
- Spam less errors for unsupported shading models with materials.

Future plans:
- Arnold materials need converted to PBR model, if possible.
2020-11-07 14:34:09 +00:00
Fabio Alessandrelli
10e69f5fa9 Fix gdnative build when WebRTC module is disabled. 2020-11-06 18:23:08 +01:00
Rémi Verschelde
8135fdd382
Merge pull request #43298 from RevoluPowered/fbx-bugfix-mesh-compression-flags
FBX respect mesh compression flags
2020-11-03 22:53:46 +01:00
Gordon MacPherson
48ef4f45a7 FBX respect mesh compression flags
Fixes mesh compression setting being totally ignored.
2020-11-03 20:06:58 +00:00
Gordon MacPherson
bcf77deaae FBX fix unskinned bones not being in the Ref<Skin> causing the rasteriser to error
This is because a skin bind count must match skeleton bone count, we should make this not the case for 4.0 IMHO as we can reduce the skin size in godot and make the skin surface simpler to process and have less entries :)
2020-11-03 18:23:52 +00:00
Rémi Verschelde
4f908fb671
Merge pull request #42941 from RevoluPowered/fbx-3-2-2020
[3.2] FBX importer rewrite
2020-10-30 17:34:28 +01:00
Gordon MacPherson
8197a611fa Rewrite FBX Importer to convert directly to Godot scene format
Co-authored-by: Gordon MacPherson <gordon@gordonite.tech>
Co-authored-by: Andrea Catania <info@andreacatania.com>
Co-authored-by: K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>

This is a complete rewrite of the importer. It will give more deterministic behaviour and has been sponsored by IMVU inc, over 1 year has gone into the development of this importer to remove the burden of the FBX SDK.
This was my project for 1 entire year and I really enjoyed the opportunity to add to Godot.

Along the road of implementing fixes we implemented fbx pivots, animations and inheritance type handling, which in most cases works properly.
We have implemented animation and mesh skinning too this should work out of the box, if there are issues let us know.
It's designed so that you can expand this with ease, and fix bugs easily too.
It can import from Autodesk Maya and import into Godot, with pivots.
There are bits we could polish but for now this is good enough.

Additional fixes made before upstreaming:
- fixed memory leaks
- ensure consistent ordering on mac linux and windows for fbx tree. (very important for material import to be deterministic)
- disabled incorrect warnings for fbx_material
- added compatibility code for /RootNode/ so compat is not broken
- Optimise FBX - directly import triangles
- remove debug messages
- add messages for mesh id, mesh re-import is sometimes slow and we need to know what mesh is being worked on
- Document no longer uses unordered maps
- Removed some usages of &GetRequiredToken replaced with safe *GetRequiredToken() function
- Added parser debugging
- Added ERR_FAIL_CONDS for unsupported mesh formats (we can add these later super easy to do now)
- Add memory debugging for the Tokens and the TokenParser to make it safe
- Add memory initialisation to mesh.cpp surface_tool.h and mesh.h
- Initialise boolean flags properly
- Refactored to correct naming for the fbx_mesh_data.h so you know what data you are working on
- Disabled corruption caused by the FIXME:
- Fixed document reading indexes and index_to_direct vs indexes mode
- Fixed UV1 and UV2 coordinates
- Fixed importer failing to import version 7700 files
- Replaced memory handling in the FBX Document with pointers, before it was dereferencing invalid memory.
- Fixed typed properties
- Improved Document API
- Fixed bug with ProcessDOMConnection() not working with the bool flag set to true.
- Fixed FBX skinning not deforming for more than one single mesh
- Fixed FBX skeleton mapping and skin mapping not being applied properly (now retrieved from document skin list)
- Fixed set_bone_pose being used in final version()
- Fixed material properties exceeding 1.0.
- FBX Document parser revamped to use safe memory practices, and with graceful error messages.
- ScopePtr, TokenPtr and various internal types have been fleshed out to use proper typedefs across the codebase.
- Fixed memory leaks caused by token cleanup failing (now explicit cleanup step, no shared_ptr, etc)
- Fixed bug with PropertyTable not reading all properties and not cleaning up properly.
- Fixed smoothing groups not working
- Fixed normal duplications
- Fixed duplication check for pre-existing coordinates.
- Fixed performance of vertex lookup in large meshes being slow, using lookup table separate to the data for indexing, this reduces import time from 10 minutes of bistro down to 30 seconds.
- Fixed includes requiring absolute path in headers and cpp files using CPPPath.

Bugs/Features wish list:
- locator bones
- quat anim key interpolation (most fbx maya files have euler rotations from blender and maya, nobody uses this)
- some rigs skins scale up when SSC enabled inconsistently per bone
- some skins can disappear entirely
- material mapping needs expanded, but this will be done for 4.0 as it requires rewrite.

Workarounds for issues found until we patch them:
- mesh -> clear skin can resolve most of the bugs above.
- locators can be worked around by removing them before exporting your rig.
- some material properties wont always import, this is okay to override in the material properties.

**If you are having issues or need support fear not!**
Please provide minimal rigs which can reproduce issues as we can't spend a lot of time investigating each rig. We need a small example which breaks and we can then sort the problem. In some cases this is not possible so its okay to privately send models to us via IRC or a ticket and we can provide an email address, we won't reveal or disclose privately sent rig files to any companies, or to companies I work for, they will not be shared, only tested and bugs will be drawn up from the conclusions. Also include identifying information about what you did and how it didn't work. Please file each file separately in a bug report, unless the problem is the same.
This was sponsored by IMVU, and a special thanks to everyone who supported this project.

Signed-off-by: Gordon MacPherson <gordon@gordonite.tech>
2020-10-30 15:59:19 +00:00
George Marques
798ee982ac Actually set GDScript static reference
(cherry picked from commit 0f1da72492)
2020-10-29 21:04:57 +01:00
George Marques
e360dc9a79 GDScript: Remove self static reference and create one on calls
This is needed because of the new changes to Variant. The reference
counter is increased by adding it to a Variant, which means no GDScript
will be freed (or will be double freed if manually freed somewhere).

(cherry picked from commit 4d960efafc)
2020-10-29 21:04:57 +01:00
Andrii Doroshenko (Xrayez)
9aecf040e1
GDNative XR: remove redundant config.py
It's not an engine module. This is handled by GDNative's
`SCsub` instead, as done for other subdirectories already.

(cherry picked from commit 650ae413ce)
2020-10-28 14:05:41 +01:00
Tomer Keren
3e4816efbd
Setting visibility on GridMap now works. Closes #41374.
Continuing the work from f43a0ef327,
It seems the maps visibility was not actually set and a flase value was propogated to the meshes
Trying to set the maps visibility directly (Using `set_visibility` causes the map to no longer to recieve visibility notifications, instead this approach was chosen

(cherry picked from commit fe52c6b0b7)
2020-10-28 14:05:39 +01:00
Yuri Roubinsky
374253242d [3.2] Shows ColorRect in Color constants autocompletion 2020-10-28 12:39:41 +03:00
Mateo de Mayo
edb79e584a Fix misleading editor message when redeclaring variables 2020-10-22 18:32:34 -03:00
Rémi Verschelde
0237d42809
Merge pull request #42547 from neikeq/3.2-rework-csharp-build-panel
[3.2] C#: Re-work solution build output panel
2020-10-20 15:12:30 +02:00
Haoyu Qiu
82900e54ea Fixes crash after using enums in export variables 2020-10-20 18:41:41 +08:00
Rémi Verschelde
311bdbc16c
doc: Sync classref with current source 2020-10-19 17:13:30 +02:00
Rémi Verschelde
4287af5148
doc: Make docs.godotengine.org links point to 3.2 branch 2020-10-19 16:10:01 +02:00
Aaron Franke
069ed4ec63
Link to demos from within the class reference
(cherry picked from commit 439be614f4)
2020-10-19 16:10:01 +02:00
Aaron Franke
730d42d8a4
Add GetStringFromUTF8 and GetStringFromASCII
(cherry picked from commit 029de52001)
2020-10-19 16:10:01 +02:00
Hugo Locurcio
8d445f3f9f
Link the Random number generation tutorial in the class reference
(cherry picked from commit 802c1e4df1)
2020-10-19 16:10:00 +02:00
Tomasz Chabora
cd23be5da7
Bind missing constant in VisualScriptPropertyGet
(cherry picked from commit aadc8d54a4)
2020-10-19 16:09:59 +02:00
Rémi Verschelde
9bbfa929bc
Mono: Fix typo in Godot.NET.Sdk.nuspec
Fixes #42666.

(cherry picked from commit 1af3cf15c2)
2020-10-19 16:09:59 +02:00
Jacob Edie
8467d28b16
added temp variable because *p_inputs[2] is the same as *p_outputs[0]
(cherry picked from commit d76457a7f3)
2020-10-19 16:09:58 +02:00
Ignacio Etcheverry
fdfba05fab [3.2] C#: Re-work solution build output panel
- Removed item list that displayed multiple build
  configurations launched. Now we only display
  the last build that was launched.
- Display build output next to the issues list.
  Its visibility can be toggled off/on.
  This build output is obtained from the MSBuild
  process rather than the MSBuild logger. As such
  it displays some MSBuild fatal errors that
  previously couldn't be displayed.
- Added a context menu to the issues list with
  the option to copy the issue text.
- Replaced the 'Build Project' button in the panel
  with a popup menu with the options:
  - Build Solution
  - Rebuild Solution
  - Clean Solution
- The bottom panel button was renamed from 'Mono'
  to '.NET' and now display an error/warning icon
  if the last build had issues.
2020-10-11 16:51:54 +02:00