Commit graph

2053 commits

Author SHA1 Message Date
jfons 6995b0429c Assorted fixes to UV unwrapping and GPU lightmapper
Various fixes to UV2 unwrapping and the GPU lightmapper. Listed here for
context in case of git blame/bisect:

* Fix UV2 unwrapping on import, also cleaned up the unwrap cache code.
* Fix saving of RGBA images in EXR format.
* Fixes to the GPU lightmapper:
	- Added padding between atlas elements, avoids bleeding.
	- Remove old SDF generation code.
	- Fix baked attenuation for Omni/Spot lights.
	- Fix baking of material properties onto UV2 (wireframe was
	  wrongly used before).
	- Disable statically baked lights for objects that have a
	  lightmap texture to avoid applying the same light twice.
	- Fix lightmap pairing in RendererSceneCull.
	- Fix UV2 array generated from `RenderingServer::mesh_surface_get_arrays()`.
	- Port autoexposure fix for OIDN from 3.x.
	- Save debug textures as EXR when using floating point format.
2021-05-03 18:10:34 +02:00
rafallus 524d27493b Fix SurfaceTool crash when passing invalid Mesh 2021-05-01 23:02:58 -05:00
Marcel Admiraal fcf8071ec9 Fix documentation following implementation of particle trails 2021-05-01 13:12:31 +01:00
reduz 90056460ad Implement Particle Trails
-Enable the trails and set the length in seconds
-Provide a mesh with a skeleton and a skin
-Or, alternatively use one of the built-in TubeTrailMesh/RibbonTrailMesh
-Works deterministically
-Fixed particle collisions (were broken)
-Not working in 2D yet (that will happen next)
2021-04-30 17:38:02 -03:00
Rafał Mikrut efcb097674 Prevent setting too big or too small Collision Mask and Layer 2021-04-30 17:19:04 +02:00
PouleyKetchoupp 7352a4c0d9 Expose get_debug_mesh in Shape3D to scripting API
Can be useful for custom drawing of physics shapes without having to add
a collision object node to the tree.
2021-04-29 18:18:39 -07:00
Rémi Verschelde 418fe155f9
Merge pull request #48269 from akien-mga/remove-largetexture
Remove obsolete LargeTexture, it's no longer useful since 3.x
2021-04-29 09:45:06 +02:00
Rémi Verschelde 7e0a42a673
Merge pull request #46688 from QbieShay/fix-particle-rotate-y-4
Fixed rotate_y property of particle shaders
2021-04-28 17:09:17 +02:00
Rémi Verschelde 0e93a1df79
Remove obsolete LargeTexture, it's no longer useful since 3.x
It existed in early Godot releases to allow working around hardware limitations
on max texture sizes (e.g. hardware limits of 1024x1024 pixels).

Nowadays the max texture size supported natively by Godot is 16384x16384, and
even low end mobile hardware should support at least 4096x4096.

