forked from bartvdbraak/blender
Cycles: Implement proper visibility check in QBVH volume all intersection
This commit is contained in:
parent
29c733e6f2
commit
99451698d3
@ -240,6 +240,14 @@ ccl_device uint BVH_FUNCTION_FULL_NAME(QBVH)(KernelGlobals *kg,
|
|||||||
/* If node is leaf, fetch triangle list. */
|
/* If node is leaf, fetch triangle list. */
|
||||||
if(node_addr < 0) {
|
if(node_addr < 0) {
|
||||||
float4 leaf = kernel_tex_fetch(__bvh_leaf_nodes, (-node_addr-1));
|
float4 leaf = kernel_tex_fetch(__bvh_leaf_nodes, (-node_addr-1));
|
||||||
|
|
||||||
|
if((__float_as_uint(leaf.z) & visibility) == 0) {
|
||||||
|
/* Pop. */
|
||||||
|
node_addr = traversal_stack[stack_ptr].addr;
|
||||||
|
--stack_ptr;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
int prim_addr = __float_as_int(leaf.x);
|
int prim_addr = __float_as_int(leaf.x);
|
||||||
|
|
||||||
#if BVH_FEATURE(BVH_INSTANCING)
|
#if BVH_FEATURE(BVH_INSTANCING)
|
||||||
|
Loading…
Reference in New Issue
Block a user