I'm rendering a dynamic terrain shadow map (using cascaded shadows), and I need to work out which terrain tiles I need in the shadow map. My terrain is a standard quadtree based terrain, with 32mx32m tiles being the smallest drawn, up to 1024m x 1024m (with a max terrain size of 8192m x 8192m). When working out which tiles to choose for normal rendering, I just do the standard frustum culling approach, i.e. check if the parent patch is in the frustum, then split into the children, and so on. I then do a distance calculation to each of the children to check if I should traverse further down - this all works nicely.
My question is, how should I traverse the terrain quadtree in order to find which tiles to draw in the shadow maps? My current implementation takes the sun position and does a ray intersect between the sun's direction vector and the ground plane. I then use that as the effective viewer position and apply the same logic to when normal rendering in order to get a list of caster terrain tiles. Is this how it's normally done or is there a better way?
edit: that’s not the title I entered for this post!