“Importance Sampling of Many Lights” - paper: participating media back

Board: Home Board index Raytracing General Development

(L) [2020/09/29] [ost by b_old] [“Importance Sampling of Many Lights” - paper: participating media] Wayback!

I'm reading and implementing a paper about Importance Sampling of Many Lights with Adaptive Tree Splitting.

http://aconty.com/pdf/many-lights-hpg2018.pdf

In section 5.2 on cluster importance for participating media, there is a part that I don't understand: How do they compute the vectors o1, o2? I don't understand the paragraph explaining how to obtain this basis from v1, v2. Can anyone explain it?
(L) [2020/09/30] [ost by graphicsMan] [“Importance Sampling of Many Lights” - paper: participating media] Wayback!

Okay, I haven't read through the paper, but my understanding from the surrounding context is that you are already given \(v_0\) and \(v_1\).  You use those to compute an orthonormal basis.   \(o_0\) and \(o_1\) will be orthogonal unit vectors in the same plane as \(v_0\) and \(v_1\).  \(o_0 = v_0/||v_0||\) and \(o_1\) will be an orthogonal unit vector.  Essentially, you can use the normalized cross product of \(v_0\) and \(v_1\) to have an ortho vector to both of \(v_0, v_1\), call it \(v_2\).  Finally you could take another cross product of \(o_0\) and \(v_2\) to get \(o_1\).

You could also use Gram-Schmidt orthonormalization.

Again, didn't read the paper, so I may be off somewhere, but judging based on that section, I think \(o_0, o_1\) is just a pair of basis vectors in the same plane as \(v_0, v_1\).
(L) [2020/10/01] [ost by b_old] [“Importance Sampling of Many Lights” - paper: participating media] Wayback!

Thanks for your explanation, I think I understand the section better now!

I had also started a conversation on [computer graphics stack exchange, which might be helpful:
https://computergraphics.stackexchange.com/questions/10269/importance-sampling-of-many-lights-with-adaptive-tree-splitting-paper-parti/10276?noredirect=1#comment16095_10276

back