The LargeTexture implementation is basically just an array with offsets, sizes
and textures and should be easy to replicate with a custom Texture resource if
needed - solving most of its bugs on the way as the implementation removed here
has various unimplemented or incomplete methods.
2021-04-28 15:51:55 +02:00
Rémi Verschelde 305b2a15bf
Merge pull request #48239 from akien-mga/goodbye-copymem
Core: Drop custom `copymem`/`zeromem` defines
2021-04-28 11:04:05 +02:00
Rémi Verschelde 0582cefcbb
Merge pull request #48241 from akien-mga/tabs-panel-style-unused
Tabs: Remove unused 'panel' stylebox from default theme
2021-04-27 19:33:40 +02:00
Rémi Verschelde 95cfce661b
Merge pull request #48050 from JFonS/occlusion_culling 2021-04-27 19:07:12 +02:00
Rémi Verschelde cd8d321961
Tabs: Remove unused 'panel' stylebox from default theme
Cf. https://github.com/godotengine/godot/issues/37875#issuecomment-625297308.
2021-04-27 17:36:53 +02:00
Rémi Verschelde 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
Rémi Verschelde b95a82d46a
Merge pull request #47826 from Chaosus/vs_fix_default_input_overriding
Prevents default values of VSNodeCustom from overriding by a script
2021-04-27 10:42:51 +02:00
Stefan Boronczyk f15cabcfd2 fix triplanar mapping for AO 2021-04-25 03:32:17 +02:00
Rémi Verschelde 759b876b8a
Merge pull request #46593 from pycbouh/theme-editor-better-edit-ui
Refactor Edit Theme menu in Theme Editor
2021-04-23 23:12:25 +02:00
jfons 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
Rémi Verschelde c36807994d
Merge pull request #47345 from nekomatata/heightmap-draw-triangles
Draw triangles for HeightMapShape debug collision
2021-04-20 17:41:11 +02:00
Rémi Verschelde fdf041a466
Merge pull request #47347 from nekomatata/heightmap-support
Heightmap collision shape support in Godot Physics
2021-04-20 17:40:28 +02:00
Rémi Verschelde 29775a1714
doc: Sync classref with current source 2021-04-19 12:26:37 +02:00
Rémi Verschelde 8ba06e3161
Merge pull request #47448 from madmiraal/rename-lineedit-cursor
Rename LineEdit getters and setters to match property names
2021-04-19 10:40:29 +02:00
Rémi Verschelde 6269895ecb
Merge pull request #47980 from reduz/split-particle-shader-entry-points
Split particle shader entry points
2021-04-18 23:39:17 +02:00
Yuri Sizov 2524238bb3 Refactor Edit Theme menu in Theme Editor 2021-04-18 17:55:49 +03:00
Yuri Roubinsky 8ae5c6c6ec Fix sky visual shader mode after last rename 2021-04-17 20:59:48 +03:00
reduz 906882ee66 Split particle shader entry points
* Particle shaders now have start() and process()
* Particle collision happens between them.
* The RESTART property is kept, so porting an old shader is still possible.

