summaryrefslogtreecommitdiff
path: root/editor/import
AgeCommit message (Collapse)Author
2021-08-22Implement set_surface_material and set_surface_name methods in ↵Lyuma
EditorSceneImporterMesh, and add documentation.
2021-08-22Replace BIND_VMETHOD by new GDVIRTUAL syntaxreduz
* New syntax is type safe. * New syntax allows for type safe virtuals in native extensions. * New syntax permits extremely fast calling. Note: Everything was replaced where possible except for `_gui_input` `_input` and `_unhandled_input`. These will require API rework on a separate PR as they work different than the rest of the functions. Added a new method flag METHOD_FLAG_OBJECT_CORE, used internally. Allows to not dump the core virtuals like `_notification` to the json API, since each language will implement those as it is best fits.
2021-08-19Merge pull request #48560 from SaracenOne/collada_semantic_fix_4_0Rémi Verschelde
2021-08-13Fix duplicate conditions.Anilforextra
2021-08-10Remove infinite inertia and ray shapes from CharacterBodyPouleyKetchoupp
Infinite inertia: Not needed anymore, since it's now possible to set one-directional collision layers in order for characters to ignore rigid bodies, while rigid bodies still collide with characters. Ray shapes: They were introduced as a work around to allow constant speed on slopes, which is now possible with the new property in CharacterBody instead.
2021-08-09Some work on double supportAaron Franke
2021-08-05Make animation reset do less spam.K. S. Ernest (iFire) Lee
2021-08-05Merge pull request #51285 from V-Sekai/reset-anim-spamK. S. Ernest (iFire) Lee
Reset baking should not spam on lack of animation players.
2021-08-05Merge pull request #50797 from AndreaCatania/AndreaCatania-patch-4K. S. Ernest (iFire) Lee
Fix Static & Rigid body generation on mesh import.
2021-08-05Reset baking should not spam on lack of animation players.K. S. Ernest (iFire) Lee
2021-07-30Bake RESET animation.K. S. Ernest (iFire) Lee
Co-authored-by: MMMaellon <mmmaellon@gmail.com> Co-authored-by: Eron <rufsketch1@gmail.com>
2021-07-26Use Ref<T> references as iterators where relevantRémi Verschelde
And const when possible.
2021-07-25Use const references where possible for List range iteratorsRémi Verschelde
2021-07-24Fix scene import following List iterator changesAaron Franke
2021-07-24Fix Static & Rigid body generation on mesh import.Andrea Catania
The function `_gen_shape_list` is using the resource `Res<Mesh>`, but during the import phase the resource used is instead `Ref<EditorSceneImporterMesh>`. Note: the `Ref<EditorSceneImporterMesh>` is an intermediate resource, that will be used to create a `Res<Mesh>` at the end of the import process. `Ref<EditorSceneImporterMesh>` and `Ref<Mesh>` are not inheriting each other, so the internal cast done by `Ref<>` during the assignment, is always null: ```c++ Ref<EditorSceneImporterMesh> import_mesh(/* Assume it's initialized */); CRASH_NOW(import_mesh.is_null()); Ref<Mesh> mesh = import_mesh; CRASH_NOW(mesh.is_null()); // <--- Here we have a crash, since it's impossible perform the above cast, and the `mesh` is always null. ``` Here the full list of call to `_gen_shape_list`, where we can notice that a `Ref<EditorSceneImporterMesh>` is passed: - https://github.com/AndreaCatania/godot/blob/master/editor/import/resource_importer_scene.cpp#L428 - https://github.com/AndreaCatania/godot/blob/master/editor/import/resource_importer_scene.cpp#L454-L458 - https://github.com/AndreaCatania/godot/blob/master/editor/import/resource_importer_scene.cpp#L512-L516 As you can notice, we always pass the following mesh: `Ref<EditorSceneImporterMesh> mesh = mi->get_mesh();`. We already have the function `_pre_gen_shape_list` that executes the exact same job but using the correct type; Since there is no further usage of the function `_gen_shape_list` in the code base, I think it's just some leftover code, so I removed it entirely to use the proper function.
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-23Expose an ImportOrder enum in ResourceImporterHugo Locurcio
This avoids using magic numbers in code.
2021-07-18Optimize StringName usagereduz
* Added a new macro SNAME() that constructs and caches a local stringname. * Subsequent usages use the cached version. * Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time. * Replaced all theme usages by this new macro. * Replace all signal emission usages by this new macro. * Replace all call_deferred usages by this new macro. This is part of ongoing work to optimize GUI and the editor.
2021-07-07Options to clean/simplify convex hull generated from meshPouleyKetchoupp
Clean: remove duplicate and interior vertices (uses Bullet algorithm) Simplify: modify the geometry for further simplification (uses VHACD algorithm) In the editor, single convex hull now uses the clean option. Added a new editor entry to create a simplified convex hull, can be useful for creating convex hull from highly tessellated triangle meshes.
2021-06-30Fix editor suffixes and degrees conversionreduz
* Functions to convert to/from degrees are all gone. Conversion is done by the editor. * Use PROPERTY_HINT_ANGLE instead of PROPERTY_HINT_RANGE to edit radian angles in degrees. * Added possibility to add suffixes to range properties, use "min,max[,step][,suffix:<something>]" example "0,100,1,suffix:m" * In general, can add suffixes for EditorSpinSlider Not covered by this PR, will have to be addressed by future ones: * Ability to switch radians/degrees in the inspector for angle properties (if actually wanted). * Animations previously made will most likely break, need to add a way to make old ones compatible. * Only added a "px" suffix to 2D position and a "m" one to 3D position, someone needs to go through the rest of the engine and add all remaining suffixes. * Likely also need to track down usage of EditorSpinSlider outside properties to add suffixes to it too.
2021-06-28Implement Tree's internal minimum width calculationGilles Roudière
2021-06-20Fix for LOD is broken 49706K. S. Ernest (iFire) Lee
2021-06-20Merge pull request #49754 from aaronfranke/is-eq-approx-sub-optRémi Verschelde
Fix sub-optimal uses of is_equal_approx
2021-06-20Fix sub-optimal uses of is_equal_approxAaron Franke
2021-06-19Rename `instance()`->`instantiate()` when it's a verbLightning_A
2021-06-16ERR_FAIL_NULL check file accessK. S. Ernest (iFire) Lee
Null in ResourceImporterTexture::_save_stex
2021-06-14Merge pull request #49458 from JFonS/fix_unwrap_xformRémi Verschelde
Rename get_parent_spatial() to get_parent_node_3d()
2021-06-14Rename get_parent_spatial() to get_parent_node3d()jfons
Renames get_parent_spatial() to get_parent_node3d() and changes its implementation. Before it was not returning a correct pointer if the node wasn't added to a SceneTree. Now it uses the same implementation as CanvasItem, which will be correct even for nodes outside a SceneTree.
2021-06-12Consistently prefix bound virtual methods with _kobewi
2021-06-11Merge pull request #49312 from RandomShaper/reference_to_ref_countRémi Verschelde
Rename `Reference` to `RefCounted`
2021-06-11Merge pull request #47835 from mortarroad/master-lossless-webpRémi Verschelde
Implement lossless WebP encoding
2021-06-11Rename Reference to RefCountedPedro J. Estébanez
2021-06-11Implement lossless WebP encodingMorris Tabor
2021-06-11Merge pull request #49511 from akien-mga/core-diraccess-fileaccess-ioRémi Verschelde
Core: Move DirAccess and FileAccess to `core/io`
2021-06-11Merge pull request #49279 from Calinou/rename-string-is-abs-path-methodRémi Verschelde
Rename `String.is_abs_path()` to `String.is_absolute_path()`
2021-06-11Core: Move DirAccess and FileAccess to `core/io`Rémi Verschelde
File handling APIs are typically considered part of I/O, and we did have most `FileAccess` implementations in `core/io` already.
2021-06-05Merge pull request #39202 from Calinou/editor-import-invert-green-channelRémi Verschelde
Replace "Invert" import option with more useful "Normal Map Invert Y"
2021-06-04Rename Quat to QuaternionMarcel Admiraal
2021-06-04Replace "Invert" import option with more useful "Normal Map Invert Y"Hugo Locurcio
This can be used to invert a normal map's direction. The "Invert" import option is no longer useful in Godot 4.0 since it uses height maps instead of depth maps in StandardMaterial3D. This closes https://github.com/godotengine/godot-proposals/issues/785.
2021-06-03Rename Animation TYPE_TRANSFORM to TYPE_TRANSFORM3DAaron Franke
2021-06-03Rename `String.is_abs_path()` to `String.is_absolute_path()`Hugo Locurcio
This is more consistent with `NodePath.is_absolute()`.
2021-06-03Rename Transform to Transform3D in coreAaron Franke
2021-05-25Rename File::get_len() get_length()Marcel Admiraal
2021-05-22Update with experimental mesh optimizer.K. S. Ernest (iFire) Lee
Normals being optimized has better quality now. Test simplify once and then use a slightly less tolerant error for the target error.
2021-05-20Fix typos with codespellRémi Verschelde
Using codespell 2.0.0. Method: ``` $ cat > ../godot-word-whitelist.txt << EOF ang curvelinear dof doubleclick fave findn GIRD leapyear lod merchantibility nd numer ois ony que seeked synching te uint unselect webp EOF $ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po" $ git diff // undo unwanted changes ```
2021-05-17Make all file access 64-bit (uint64_t)Pedro J. Estébanez
This changes the types of a big number of variables. General rules: - Using `uint64_t` in general. We also considered `int64_t` but eventually settled on keeping it unsigned, which is also closer to what one would expect with `size_t`/`off_t`. - We only keep `int64_t` for `seek_end` (takes a negative offset from the end) and for the `Variant` bindings, since `Variant::INT` is `int64_t`. This means we only need to guard against passing negative values in `core_bind.cpp`. - Using `uint32_t` integers for concepts not needing such a huge range, like pages, blocks, etc. In addition: - Improve usage of integer types in some related places; namely, `DirAccess`, core binds. Note: - On Windows, `_ftelli64` reports invalid values when using 32-bit MinGW with version < 8.0. This was an upstream bug fixed in 8.0. It breaks support for big files on 32-bit Windows builds made with that toolchain. We might add a workaround. Fixes #44363. Fixes godotengine/godot-proposals#400. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-05-08Fix to parsing some Collada with extra vertex semantics referenced only in ↵Saracen
the vertices section.
2021-05-03Assorted fixes to UV unwrapping and GPU lightmapperjfons
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-04-19Use multiple threads to import.Juan Linietsky
- For now everything imports multithreaded by default (should work I guess, let's test). - Controllable per importer Early test benchmark. 64 large textures (importing as lossless, _not_ as vram) on a mobile i7, 12 threads: Importing goes down from 46 to 7 seconds. For VRAM I will change the logic to use a compressing thread in a subsequent PR, as well as implementing Betsy.
2021-04-14Rename get_surface_material to get_surface_override_materialclayjohn