Blender V4.3
BVH2 Class Reference

#include <bvh2.h>

Inherits BVH.

Public Member Functions

void build (Progress &progress, Stats *stats)
 
void refit (Progress &progress)
 
- Public Member Functions inherited from BVH
virtual ~BVH ()
 
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

 BVH2 (const BVHParams &params, const vector< Geometry * > &geometry, const vector< Object * > &objects)
 
virtual BVHNodewiden_children_nodes (const 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 (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 (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 (int idx, bool leaf, BoundBox &bbox, uint &visibility)
 
void refit_primitives (int start, int end, BoundBox &bbox, uint &visibility)
 
void pack_primitives ()
 
void pack_triangle (int idx, float4 storage[3])
 
void pack_instances (size_t nodes_size, size_t leaf_nodes_size)
 
- Protected Member Functions inherited from BVH
 BVH (const BVHParams &params, const vector< Geometry * > &geometry, const vector< Object * > &objects)
 

Friends

class BVH
 

Additional Inherited Members

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

Detailed Description

Definition at line 36 of file bvh2.h.

Constructor & Destructor Documentation

◆ BVH2()

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

Definition at line 31 of file bvh2.cpp.

Member Function Documentation

◆ build()

◆ 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 ( 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 131 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()

◆ pack_nodes()

◆ pack_primitives()

◆ pack_triangle()

void BVH2::pack_triangle ( int idx,
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 ( 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()

◆ refit_nodes()

void BVH2::refit_nodes ( )
protected

Definition at line 306 of file bvh2.cpp.

References BoundBox::empty, pack, BVH::params, refit_node(), PackedBVH::root_index, and BVHParams::top_level.

Referenced by refit().

◆ refit_primitives()

◆ widen_children_nodes()

BVHNode * BVH2::widen_children_nodes ( const BVHNode * root)
protectedvirtual

Definition at line 103 of file bvh2.cpp.

Referenced by build().

Friends And Related Symbol Documentation

◆ BVH

friend class BVH
friend

Definition at line 45 of file bvh2.h.

Member Data Documentation

◆ pack


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