This fixes the problem of particle collisions not functioning on the first particle frame.
2021-04-17 12:22:55 -03:00
Marcel Admiraal 86822b187e Rename LineEdit caret_* properties getters and setters to match property 2021-04-17 12:41:23 +01:00
Rémi Verschelde 8bbdd43b09
Merge pull request #47950 from AndreaCatania/AndreaCatania-patch-4
Lowers the navigation edge margin merge
2021-04-16 10:23:55 +02:00
Andrea Catania fd2e652196
Lowers the navigation edge margin merge
Lowers the edge margin merge to avoid merge undesired edges.
2021-04-16 09:56:39 +02:00
reduz d3b49c416a Refactor GLSL shader compilation
-Used a more consistent set of keywords for the shader
-Remove all harcoded entry points
-Re-wrote the GLSL shader parser, new system is more flexible. Allows any entry point organization.
-Entry point for sky shaders is now sky().
-Entry point for particle shaders is now process().
2021-04-14 11:37:52 -03:00
Yuri Roubinsky 8d3e46098b Prevents default values of VSNodeCustom from overriding by a script 2021-04-12 14:41:08 +03:00
Rémi Verschelde 8b6e3d6375
Merge pull request #46340 from gongpha/various-color-picker
Add Various ColorPicker shapes
2021-04-10 13:29:50 +02:00
Rémi Verschelde cba3b024b5
Merge pull request #43746 from CaptainProton42/master
Vulkan: Implement triplanar mapping in world space
2021-04-08 21:26:08 +02:00
Kongfa Waroros 6294507acb Add Various ColorPicker shapes 2021-04-06 22:48:03 +07:00
Rémi Verschelde d83761ba80
Style: Apply clang-tidy's readability-braces-around-statements 2021-04-05 14:09:59 +02:00
Yuri Roubinsky 44af52d62c Prevents TextureUniform in visual shaders from conversion to constant 2021-04-04 17:32:44 +03:00
Rémi Verschelde cbf5408685
Merge pull request #46273 from Chaosus/vs_comment
Added Comment node to Visual Shaders
2021-04-04 16:04:12 +02:00
Rémi Verschelde 4b6e9f3157
Merge pull request #46991 from madmiraal/rename-invert-reverse
Rename Array.invert() to Array.reverse()
2021-04-01 13:32:22 +02:00
Rémi Verschelde c2b7c69e2b
Merge pull request #42827 from lyuma/rename_bones_blendshapes
Allow renaming bones and blendshapes.
2021-04-01 00:20:07 +02:00
Rémi Verschelde c6ff6707a4
Merge pull request #47457 from bruvzg/rtl_spacing
RichTextLabel: fix font extra spacing and style box size usage.
2021-03-29 17:07:38 +02:00
bruvzg 9f4893c70b
Use extra font spacing in the RichTextLabel line height calculation, and stylebox size in the minimum size calculation. 2021-03-29 17:26:53 +03:00
Rémi Verschelde bc29f4bca1
Merge pull request #47435 from madmiraal/rename-texture-get_data
Rename Texture.get_data() to get_image()
2021-03-29 10:41:22 +02:00
Rémi Verschelde b2eb838781
doc: Sync classref with current source 2021-03-29 09:51:33 +02:00
Marcel Admiraal fd30c36985 Rename Texture.get_data() to get_image() 2021-03-28 13:00:46 +01:00
PouleyKetchoupp c8dd3c7d80 Heightmap collision shape support in Godot Physics 2021-03-25 16:52:41 -07:00
Rémi Verschelde c6b9ceadf2
Merge pull request #47163 from bruvzg/macos_sandbox_file_dialog
FileDialog: add Back/Forward buttons, add message for inaccessible folders.
2021-03-26 00:00:25 +01:00
Morris Tabor 0fc8318f1a Fix ParticlesMaterial spread 2021-03-25 17:33:44 +01:00
Rémi Verschelde 9343a8a970
Merge pull request #47251 from pycbouh/theme-more-useful-methods
Add utility methods to Theme, improve error messages and documentation
2021-03-25 13:09:27 +01:00
PouleyKetchoupp 806a1a6646 Draw triangles for HeightMapShape debug collision
Helps with ambiguous cases where it's not possible to tell which diagonal is used for collision in quads.
2021-03-24 17:58:54 -07:00
Rémi Verschelde 036a50e8b9
Merge pull request #37755 from KoBeWi/check_down
Add disabled theme icons for CheckBox
2021-03-23 13:06:02 +01:00
bruvzg b202a0dd2a
FileDialog: add Back/Forward buttons, add message for inaccessible folders. 2021-03-23 08:03:41 +02:00
Rémi Verschelde e0f19287f7
Merge pull request #47226 from fabriceci/improve-rayshape-2D
Bring the Raycast2D improvements to Rayshape2D
2021-03-22 23:56:18 +01:00
Juan Linietsky 97a3a66220 Improved 3D Scene Importer
* Added option for importers to show an Advanced settings dialog
* Created advanced settings dialog for Scene Importer
* Cleaned up importers (remove many old/unused options)
* Added the ability to customize every node, material, mesh and animation individually
* Saving to animations and meshes to files is now a manual process, making it more predictable
* Added the ability for materials to be replaced by external files (or to be made external, up to you).
* When doubleclicking an impoted scene in the filesystem dock, it automatically shows the import settings instead of asking to open it.

WARNING: Lightmap UV unwrap is not working, it needs to be re-made.
2021-03-22 12:16:40 -03:00
Yuri Sizov 9df05745ba Add utility methods to Theme, improve error messages and documentation 2021-03-22 14:49:31 +03:00
fabriceci f810ff35fa Bring the Raycast2D improvements to Rayshape2D 2021-03-21 14:52:44 +01:00
Marcel Admiraal 755c70b871 Rename Array.invert() to Array.reverse()
Does the same internally for List and Vector<>, which includes all
PackedArray types.
2021-03-21 10:20:08 +00:00
CaptainProton42 856312ca6d Implement FLAG_UV*_USE_WORLD_TRIPLANAR
Implements triplanar mapping in world space for UV1 and UV2
when the respective flags are enabled.
2021-03-19 20:35:20 +01:00
PouleyKetchoupp 7bbd545432 Disable backface collision with ConcavePolygonShape by default
Helps a lot with soft bodies and generally useful to avoid shapes to go
through the ground in certain cases.

