godot/core/templates
jfons 3a53ae5d9f Implement visibility range and dependencies.
This commit adds the following properties to GeometryInstance3D: `visibility_range_begin`,
`visibility_range_begin_margin`, `visibility_range_end`, `visibility_range_end_margin`.

Together they define a range in which the GeometryInstance3D will be visible from the camera,
taking hysteresis into account for state changes. A begin or end value of 0 will be ignored,
so the visibility range can be open-ended in both directions.

This commit also adds the `visibility_parent` property to 'Node3D'.
Which defines the visibility parents of the node and its subtree (until
another parent is defined).

Visual instances with a visibility parent will only be visible when the parent, and all of its
ancestors recursively, are hidden because they are closer to the camera than their respective
`visibility_range_begin` thresholds.

Combining visibility ranges and visibility parents users can set-up a quick HLOD system
that shows high detail meshes when close (i.e buildings, trees) and merged low detail meshes
for far away groups (i.e. cities, woods).
2021-06-14 12:17:11 +02:00
..
SCsub Reorganized core/ directory, it was too fatty already 2020-11-07 20:17:12 -03:00
bin_sorted_array.h Implement visibility range and dependencies. 2021-06-14 12:17:11 +02:00
command_queue_mt.cpp Refactor CommandQueueMT 2021-06-09 13:10:49 -03:00
command_queue_mt.h Refactor CommandQueueMT 2021-06-09 13:10:49 -03:00
cowdata.h Change CRASH_COND to ERR_FAIL in Cowdata::set 2021-02-24 21:36:08 +01:00
hash_map.h Style: Cleanup uses of double spaces between words 2021-06-07 11:03:08 +02:00
hashfuncs.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
list.h Rename Array.invert() to Array.reverse() 2021-03-21 10:20:08 +00:00
local_vector.h Core: Drop custom `copymem`/`zeromem` defines 2021-04-27 16:26:27 +02:00
lru.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
map.h Separate set.h from map.h 2021-04-14 11:43:45 +02:00
oa_hash_map.h Style: Cleanup uses of double spaces between words 2021-06-07 11:03:08 +02:00
ordered_hash_map.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
paged_allocator.h Replace QuickHull with Bullet's convex hull computer. 2021-05-22 22:35:42 +02:00
paged_array.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
pair.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
pass_func.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
pooled_list.h Dynamic BVH broadphase in 2D & 3D Godot Physics 2021-05-10 16:28:55 -07:00
rid.h Rewrite render code to be more cache and thread friendly. 2021-01-05 08:50:18 -03:00
rid_owner.cpp Modernize atomics 2021-02-18 17:12:46 +01:00
rid_owner.h Modernize atomics 2021-02-18 17:12:46 +01:00
ring_buffer.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
safe_refcount.h Add type_traits include for `std::is_trivially_destructible` 2021-04-22 16:23:55 +02:00
self_list.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
set.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
simple_type.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
sort_array.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
thread_work_pool.cpp Modernize Thread 2021-01-29 12:02:13 +01:00
thread_work_pool.h Use multiple threads to import. 2021-04-19 14:12:22 -03:00
vector.h Merge pull request #46476 from DarknessCatt/master 2021-04-28 16:52:31 +02:00
vmap.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00
vset.h Update copyright statements to 2021 2021-01-01 20:19:21 +01:00