summaryrefslogtreecommitdiffstats
path: root/servers/rendering/renderer_scene_occlusion_cull.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge commit godotengine/godot@8004c7524fb9f43425c4d6f614410a76678e0f7cSpartan3222024-10-301-3/+3
|\
| * Merge pull request #97934 from adamscott/give-AThousandShips-a-breakThaddeus Crews2024-10-291-2/+2
| |\ | | | | | | | | | [Codestyle] Set clang-format `RemoveSemicolon` rule to `true`
| | * Set clang-format `RemoveSemicolon` rule to `true`Adam Scott2024-10-251-2/+2
| | | | | | | | | | | | - Set clang-format `Standard` rule to `c++20`
| * | Fix Occlusion Culling not working for an orthogonal camera.Rudolph Bester2024-10-261-1/+1
| |/
* | Merge pull request #818 from Spartan322/fixup/copyright-headersGeorge L. Albany2024-10-271-2/+2
|\ \ | | | | | | Fix copyright headers referring to Godot
| * | Fix copyright headers referring to GodotSpartan3222024-10-271-2/+2
| | |
* | | Merge commit godotengine/godot@61accf060515416da07d913580419fd8c8490f7bSpartan3222024-10-261-1/+5
|\ \ \ | |/ / |/| / | |/
| * Alternative fix to occlusion culling where all math is based on Euclidean ↵Rudolph Bester2024-10-171-1/+5
| | | | | | | | distance.
* | Rebrand preambles to RedotDubhghlas McLaughlin2024-10-111-0/+2
|/ | | | | | | | | | | | | | | | | | | | | | Credits: Co-authored-by: Skogi <skogi.b@gmail.com> Co-authored-by: Spartan322 <Megacake1234@gmail.com> Co-authored-by: swashberry <swashdev@pm.me> Co-authored-by: Christoffer Sundbom <christoffer_karlsson@live.se> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: McDubh <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: radenthefolf <radenthefolf@gmail.com> Co-authored-by: John Knight <80524176+Tekisasu-JohnK@users.noreply.github.com> Co-authored-by: Adam Vondersaar <adam.vondersaar@uphold.com> Co-authored-by: decryptedchaos <nixgod@gmail.com> Co-authored-by: zaftnotameni <122100803+zaftnotameni@users.noreply.github.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: wesam <108880473+wesamdev@users.noreply.github.com> Co-authored-by: Mister Puma <MisterPuma80@gmail.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: SingleError <isaaconeoneone@gmail.com> Co-authored-by: Bioblaze Payne <BioblazePayne@gmail.com>
* Style: Apply new `clang-format` changesThaddeus Crews2024-09-201-1/+1
|
* [Core] Add scalar versions of `Vector*` `min/max/clamp/snap(ped)`A Thousand Ships2024-05-021-2/+2
| | | | Convenience for a number of cases operating on single values
* Jitter raster occlusion camera to reduce false positives.lawnjelly2024-04-031-7/+43
| | | | Due to the low resolution of the occlusion buffer, small gaps between occluders can be closed and incorrectly occlude instances which should show through the gaps. To ameliorate this problem, this PR jitters the occlusion buffer over time, making it more likely an instance will be seen through a gap. This is used in conjunction with an occlusion timer per instance, to prevent instances flickering on and off rapidly.
* Use `Vector*` component-wise `min/max/clamp` functions where applicableA Thousand Ships2024-03-201-1/+1
|
* One Copyright Update to rule them allRémi Verschelde2023-01-051-29/+29
| | | | | | | | | | | | | | | | | | | | As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
* Remove ThreadWorkPool, replace by WorkerThreadPoolJuan Linietsky2022-07-251-1/+2
| | | | | The former needs to be allocated once per usage. The later is shared for all threads, which is more efficient. It can also be better debugged.
* Code quality: Fix header guards consistencyRémi Verschelde2022-07-251-1/+1
| | | | | Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
* Implement Vector4, Vector4i, Projectionreduz2022-07-231-3/+3
| | | | | | | | | | | | | Implement built-in classes Vector4, Vector4i and Projection. * Two versions of Vector4 (float and integer). * A Projection class, which is a 4x4 matrix specialized in projection types. These types have been requested for a long time, but given they were very corner case they were not added before. Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity. **Q**: Why Projection and not Matrix4? **A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
* Fix typo in occlusion culling warning method nameHugo Locurcio2022-05-231-11/+11
|
* Update copyright statements to 2022Rémi Verschelde2022-01-031-2/+2
| | | | Happy new year to the wonderful Godot community!
* Occlusion culling fixesjfons2021-09-101-11/+13
|
* Some work on double supportAaron Franke2021-08-091-1/+1
|
* Rename Transform to Transform3D in coreAaron Franke2021-06-031-3/+3
|
* Implement occlusion cullingjfons2021-04-231-0/+201
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.