Commit Graph

643 Commits

Author SHA1 Message Date
Adam Scott dcf4cf79fd
Hide snap_2d_vertices_to_pixel setting to advanced 2024-02-28 10:59:41 -05:00
K. S. Ernest (iFire) Lee 04d43947bf
Add ufbx for FBX importing
This update introduces a new import method for FBX files using ufbx. If the fbx2gltf import fails, it will use the most recently cached scene from the ufbx import. The process is sped up by introducing threads to load the ufbx portion.

Key changes include:

- Support for importing geometry helper nodes in FBX files.
- Addition of cameras and lights with updated names.
- Removal of the fbx importer manager.
- Introduction of ModelDocument3D and updates to its methods.
- Changes to FBX import options and visibility.
- Updating the documentation and handling some errors.
- Store the original non-unique node, mesh and animation names in FBX and glTF.

Co-Authored-By: bqqbarbhg <bqqbarbhg@gmail.com>
2024-02-23 22:33:04 +01:00
A Thousand Ships 9e6158d687
[Docs] Fix some experimental/deprecated hints 2024-02-23 19:48:53 +01:00
Sabs, like Sobs 3475156ae3 Expose pixel snapping settings add pixel-art notes
This small in-engine documentation change aims to make it easier to
discover ways to handle pixel art aesthetics.

- I have moved 2D pixel snapping settings out of "Advanced." This now matches other pixel-art-friendly settings for
GUI Snapping and Default Texture filtering.
- I've added notes to the project settings and Sprite/AnimatedSprite sources to hint users towards better understanding of why pixelated sprites may not work correctly and what to do about it. This should help users make informed decisions for their needs.

Context: Proper handling of pixel art in Godot is routinely frustrating for new users: I, like others, assumed that Godot would act on pixels, not subpixels, when I was working a pixel art game. I was confused when my interpolations would appear blurry, and when pixel textures would be distorted for no apparent reason (this was because of centering).
I had naively thought that setting Linear interpolation would be the single "it's a pixel art game" toggle, but that only hid the underlying issues until later. I had no idea there was a snap-to-pixel option because it was hidden in the Advanced options, since my default assumption was that a pixel art game would want no subpixels at all.

Some references for the frustration:

- https://github.com/godotengine/godot/issues/82696
- https://www.reddit.com/r/godot/comments/fah25e/best_way_to_achieve_pixel_perfect_rendering/
- https://shaggydev.com/2021/09/21/project-setup-for-pixel-art/
2024-02-17 23:40:53 +00:00
Rémi Verschelde b6ef996eb7
Merge pull request #86608 from TokageItLab/add-warn-setting-anim
Add some options to Project Settings to silence warnings in AnimationMixer caching
2024-02-17 00:22:52 +01:00
Anatoli Babenia e25cfffc7f Add `--no-header` option to clean output
* Do not print empty line when header is disabled
* Do not print Vulcan header
* Also add "Print header" project setting (default On)
  (suggested by @kaissouDev)
* Add docs for the project setting
  (with suggestions by @Mickeon and @akien-mga)

Co-authored-by: Micky <66727710+Mickeon@users.noreply.github.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-02-15 14:10:11 +03:00
Silc Lizard (Tokage) Renew dc4b7bc364 Add option to silence some warnings in AnimationMixer caching 2024-02-14 14:48:02 +09:00
Rémi Verschelde afc49e52e4
Merge pull request #88130 from AlekseyKapustyanenko/Rotary_Input
Add rotary input support for Android platform
2024-02-13 23:43:33 +01:00
ALEKSEY KAPUSTYANENKO d5c2a641f0 Add rotary input support. Fix documentation 2024-02-13 21:12:59 +04:00
A Thousand Ships 8b3c12d8df
Allow configuring the maximum width for atlas import 2024-02-13 10:30:44 +01:00
Dario 73eff10c76 Finish splitting functionality of the Vulkan and D3D12 backends into RenderingDeviceDriver. 2024-02-12 10:02:18 -03:00
Pawel Lampe 9ea8d4fa38 Add means for fixing navmap synchronization errors 2024-02-11 21:06:47 +01:00
Tiger Jove 7d9f6da8e3
Rewrite docs for physics damping project settings
Signed-off-by: Tiger Jove <tiger@jupiter.blue>
2024-02-09 18:00:28 +01:00
Rémi Verschelde fd6f6a05bf
Merge pull request #82376 from MewPurPur/add-missing-docs
Document worker thread pool project settings and `TreeItem.uncollapse_tree()`
2024-02-08 13:45:50 +01:00
Rémi Verschelde e10a99f262
Merge pull request #88040 from Calinou/doc-projectsettings-initial-position
Document initial position project settings not affecting run from editor
2024-02-08 10:54:03 +01:00
Hugo Locurcio d3df15f823
Document initial position project settings not affecting run from editor 2024-02-07 18:25:25 +01:00
Hugo Locurcio 6f9586443a
Add a V-Sync editor setting
The editor setting makes it possible to tweak V-Sync status
independently of the project setting.