Added an option in ConcavePolygonShape to re-enable backface collision
on specific bodies if needed.
2021-03-18 11:30:22 -07:00
Rémi Verschelde 08ca4184f4
Merge pull request #47024 from groud/navigation
Allow Navigation to be more flexible
2021-03-17 09:18:54 +01:00
Aaron Franke a94cef0ea0
Move SpriteFrames to its own file in the resources folder 2021-03-16 02:00:47 -04:00
Gilles Roudière ac7073f586 Allow Navigation to be more flexible 2021-03-15 15:58:59 +01:00
Anshul7sp1 91181c2086 Fixes small typos and grammar correction 2021-03-12 19:05:16 +05:30
Gilles Roudière a9dc53d152 Remove Navigation2D/3D nodes, and move the navigation map to the world resource 2021-03-10 11:23:06 +01:00
Kongfa Waroros d295d53b4a Add interpolation bar on each channel in ColorPicker 2021-03-09 14:58:19 +07:00
Rémi Verschelde 9a33c1b6a6
Merge pull request #46782 from bruvzg/fix_def_theme_size
Improve bitmap font scaling. Fix default theme font size.
2021-03-08 10:03:12 +01:00
bruvzg 43c7c279d5
Improve bitmap font scaling. Fix default theme font size. 2021-03-08 09:56:40 +02:00
Rémi Verschelde c487f1e854
Merge pull request #46643 from YeldhamDev/hide_all_the_things
Hide more options of disabled properties
2021-03-07 15:12:15 +01:00
QbieShay f1bb54d5e5 fixed particle rotate y flag 2021-03-05 11:37:00 +01:00
Rémi Verschelde 6b2577599f
Merge pull request #46665 from nekomatata/fix-crash-convex-shape-2d
Fix errors and crash with empty ConvexPolygonShape2D
2021-03-04 20:19:16 +01:00
PouleyKetchoupp 6fb6090748 Fix errors and crash with empty ConvexPolygonShape2D 2021-03-04 09:46:32 -07:00
Pedro Rodrigues 46218d8c37 Fix crash trying to destroy an ImageTexture object containing a null texture
The problem happened when `ImageTexture::create_from_image` was called
with an empty image. In this situation an RID was allocated despite the
texture being null. The destructor would then crash trying to acess this
null texture.

