I have a deferred rendering implementation. I'm implementing shadows, and have decided to do a cascaded shadow-maps approach to support large scenes. It occurs to me that I have two options for how to do this.
I'm already transforming all the vertices for rendering to the various layers of my deferred implementation. I could pass additional matrices for the cascade levels and simply output additional textures representing the shadow maps. Alternatively, I could draw everything a second time explicitly for the purposes of shadow mapping.
In the first approach, my limitation is that each cascade layer will be the same dimensions as the framebuffer, which is pretty big. In the second approach, I could use, say, 1024x1024 sized shadow maps, but I'd be doing all my draw calls a second time.
Does anyone have a suggestion as to which would be the more favorable approach? I'm going to go ahead and implement it in a way that I can do either to see what the results are, but I was just wondering if anyone had any insights.