|
Blender V5.0
|
#include <draw_view.hh>
Classes | |
| struct | OffsetData |
Public Member Functions | |
| View (const char *name, int view_len=1, bool procedural=false) | |
| virtual | ~View ()=default |
| void | sync (const float4x4 &view_mat, const float4x4 &win_mat, int view_id=0) |
| void | visibility_test (bool enable) |
| void | compute_procedural_bounds () |
| bool | is_persp (int view_id=0) const |
| bool | is_inverted (int view_id=0) const |
| float | far_clip (int view_id=0) const |
| float | near_clip (int view_id=0) const |
| const float3 & | location (int view_id=0) const |
| const float3 & | forward (int view_id=0) const |
| const float4x4 & | viewmat (int view_id=0) const |
| const float4x4 & | viewinv (int view_id=0) const |
| const float4x4 & | winmat (int view_id=0) const |
| const float4x4 & | wininv (int view_id=0) const |
| const float4x4 | persmat (int view_id=0) const |
| int | visibility_word_per_draw () const |
| UniformArrayBuffer< ViewMatrices, DRW_VIEW_MAX > & | matrices_ubo_get () |
| std::array< float4, 6 > | frustum_planes_get (int view_id=0) |
| std::array< float3, 8 > | frustum_corners_get (int view_id=0) |
Static Public Member Functions | |
| static View & | default_get () |
| static void | default_set (const float4x4 &view_mat, const float4x4 &win_mat) |
Protected Member Functions | |
| void | bind () |
| virtual void | compute_visibility (ObjectBoundsBuf &bounds, ObjectInfosBuf &infos, uint resource_len, bool debug_freeze) |
| virtual VisibilityBuf & | get_visibility_buffer () |
| bool | has_computed_visibility () const |
| uint64_t | fingerprint_get () const |
| void | update_viewport_size () |
| void | frustum_boundbox_calc (int view_id) |
| void | frustum_culling_planes_calc (int view_id) |
| void | frustum_culling_sphere_calc (int view_id) |
Protected Attributes | |
| UniformArrayBuffer< ViewMatrices, DRW_VIEW_MAX > | data_ |
| UniformArrayBuffer< ViewCullingData, DRW_VIEW_MAX > | culling_ |
| UniformArrayBuffer< ViewMatrices, DRW_VIEW_MAX > | data_freeze_ |
| UniformArrayBuffer< ViewCullingData, DRW_VIEW_MAX > | culling_freeze_ |
| VisibilityBuf | visibility_buf_ |
| uint64_t | manager_fingerprint_ = 0 |
| const char * | debug_name_ |
| int | view_len_ = 0 |
| bool | is_inverted_ = false |
| bool | do_visibility_ = true |
| bool | dirty_ = true |
| bool | frozen_ = false |
| bool | procedural_ = false |
Definition at line 37 of file draw_view.hh.
|
inline |
Definition at line 70 of file draw_view.hh.
|
virtualdefault |
|
protected |
Called from draw manager.
Definition at line 226 of file draw_view.cc.
Update culling data using a compute shader. This is to be used if the matrices were updated externally on the GPU (not using the sync() method).
Definition at line 238 of file draw_view.cc.
|
protectedvirtual |
Definition at line 257 of file draw_view.cc.
|
static |
Definition at line 317 of file draw_view.cc.
|
static |
Definition at line 322 of file draw_view.cc.
|
inline |
Definition at line 106 of file draw_view.hh.
|
inlineprotected |
Definition at line 249 of file draw_view.hh.
|
inline |
Definition at line 130 of file draw_view.hh.
|
protected |
Definition at line 46 of file draw_view.cc.
| std::array< float3, 8 > blender::draw::View::frustum_corners_get | ( | int | view_id = 0 | ) |
Definition at line 337 of file draw_view.cc.
|
protected |
Definition at line 92 of file draw_view.cc.
|
protected |
Definition at line 111 of file draw_view.cc.
| std::array< float4, 6 > blender::draw::View::frustum_planes_get | ( | int | view_id = 0 | ) |
Definition at line 327 of file draw_view.cc.
|
protectedvirtual |
Definition at line 312 of file draw_view.cc.
|
inlineprotected |
Definition at line 239 of file draw_view.hh.
|
inline |
Definition at line 99 of file draw_view.hh.
|
inline |
Definition at line 93 of file draw_view.hh.
|
inline |
Definition at line 124 of file draw_view.hh.
|
inline |
Definition at line 172 of file draw_view.hh.
|
inline |
Definition at line 115 of file draw_view.hh.
|
inline |
Definition at line 161 of file draw_view.hh.
| void blender::draw::View::sync | ( | const float4x4 & | view_mat, |
| const float4x4 & | win_mat, | ||
| int | view_id = 0 ) |
Definition at line 27 of file draw_view.cc.
|
protected |
|
inline |
Definition at line 142 of file draw_view.hh.
|
inline |
Definition at line 136 of file draw_view.hh.
|
inline |
Enable or disable every visibility test (frustum culling, HiZ culling).
Definition at line 81 of file draw_view.hh.
|
inline |
Definition at line 167 of file draw_view.hh.
|
inline |
Definition at line 154 of file draw_view.hh.
|
inline |
Definition at line 148 of file draw_view.hh.
Definition at line 50 of file draw_view.hh.
Definition at line 53 of file draw_view.hh.
TODO(fclem): Maybe try to reduce the minimum cost if the number of view is lower.
Definition at line 49 of file draw_view.hh.
Frozen version of data_ used for debugging culling.
Definition at line 52 of file draw_view.hh.
|
protected |
Definition at line 59 of file draw_view.hh.
|
protected |
Definition at line 65 of file draw_view.hh.
|
protected |
Definition at line 64 of file draw_view.hh.
|
protected |
Definition at line 66 of file draw_view.hh.
|
protected |
Definition at line 63 of file draw_view.hh.
|
protected |
Definition at line 57 of file draw_view.hh.
|
protected |
Definition at line 67 of file draw_view.hh.
|
protected |
Definition at line 61 of file draw_view.hh.
Result of the visibility computation. 1 bit or 1 or 2 word per resource ID per view.
Definition at line 55 of file draw_view.hh.