Use cases:

- Decrease input lag and increase editor responsiveness when editing
  a project that has V-Sync enabled.
- Avoid tearing when editing a project that has V-Sync disabled.
2024-02-05 22:14:20 +01:00
Rémi Verschelde f8a039e9b5
Merge pull request #84745 from lawnjelly/lightcull
Shadow volume culling and tighter shadow caster culling
2024-01-31 11:13:19 +01:00
Riteo 7e0f7d3abd Add Wayland support
Not everything is yet implemented, either for Godot or personal
limitations (I don't have all hardware in the world). A brief list of
the most important issues follows:

- Single-window only: the `DisplayServer` API doesn't expose enough
information for properly creating XDG shell windows.

- Very dumb rendering loop: this is very complicated, just know that
the low consumption mode is forced to 2000 Hz and some clever hacks are
in place to overcome a specific Wayland limitation. This will be
improved to the extent possible both downstream and upstream.

- Features to implement yet: IME, touch input, native file dialog,
drawing tablet (commented out due to a refactor), screen recording.

- Mouse passthrough can't be implement through a poly API, we need a
rect-based one.

- The cursor doesn't yet support fractional scaling.

- Auto scale is rounded up when using fractional scaling as we don't
have a per-window scale query API (basically we need
`DisplayServer::window_get_scale`).

- Building with `x11=no wayland=yes opengl=yes openxr=yes` fails.

This also adds a new project property and editor setting for selecting the
default DisplayServer to start, to allow this backend to start first in
exported projects (X11 is still the default for now). The editor setting
always overrides the project setting.

Special thanks to Drew Devault, toger5, Sebastian Krzyszkowiak, Leandro
Benedet Garcia, Subhransu, Yury Zhuravlev and Mara Huldra.
2024-01-30 16:44:47 +01:00
lawnjelly 4577dfdb67 Shadow volume culling and tighter shadow caster culling
Existing shadow caster culling takes no account of the camera.
This PR adds the highly encapsulated class RenderingLightCuller which can cut down the casters in the shadow volume to only those which can cast shadows on the camera frustum.
2024-01-30 08:38:31 +00:00
mxaddict ad106a283b Update blender_path behavior to require exact path to executable instead of trying to guess it 2024-01-27 00:41:53 +08:00
Hugo Locurcio 6e5e7b8cb7
Add `--log-file` command line argument to write output log to a file
This works even if file logging is disabled in the project settings,
or for the editor/project manager.

`--log-file`'s value can be an absolute path or relative to the project
directory (similar to existing arguments like `--write-movie`).
2024-01-19 20:30:04 +01:00
Yuri Sizov 1169b872c4 Merge pull request #86246 from ecmjohnson/doc-threaded_cull_minimum_instances
Add description for rendering/limits/spatial_indexer/threaded_cull_minimum_instances
2024-01-17 18:52:40 +01:00
MewPurPur 786e5bc731 Add missing docs for worker thread pool ProjectSettings and TreeItem.uncollapse_tree() 2024-01-16 20:03:29 +02:00
Erik Johnson 498f46063d Add descpription for rendering/limits/spatial_indexer/threaded_cull_minimum_instances 2024-01-15 19:41:26 -05:00
Micky 61bdbdd9ee Replace some "uncommon" words in class reference 2024-01-15 18:51:52 +01:00
Rémi Verschelde dc79e956b6
Merge pull request #86587 from RandomShaper/wtp_enhance
Enhance & fix `WorkerThreadPool`
2024-01-11 17:38:09 +01:00
Rémi Verschelde 50f68ed704
Merge pull request #84886 from Calinou/doc-window-resizable
Document changing the window's resizable status at runtime
2024-01-11 17:35:14 +01:00
Dario cc4d39b0c1 Acyclic Command Graph for RenderingDevice.
Adds a new system to automatically reorder commands, perform layout transitions and insert synchronization barriers based on the commands issued to RenderingDevice.
2024-01-08 14:54:56 -03:00
Pedro J. Estébanez 9444d297ed WorkerThreadPool: Overhaul scheduling and synchronization
This commits rewrites the sync logic in a way that the
`use_system_threads_for_low_priority_tasks` setting, which was added due to
the lack of a cross-platform wait-for-multiple-objects functionality, can be
removed (it's as if it was effectively hardcoded to `false`).

With the new implementation, we have the best of both worlds: threads don't
have to poll, plus no bespoke threads are used.

In addition, regarding deadlock prevention, since not every possible case of
wait-deadlock could be avoided, this commits removes the current best-effort
avoidance mechanisms and keeps only a simple, pessimistic way of detection.

It turns out that the only current user of deadlock prevention, ResourceLoader,
works fine with it and so every possible situation in resource loading is now
properly handled, with no possibilities of deadlocking. There's a comment in
the code with further details.

Lastly, a potential for load tasks never being awaited/disposed is cleared.
2024-01-08 12:45:42 +01:00
Septian d3e7b8c8a8 Fix various typos in documentation 2024-01-05 15:47:58 +07:00
Rémi Verschelde 14b1bb47a7
Merge pull request #86570 from RandomShaper/remove_traces_of_rid_prealloc
Remove traces of the extinct RID preallocate feature
2024-01-02 18:05:41 +01:00
bruvzg 126a763f7a
[D3D12] Dynamically load Agility SDK. 2024-01-02 17:15:59 +02:00
Pedro J. Estébanez c217041afd Remove traces of the extinct RID preallocate feature 2023-12-28 10:18:05 +01:00
Rémi Verschelde 41365c6c8b
Merge pull request #70315 from RandomShaper/d3d12_mesa
Direct3D 12 Rendering Driver (Mesa NIR approach)
2023-12-12 21:58:57 +01:00
Pedro J. Estébanez 2f47c57385 Add Direct3D 12 RenderingDevice implementation 2023-12-12 19:10:04 +01:00
Bastiaan Olij caddce14dd Add 3D MSAA and scaling support to GLES3 2023-12-05 10:01:00 +11:00
Hugo Locurcio d6768a17fa
Document changing the window's resizable status at runtime 2023-11-14 15:02:25 +01:00
Hugo Locurcio a63556212d
Don't apply frame delay project setting to the editor
This appears to already be the case for the Max FPS project setting.
2023-11-12 12:09:39 +01:00
bruvzg 173b84127b
[Windows] Add some AMD GPUs to the OpenGL blocklist. 2023-11-09 20:11:04 +02:00
Haoyu Qiu d6bd0e1289 Remove a redundant semicolon from max_fps documentation 2023-11-09 22:18:01 +08:00
Rémi Verschelde aaafc69132
Merge pull request #84513 from bruvzg/x11_fallback_and_spam
[X11] Add fallback from desktop GL to GLES, suppress PRIME detector error spam.
2023-11-09 11:46:36 +01:00
clayjohn a74cfc2629 Use default samplers in base uniform set when rendering to reflection probes 2023-11-07 17:46:05 +01:00
bruvzg f3d4f5a77e
[X11] Add fallback from desktop GL to GLES, suppress PRIME detector error spam. 2023-11-06 12:40:44 +02:00
Rémi Verschelde 799d30c306
Merge pull request #83753 from bruvzg/mac_angle_fb
[macOS] Fallback to native OpenGL renderer if ANGLE initialization failed.
2023-10-31 20:14:42 +01:00
Rémi Verschelde 608226a097
Merge pull request #82801 from allenwp/82587-untyped-declaration-usability
Add a recommendation to turn on type hints with untyped declaration warning
2023-10-30 23:18:10 +01:00
Rémi Verschelde be8761a801
Merge pull request #81176 from Jordyfel/integer-scaling-docs
Document integer scaling functionality and limitation
2023-10-30 23:17:21 +01:00
Allen Pestaluky ede91c9f89 Added recommendation to turn on Add Type Hints with Untyped Declaration warning
Fixes #82587 by improving usability of the untyped_declaration warning. This adds a note to the documentation that recommends turning on EditorSettings.text_editor/completion/add_type_hints when the untyped declaration warning is set to warn or error.

Co-authored-by: Yuri Sizov <11782833+YuriSizov@users.noreply.github.com>
2023-10-30 15:46:57 -04:00
Kacper Gibas df0d83f856 Fixed `window_width_override` description 2023-10-28 09:40:36 +02:00
Kacper Gibas c724368b7d Fix description of physics jitter 2023-10-22 11:12:21 +02:00