Fixes #46274
2021-03-03 23:54:27 +00:00
Michael Alexsander 4be282a269 Hide more options of disabled properties 2021-03-03 20:51:35 -03:00
sps1112 cf6bfea93f Add null check for NavigationMesh.create_from_mesh() 2021-03-03 15:59:30 +05:30
Rémi Verschelde 5895cd4c4f
Merge pull request #36202 from YeldhamDev/sprite_region_hide
Hide extra options from various nodes if they're not enabled
2021-03-02 14:15:25 +01:00
Michael Alexsander 70304f8633 Hide extra options from various nodes if they're not enabled 2021-03-02 09:25:09 -03:00
Rémi Verschelde f49433c91c Fix Animation tracks disabled by default
Was a regression from #45845.
2021-03-02 09:15:01 +01:00
Rémi Verschelde 1eaa89a008
Merge pull request #46539 from Chaosus/vs_fix_return
Removes redundant code from get_input/output_port_type (visual shaders)
2021-03-01 09:44:20 +01:00
Yuri Roubinsky 6f9bdaf656 Fix incorrect switching port type in VisualShaderNodeStep 2021-03-01 08:45:49 +03:00
Yuri Roubinsky 9aca12a1af Removes redundant code from get_input/output/_port_type (visual shaders) 2021-03-01 08:34:39 +03:00
Delf Neumärker 04a4828c5e
Fix crash when loading a scene containing an uncreatable type 2021-02-25 23:58:30 +01:00
PouleyKetchoupp c4b116cff7 Added option in project settings to draw Shape2D outlines
Disabling collision outlines can be useful for performance when the game
is running and many collision shapes are displayed.
2021-02-25 07:52:50 -07:00
Rémi Verschelde f3864ec89f
Merge pull request #46357 from kleonc/mesh_data_tool_crash_fix
MeshDataTool::create_from_surface Fail on invalid index data
2021-02-24 13:23:13 +01:00
Rémi Verschelde a527c6856b
Merge pull request #46045 from bruvzg/text_server_bmp_create
[TextServer] Restores bitmap font dynamic construction functions.
2021-02-24 12:55:36 +01:00
kleonc 8e82cf8174 MeshDataTool::create_from_surface Fail on invalid index data 2021-02-23 21:37:32 +01:00
Yuri Roubinsky fe3051fcce Added Comment node to Visual Shaders 2021-02-21 12:40:17 +03:00
Rémi Verschelde f6efa78173
Merge pull request #38565 from nekomatata/export-default-values
Fixed export var default value in PackedScene when script is not loaded in editor
2021-02-21 08:53:58 +01:00
Hugo Locurcio 23a1f616fd
Draw an outline for 2D debug collision shapes
This makes them easier to distinguish, especially when used
in a TileMap.

The default color's opacity has been slightly decreased to account
for the new outline.
2021-02-20 00:00:03 +01:00
Rémi Verschelde 4c4931eeae
Merge pull request #46196 from nmrkr/visual-shader-invalid-forced-connect
Fix crash when calling connect_nodes_forced with invalid params
2021-02-19 15:49:56 +01:00
Delf Neumärker 4a468171e5 Fix crash when calling connect_nodes_forced with invalid params 2021-02-18 22:57:41 +01:00
Delf Neumärker 735f75a16b Fix handling of negative indices in SurfaceTool 2021-02-18 22:43:39 +01:00
Pedro J. Estébanez 8e128726f0 Modernize atomics
- Based on C++11's `atomic`
- Reworked `SafeRefCount` (based on the rewrite by @hpvb)
- Replaced free atomic functions by the new `SafeNumeric<T>`
- Replaced wrong cases of `volatile bool` by the new `SafeFlag`
- Platform-specific implementations no longer needed

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-18 17:12:46 +01:00
andybarcia f455f873c7 Fixes crash when calling VisualShader::set_mode 2021-02-16 14:57:40 +01:00
Rémi Verschelde 2a03886cbf
Merge pull request #46082 from YeldhamDev/styleboxline_margin_fix
Fix StyleBoxLine's incorrect style margin values
2021-02-16 14:00:45 +01:00
Michael Alexsander ddf05a7c3c Fix StyleBoxLine's incorrect style margin values 2021-02-16 01:36:51 -03:00
Rémi Verschelde f14008b600
Merge pull request #46069 from bruvzg/fix_font_crash_empty_data
Fix font `draw_*string` crash with empty data.
2021-02-15 22:19:53 +01:00
bruvzg a354125d7d
Fix TextLine/TextParagraph crash when add_string / set_dropcap is called null font reference. 2021-02-15 22:57:42 +02:00
bruvzg 0fcbc1c6e3
Fix font draw_*string crash with empty data. 2021-02-15 22:41:16 +02:00
Rémi Verschelde 9d511ff924
Merge pull request #45704 from EricEzaM/PR/popup-menu-beautification
Improved PopupMenu visuals. Removed x-y margin, made it 'padding' instead
2021-02-15 13:38:47 +01:00
bruvzg bee718f1af
[Text Server] Restores bitmap font dynamic construction functions. 2021-02-15 10:46:49 +02:00
bruvzg f4d095cdd3
[TextServer] Restore character and space extra spacing support. 2021-02-15 10:46:23 +02:00