summaryrefslogtreecommitdiff
path: root/scene/resources
AgeCommit message (Collapse)Author
2021-07-24Merge pull request #50786 from reduz/implement-resource-uidsRémi Verschelde
Implement Resource UIDs
2021-07-24Implement Resource UIDsreduz
* Most resource types now have unique identifiers. * Applies to text, binary and imported resources. * File formats reference both by text and UID (when available). UID always has priority. * Resource UIDs are 64 bits for better compatibility with the engine. * Can be represented and used textually, example `uuid://dapwmgsmnl28u`. * A special binary cache file is used and exported, containing the mappings. Example of how it looks: ```GDScript [gd_scene load_steps=2 format=3 uid="uid://dw86wq31afig2"] [ext_resource type="PackedScene" uid="uid://bt36ojelx8q6c" path="res://subscene.scn" id="1_t56hs"] ``` GDScript, shaders and other special resource files can't currently provide UIDs, but this should be doable with special keywords on the files. This will be reserved for future PRs.
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-22Implement textual ext/subresource IDs.reduz
* Friendlier with version control. * Generates pseudo unique IDs, to minimize conflicts when merging, but still user readable (so, not UUID). * Eventually will also allow to have more precisely named sub-resources in imported files. * This will allow better reloading on changes (including resources already loaded) as well as better keeping track of changes on the DCC. * Keeps backward compatibility with the old formats. * Binary and text format version incremented to mark breakage in forward compatibility.
2021-07-21Merge pull request #50695 from reduz/fix-sky-initializationRémi Verschelde
2021-07-21Merge pull request #50370 from QbieShay/circle-emitter-particleRémi Verschelde
Ring emitter for 4.0
2021-07-21Merge pull request #50643 from groud/improve_tilemap_compatibilityRémi Verschelde
2021-07-21Make Sky initialize shaders only oncereduz
* Create the shader on demand. * Makes sure compilation happens only once, then shader is cached. * Speeds up scene loading times. * Speeds up editor initialization.
2021-07-21Implement atlas merging and tile proxiesGilles Roudière
2021-07-21Import old tiles in SINGLE_TILE mode as atlasesGilles Roudière
2021-07-21Fix function code generation for uniform triplanar node in visual shaderYuri Roubinsky
2021-07-20Merge pull request #50605 from Calinou/tweak-shader-code-styleRémi Verschelde
Use C++11 raw literals for shader code to improve readability
2021-07-19Use C++11 raw literals for shader code to improve readabilityHugo Locurcio
In files that have lots of branching, `\t` was replaced with a tab character instead.
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-17Prevent function gen in visual shader if no out connection is providedYuri Roubinsky
2021-07-14Merge pull request #49348 from Geometror/fix-particles-hidden-basecolorRémi Verschelde
Fix color properties of particle nodes/material
2021-07-14Rename Curve3Texture to CurveXYZTextureRémi Verschelde
Neither name is a perfect match but `Curve3Texture` looked too similar to `CurveTexture` and `Curve3D`, which made things confusing when picking a texture type or browsing the API reference.
2021-07-13Add header theme type variations to labelskobewi
2021-07-13Merge pull request #50169 from pycbouh/theme-type-variationsRémi Verschelde
2021-07-13Add type variations to ThemeYuri Sizov
2021-07-12Merge pull request #50262 from nekomatata/convex-hull-simplificationRémi Verschelde
Options to clean/simplify convex hull generated from mesh
2021-07-12Auto-set a first compatible uniform on dragging to create a UniformRefYuri Roubinsky
2021-07-11This commits adds a new emitter type for particles materialQbieShay
and 3D CPU particles. The new emitter is called "ring" and it can emit either in a ring or cylinder fashion. This adds the following properties for the emitter: 1. emission_ring_axis: the axis along which the ring/cylinder will be constructed 2. emission_ring_radius: outer radius of the ring/cylinder 3. emission_ring_inner_radius: inner radius of the cylinder. when set to zero, particles will emit in the full volume. 4. emission_ring_height: height of the ring/cylinder emitter.
2021-07-11added offset for plane mesh and quad meshQbieShay
2021-07-11Merge pull request #50149 from Chaosus/vs_curve3dYuri Roubinsky
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-07-07Tweak the GradientTexture property hint to follow CurveTextureHugo Locurcio
This prevents setting too large values and crashing the editor. Very low values are also no longer allowed since they are generally not detailed enough to represent complex gradients, leading to confusion.
2021-07-07Merge pull request #50193 from reduz/fix-command-queue-crashRémi Verschelde
Fix Command Queue Crash
2021-07-07Fix Command Queue Crashreduz
* No longer allow sending an object (texture) to the server as material parameter * Keep a parameter cache locally in ShaderMaterial
2021-07-06Merge pull request #50162 from Calinou/inspector-hint-allow-ormmaterial3dRémi Verschelde
Allow using ORMMaterial3D by using BaseMaterial3D as a resource hint
2021-07-06Fix: The ORMMaterial3D shader doesn't compile #50161Martin Krbila
2021-07-06Fix TileSet::CellNeighbor enum bindingGeorge Marques
Having the TileSet:: prefix has some unintended consequences in the bindings, in particular in the extension API dump.
2021-07-05Fix Subsurface Scatteringreduz
* Works again * Transmittance also works again * Removed the curve patamter, exp() function is good enough.
2021-07-04Allow using ORMMaterial3D by using BaseMaterial3D as a resource hintHugo Locurcio
Previously, only StandardMaterial3D could be defined as an alternative to ShaderMaterial. This also reorders the CanvasItemMaterial property hints to follow alphabetical order (which is enforced by the inspector).
2021-07-04Added Curve3Texture to Visual ShadersYuri Roubinsky
2021-07-04Fix color properties of particle nodes/materialHendrik Brucker
2021-07-03Merge pull request #50054 from reduz/curve-texture-3dRémi Verschelde
Implement Curve3Texture
2021-07-03Implement Curve3Texturereduz
* This was required by users in some scenarios, such as animating individual axes over time with a single texture. * Examples: Shaders, Particles, etc. * CurveTexture now defaults to RGB, can be changed to Red if needed, this allows to freely exchange them.
2021-07-02Add compatibility with old mesh formatsreduz
* Can load 2.x meshes * Can load 3.x meshes
2021-07-01Use PROPERTY_USAGE_NONE instead of 0 for no property usageAaron Franke
Also use const more often.
2021-07-01Merge pull request #50040 from reduz/fix-renderingserver-bindingsRémi Verschelde
Clean up RenderingServer and its bindings
2021-07-01Clean up RenderingServer and its bindingsreduz
* Rewrote bindings for RenderingServer. * They are now all up to date. * Several unused methods and deprecated features were cleaned up.
2021-06-30Import mesh colors in 8BPP.reduz
* Colors were imported as 16BPP (half float) * Far most common use cases only require 8BPP * If you need higher data precision, use a custom array, which are supported now. **WARNING**: 3D Scenes imported in 4.0 no longer compatible with this new format. You need to re-import them (erase them from .godot/import)
2021-06-30Merge pull request #50014 from reduz/remove-immediateRémi Verschelde
Deprecate ImmediateGeometry
2021-06-30Deprecate ImmediateGeometryreduz
* Removed entirely from RenderingServer. * Replaced by ImmediateMesh resource. * ImmediateMesh replaces ImmediateGeometry, but could use more optimization in the future. * Sprite3D and AnimatedSprite3D work again, ported from Godot 3.x (though a lot of work was needed to adapt them to Godot 4). * RootMotionView works again. * Polygon3D editor works again.
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-29Merge pull request #49713 from nekomatata/fix-export-var-override-runtimeRémi Verschelde
Fix export var override in PackedScene at runtime
2021-06-29Implement painting properties over TileSetsGilles Roudière
2021-06-28Merge pull request #49951 from ↵Rémi Verschelde
Calinou/standardmaterial3d-height-triplanar-print-warning Print warning in StandardMaterial3D when height and triplanar are active
2021-06-28Print warning in StandardMaterial3D when height and triplanar are activeHugo Locurcio
Using both height mapping and triplanar mapping isn't supported.