Lecture 9: Intro to Ray-Tracing & Accelerating Ray-Scene Intersection (87)
Sicheng-Pan
If the ray distribution is not uniform (e.g. a small range of directions are preferred), is there any modifications we can make to improve the algorithm?
ncastaneda02
@Sicheng-Pan This is definitely a big thing that I have heard about - its called Importance Sampling. There is a lot of really cool research about how to choose which rays to cast (see ReSTIR and Manifold Exploration Metropolis Light Transport to name a couple). You also do get this benefit from using hierarchical scene representation (think voxels), as there is just a greater density of things rays can interact with where the scene is crowded, and less things where it isnt.
alvin-xu-5745
Why is the number of triangles in a subtree used as an approximation for the cost of processing a node? Is it related to how it would likely be linearly proportional in order to process each of those triangles within the subtree? Additionally, are there any more complex approximations used for this cost instead (I imagine for a tradeoff of computation complexity vs accuracy of approximation)?
austinapatel
Is the surface area computation normalized? It seems like the value of SA(L) and SA(R) would be dependent on the units used, while in this formula it seems more reasonable to normalize it since otherwise the C_trav value would be dependent on surface area sizes.
Gabe-Mitnick
@austinapatel I agree, if we wanted to use this to compute a specific value for cell cost, we would need to add another constant representing I guess the ratio "cost per unit of surface area : cost to intersect tri". But if we're just using this formula to compare partition plane options, the constant doesn't really matter (nor does the constant C_trav).
kkkhanl
To confirm my understanding, this is supposed to replace slide 84 as a faster heuristic for finding which is the better place to split?
SeanW0823
I think the equation provided on this slide is supposed to replace slide 85 for finding the average cost of tracing a ray for an internal node. Slide 84 is for a leaf node.
akshitdewan
Can we learn general conclusions from this cost(cell) formula? Like deriving principles like "try to keep an even number of objects on both sides" or "try to keep the number of objects proportional to the surface area"?
pcg108
In response to the question about why the number of triangles in a subtree used as an approximation for the cost of processing a node, I believe it makes sense because in the worst case we are at a leaf node and thus need to check every primitive within the node. We don't know in advance if the left or right subtree of this subtree is intersected so this is a possible way to approximate the cost.
If the ray distribution is not uniform (e.g. a small range of directions are preferred), is there any modifications we can make to improve the algorithm?
@Sicheng-Pan This is definitely a big thing that I have heard about - its called Importance Sampling. There is a lot of really cool research about how to choose which rays to cast (see ReSTIR and Manifold Exploration Metropolis Light Transport to name a couple). You also do get this benefit from using hierarchical scene representation (think voxels), as there is just a greater density of things rays can interact with where the scene is crowded, and less things where it isnt.
Why is the number of triangles in a subtree used as an approximation for the cost of processing a node? Is it related to how it would likely be linearly proportional in order to process each of those triangles within the subtree? Additionally, are there any more complex approximations used for this cost instead (I imagine for a tradeoff of computation complexity vs accuracy of approximation)?
Is the surface area computation normalized? It seems like the value of SA(L) and SA(R) would be dependent on the units used, while in this formula it seems more reasonable to normalize it since otherwise the C_trav value would be dependent on surface area sizes.
@austinapatel I agree, if we wanted to use this to compute a specific value for cell cost, we would need to add another constant representing I guess the ratio "cost per unit of surface area : cost to intersect tri". But if we're just using this formula to compare partition plane options, the constant doesn't really matter (nor does the constant
C_trav
).To confirm my understanding, this is supposed to replace slide 84 as a faster heuristic for finding which is the better place to split?
I think the equation provided on this slide is supposed to replace slide 85 for finding the average cost of tracing a ray for an internal node. Slide 84 is for a leaf node.
Can we learn general conclusions from this cost(cell) formula? Like deriving principles like "try to keep an even number of objects on both sides" or "try to keep the number of objects proportional to the surface area"?
In response to the question about why the number of triangles in a subtree used as an approximation for the cost of processing a node, I believe it makes sense because in the worst case we are at a leaf node and thus need to check every primitive within the node. We don't know in advance if the left or right subtree of this subtree is intersected so this is a possible way to approximate the cost.