33 lines
1.2 KiB
Plaintext
33 lines
1.2 KiB
Plaintext
|
|
||
|
> Hi John,
|
||
|
>
|
||
|
> I know I'll forget to tell you this if I don't write it right now....
|
||
|
>
|
||
|
> >(2) How is the receiving geometry for the shadow decided?
|
||
|
>
|
||
|
> I wrote about an LSS-test but actually performing a new VFC test (from the
|
||
|
> light's view) is the same. In both cases, here's a trick to take advantage
|
||
|
> of temporal coherence : test the world against a slightly larger than
|
||
|
> necessary LSS or frustum. Keep the list of touched surfaces. Then next
|
||
|
> frame, if the new volume is still contained within the previous one used
|
||
|
for
|
||
|
> the query, you can reuse the same list immediately. Actually it's a bit
|
||
|
> similar to what you did in your sphere-tree, I think. Anyway, now the
|
||
|
O(log
|
||
|
> N) VFC is O(1) for some frames. It's not worth it for the "real" VFC, but
|
||
|
> when you have N virtual frustum to test to drop N shadows, that's another
|
||
|
> story.
|
||
|
>
|
||
|
> Two downsides:
|
||
|
> - You need more ram to keep track of one list of meshes / shadow, but
|
||
|
> usually it's not a lot.
|
||
|
> - By using a larger volume for the query you possibly touch more
|
||
|
> faces/surfaces, which will be rendered in the shadow pass. Usually it's
|
||
|
not
|
||
|
> a problem either since rendering is simply faster than geometric queries
|
||
|
> those days. But of course, "your mileage may vary".
|
||
|
>
|
||
|
> Happy new year !
|
||
|
>
|
||
|
> Pierre
|