Blender V5.0
BVH2 Class Reference

#include <bvh2.h>

Inherits BVH.

Public Member Functions

 BVH2 (const BVHParams &params, const vector< Geometry * > &geometry, const vector< Object * > &objects)
void build (Progress &progress, Stats *stats)
void refit (Progress &progress)
Public Member Functions inherited from BVH
virtual ~BVH ()=default
virtual void replace_geometry (const vector< Geometry * > &geometry, const vector< Object * > &objects)

Public Attributes

PackedBVH pack
Public Attributes inherited from BVH
BVHParams params
vector< Geometry * > geometry
vector< Object * > objects

Protected Member Functions

virtual unique_ptr< BVHNodewiden_children_nodes (unique_ptr< BVHNode > &&root)
void pack_nodes (const BVHNode *root)
void pack_leaf (const BVHStackEntry &e, const LeafNode *leaf)
void pack_inner (const BVHStackEntry &e, const BVHStackEntry &e0, const BVHStackEntry &e1)
void pack_aligned_inner (const BVHStackEntry &e, const BVHStackEntry &e0, const BVHStackEntry &e1)
void pack_aligned_node (const int idx, const BoundBox &b0, const BoundBox &b1, int c0, int c1, uint visibility0, uint visibility1)
void pack_unaligned_inner (const BVHStackEntry &e, const BVHStackEntry &e0, const BVHStackEntry &e1)
void pack_unaligned_node (const int idx, const Transform &aligned_space0, const Transform &aligned_space1, const BoundBox &b0, const BoundBox &b1, int c0, int c1, uint visibility0, uint visibility1)
void refit_nodes ()
void refit_node (const int idx, bool leaf, BoundBox &bbox, uint &visibility)
void refit_primitives (const int start, const int end, BoundBox &bbox, uint &visibility)
void pack_primitives ()
void pack_triangle (const int idx, const float4 storage[3])
void pack_instances (const size_t nodes_size, const size_t leaf_nodes_size)
Protected Member Functions inherited from BVH
 BVH (const BVHParams &params, const vector< Geometry * > &geometry, const vector< Object * > &objects)

Additional Inherited Members

Static Public Member Functions inherited from BVH
static unique_ptr< BVHcreate (const BVHParams &params, const vector< Geometry * > &geometry, const vector< Object * > &objects, Device *device)

Detailed Description

Definition at line 38 of file bvh2.h.

Constructor & Destructor Documentation

◆ BVH2()

BVH2::BVH2 ( const BVHParams & params,
const vector< Geometry * > & geometry,
const vector< Object * > & objects )

Definition at line 32 of file bvh2.cpp.

References BVH::BVH().

Referenced by pack_instances().

Member Function Documentation

◆ build()

void BVH2::build ( Progress & progress,
Stats * stats )

◆ pack_aligned_inner()

void BVH2::pack_aligned_inner ( const BVHStackEntry & e,
const BVHStackEntry & e0,
const BVHStackEntry & e1 )
protected

◆ pack_aligned_node()

void BVH2::pack_aligned_node ( const int idx,
const BoundBox & b0,
const BoundBox & b1,
int c0,
int c1,
uint visibility0,
uint visibility1 )
protected

◆ pack_inner()

void BVH2::pack_inner ( const BVHStackEntry & e,
const BVHStackEntry & e0,
const BVHStackEntry & e1 )
protected

Definition at line 119 of file bvh2.cpp.

References e, BVHNode::is_unaligned, BVHStackEntry::node, pack_aligned_inner(), and pack_unaligned_inner().

Referenced by pack_nodes().

◆ pack_instances()

◆ pack_leaf()

void BVH2::pack_leaf ( const BVHStackEntry & e,
const LeafNode * leaf )
protected

◆ pack_nodes()

◆ pack_primitives()

void BVH2::pack_primitives ( )
protected

Definition at line 449 of file bvh2.cpp.

References i, BVH::objects, pack, and Object::visibility_for_tracing().

Referenced by build(), and refit().

◆ pack_triangle()

void BVH2::pack_triangle ( const int idx,
const float4 storage[3] )
protected

◆ pack_unaligned_inner()

void BVH2::pack_unaligned_inner ( const BVHStackEntry & e,
const BVHStackEntry & e0,
const BVHStackEntry & e1 )
protected

◆ pack_unaligned_node()

void BVH2::pack_unaligned_node ( const int idx,
const Transform & aligned_space0,
const Transform & aligned_space1,
const BoundBox & b0,
const BoundBox & b1,
int c0,
int c1,
uint visibility0,
uint visibility1 )
protected

◆ refit()

void BVH2::refit ( Progress & progress)

◆ refit_node()

void BVH2::refit_node ( const int idx,
bool leaf,
BoundBox & bbox,
uint & visibility )
protected

◆ refit_nodes()

void BVH2::refit_nodes ( )
protected

Definition at line 293 of file bvh2.cpp.

References assert, BoundBox::empty, pack, BVH::params, and refit_node().

Referenced by refit().

◆ refit_primitives()

◆ widen_children_nodes()

unique_ptr< BVHNode > BVH2::widen_children_nodes ( unique_ptr< BVHNode > && root)
protectedvirtual

Definition at line 91 of file bvh2.cpp.

Referenced by build().

Member Data Documentation

◆ pack


The documentation for this class was generated from the following files: