summaryrefslogtreecommitdiffstats
path: root/servers/rendering_server.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* | Overhaul the SurfaceUpgradeToolclayjohn2023-11-011-4/+4
|/ | | | | | | | This defers the update to a fresh restart of the editor (to ensure we aren't mid way through loading scenes anymore. It also ensures that the popup can't be used by multiple threads at once Co-authored-by: Yuri Sizov <yuris@humnom.net>
* Fix multiple issues with UV compressionclayjohn2023-10-301-10/+31
|
* Merge pull request #83840 from clayjohn/mesh-flat-bugRémi Verschelde2023-10-261-11/+8
|\ | | | | | | Ensure `r_aabb` is always used when creating surfaces through the RenderingServer
| * Ensure r_aabb is always used when creating surfaces through the RenderingServerclayjohn2023-10-231-11/+8
| |
* | Some more fixes for compressed meshesclayjohn2023-10-241-16/+16
| | | | | | | | | | | | | | This cleans up a few more cases of uint32_t->uint64_t Importantly this fixes an edge case in the axis-angle compression by using the pre-existing Basis methods instead
* | Merge pull request #83613 from clayjohn/surface_upgrade_toolRémi Verschelde2023-10-241-2/+26
|\ \ | |/ |/| Add an editor tool to automatically upgrade and re-save meshes
| * Implementation of tool to automatically upgrade and re-save meshesclayjohn2023-10-231-2/+26
| |
* | Add property hint for 2D shadow size project settingHugo Locurcio2023-10-221-1/+1
|/ | | | | | | | Previously, it was possible to use zero or negative values, which are invalid. This also prevents crashing the engine by setting a shadow size of 0 or lower from a script.
* Fix disabling depth prepass breaks opaque materialLunarisnia2023-10-151-2/+2
|
* Merge pull request #83179 from clayjohn/tangents-sanitizeRémi Verschelde2023-10-131-0/+12
|\ | | | | | | Sanitize tangents when creating mesh surfaces to avoid triggering the compressed mesh path in the shader
| * Sanitize tangents when creating mesh surfaces to avoid triggering the ↵clayjohn2023-10-131-0/+12
| | | | | | | | compressed mesh path in the shader
* | Cleanup instances of using uint32_t for mesh formatsClay2023-10-121-7/+7
|/ | | | And tidy up some leftovers from the attribute compression PR
* Merge pull request #79527 from QbieShay/qbe/particles-reworkRémi Verschelde2023-10-101-0/+3
|\ | | | | | | Particle internal refactor and additions for more artistic control
| * Particle internal refactor and additions for more artistic controlQbieShay2023-10-101-0/+3
| | | | | | | | | | | | | | | | Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro> Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com> Co-authored-by: Raul Santos <raulsntos@gmail.com> Co-authored-by: Mew Pur Pur <85438892+MewPurPur@users.noreply.github.com> Co-authored-by: Clay John <claynjohn@gmail.com>
* | Fix incorrect check in `_dict_to_surf`A Thousand Ships2023-10-091-4/+4
|/
* Vertex and attribute compression to reduce the size of the vertex format.clayjohn2023-10-051-115/+542
| | | | | | | | | | | | | This allows Godot to automatically compress meshes to save a lot of bandwidth. In general, this requires no interaction from the user and should result in no noticable quality loss. This scheme is not backwards compatible, so we have provided an upgrade mechanism, and a mesh versioning mechanism. Existing meshes can still be used as a result, but users can get a performance boost by reimporting assets.
* Disable `lightmapper_rd` module in non-editor builds (and in Android editor)Hugo Locurcio2023-09-291-0/+1
| | | | | | | | | | | | | | | This is consistent with `xatlas_unwrap`, which isn't enabled in non-editor builds and the Android editor either. There is currently no way to use the lightmapper in a non-editor build anyway, as it doesn't expose any methods (and even if there was, there would be no way to perform UV2 unwrapping in the exported project). This reduces binary size of a stripped Linux x86_64 export template build by ~164 KB. This also moves the PrimitiveMesh texel size project setting so that it's defined when the module is disabled, and adds a property hint to it.
* Add FidelityFX Super Resolution 2.2 (FSR 2.2.1) support.Dario2023-09-251-1/+3
| | | | Introduces support for FSR2 as a new upscaler option available from the project settings. Also introduces an specific render list for surfaces that require motion and the ability to derive motion vectors from depth buffer and camera motion.
* Add option to enable HDR rendering in 2Dclayjohn2023-08-071-0/+1
| | | | | | | This is needed to allow 2D to fully make use of 3D effects (e.g. glow), and can be used to substantially improve quality of 2D rendering at the cost of performance Additionally, the 2D rendering pipeline is done in linear space (we skip linear_to_srgb conversion in 3D tonemapping) so the entire Viewport can be kept linear. This is necessary for proper HDR screen support in the future.
* Merge pull request #79696 from reduz/call-on-render-threadYuri Sizov2023-07-311-0/+2
|\ | | | | | | Add ability to call code on rendering thread
| * Add ability to call code on rendering threadJuan Linietsky2023-07-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As more users use compute in Godot 4, the way they do is most likely incompatible when running on separate threads and will start erroring soon as we improve the thread safety of the render thread. To properly run code on the render thread, this function was added. Use like this: ```GDScript func initialize_compute_code(): .... func update_compute_code(custom_data): ... func _ready(): RenderingServer.call_on_render_thread( initialize_compute_code ) func _process(): RenderingServer.call_on_render_thread( update_compute_code.bind(with_data) ) ```
* | Add custom texture create functionBastiaan Olij2023-07-261-0/+3
|/
* Fix wrong type casting for octahedral tangentsnklbdev2023-07-011-9/+9
|
* Binding LIGHT_PARAM_INTENSITY in RenderingServerAlex Drozd2023-06-221-0/+1
|
* Set both texture format overrides to false by defaultAaron Franke2023-06-121-1/+4
|
* Enable S3TC_BPTC but not ETC2_ASTC by defaultAaron Franke2023-06-091-2/+2
|
* Merge pull request #74711 from BastiaanOlij/add_texture_native_handleRémi Verschelde2023-05-091-0/+1
|\ | | | | | | Provide access to internal graphics handles for textures
| * For GDExternal use, provides access to internal graphics handles for texturesBastiaan Olij2023-05-091-0/+1
| |
* | Merge pull request #73588 from ↵Rémi Verschelde2023-05-091-0/+10
|\ \ | |/ |/| | | | | | | smosages/resolve-display-shader-settings-in-settings-editor Define shader language project settings before creation of `TextShaderEditor` object.
| * Move ShaderWarning definitions into rendering_serversmosages2023-02-251-0/+10
| |
* | Merge pull request #76418 from reduz/method-bind-validated-callRémi Verschelde2023-05-081-1/+11
|\ \ | | | | | | | | | Add ValidatedCall to MethodBind
| * | Add ValidatedCall to MethodBindJuan Linietsky2023-04-301-1/+11
| | | | | | | | | | | | | | | | | | | | | * This should optimize GDScript function calling _enormously_. * It also should simplify the GDScript VM considerably. NOTE: GDExtension calling performance has most likely been affected until going via ptrcall is fixed.
* | | Merge pull request #75517 from BastiaanOlij/expose_render_targetMax Hilbrunner2023-05-051-0/+1
|\ \ \
| * | | Expose viewports render targer RIDBastiaan Olij2023-03-311-0/+1
| | | |
* | | | Merge pull request #74883 from dalexeev/fix-thin-multiline-colorsMax Hilbrunner2023-05-051-0/+1
|\ \ \ \ | |_|/ / |/| | |
| * | | Fix `draw_multiline_colors()` for `width < 0`Danil Alexeev2023-03-141-0/+1
| |/ /
* | | Fix `setrngth` typo in `particles_collision_set_attractor_strength()`Hugo Locurcio2023-04-131-1/+1
| | |
* | | Fix `get_test_texture()` returning an almost fully white textureHugo Locurcio2023-04-041-3/+3
|/ / | | | | | | | | The texture's appearance is now similar to the texture that was displayed on the TestCube node in Godot 2.x.
* / Merge duplicate rd_texture functionsBastiaan Olij2023-03-101-1/+1
|/
* Exclude platform dependent `rendering/textures/vram_compression/import_*` ↵bruvzg2023-02-161-2/+2
| | | | default values from documentation.
* Android: Default Min SDK to 24 for Vulkan mobileRémi Verschelde2023-02-151-2/+2
| | | | | | | | | Users can still go down to 21 when using GL Compatibility. This makes the default behavior match the default renderer, and thus avoids a warning in the out of the box experience. Also mark texture compression settings as basic, since out of the box users who want to export to Android will need to enable ETC2/ASTC manually.
* Move some worker_thread_pool.h includes out of header filesmyaaaaaaaaa2023-02-131-0/+1
|
* Expose RenderingServer.canvas_light_blend_modeclayjohn2023-02-021-0/+1
| | | | This appears to have been missed in the refactor
* Merge pull request #72075 from Maran23/extents-to-sizeRémi Verschelde2023-02-011-3/+3
|\ | | | | | | Replace Extents with Size in VoxelGI, ReflectionProbe, FogVolume, Decal and GPUParticles*3D
| * Replace Extents with Size in VoxelGI, ReflectionProbe, FogVolume, Decal and ↵Marius Hanl2023-01-311-3/+3
| | | | | | | | | | | | | | | | | | | | | | GPUParticles*3D - Extents are replaced by Size (Size is Extents * 2) - The UI text displays 'Size' - Snapping is adjusted to work with Size - _set and _get handle extents for compatibility Co-authored-by: ator-dev <dominic.codedeveloper@gmail.com>
* | Merge pull request #72343 from clayjohn/editor-canvas-bgRémi Verschelde2023-01-311-1/+6
|\ \ | | | | | | | | | Remove viewport_set_disable_environment in favor of viewport_set_environment_mode
| * | Remove viewport_set_disable_environment in favor of ↵clayjohn2023-01-301-1/+6
| | | | | | | | | | | | | | | | | | viewport_set_environment_mode This allows us to set a default value inherited by child viewports and have child viewports set the value themselves which is needed for disabling the environment in the editor
* | | Refactor high quality texture importJuan Linietsky2023-01-301-4/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Only two texture import modes for low/high quality now: * S3TC/BPTC * ETC2/ASTC * Makes sense given this is the general preferred and most compatible combination in most platforms. * Removed lossy_quality from VRAM texture compression options. It was unused everywhere. * Added a new "high_quality" option to texture import. When enabled, it uses BPTC/ASTC (BC7/ASTC4x4) instead of S3TC/ETC2 (DXT1-5/ETC2,ETCA). * Changed MacOS export settings so required texture formats depend on the architecture selected. This solves the following problems: * Makes it simpler to import textures as high quality, without having to worry about the specific format used. * As the editor can now run on platforms such as web, Mac OS with Apple Silicion and Android, it should no longer be assumed that S3TC/BPTC is available by default for it.
* / Remove cap on number of items drawn in frame in 2D gl_compatibility renderclayjohn2023-01-281-1/+1
|/ | | | | | Also clean up some names to make the overall organization more clear Also remove cap on items per batch
* Use range iterators in LocalVector loopskobewi2023-01-211-3/+1
|