Often in FPS games, the arms aren't even really in the world. By this I mean, that the entire world is rendered using some particular camera, then the arms/gun are drawn using a completely different camera and depth-buffer, so that they never intersect with the world and so the artists can use FOV-hacks to make them "look right".
Yep, you obviously don't want to include just a pair of arms in your shadow pass, or it will look very strange when the player looks down! Same goes for a model that only includes legs.
The game will have logic for drawing a player in the 3rd person vs 1st person -- i.e. the way the game draws another player may be different to the way it draws yourself (arm + leg specialized model for yourself, whole body for others).
When drawing from the light's point of view, none of the players would use the specialized 1st person mode; every player is drawn as a 3rd person player.
In other games, there isn't much of a specialized 1st person mode, and when in first person, all they do is disable rendering of the head and place the camera there -- the arms/legs/body is the same as it would draw for a 3rd person view.
Thanks, I'm going to give this a test after I get back from work. I assume that with some games, where the hands and weapons change when you are near a bright light, are using a separate camera with the player's POV, just rendered to a texture?
So for example, if my game has a long hallway in it, where you walk under many hanging lights. Each time I walk between two lights, my first person hands get darker, and the reverse whenever I walk under a light. So I just have a second camera follow the player (with the same world and view matrix) and render the first person view to a texture, then draw the texture to the screen?
That makes sense in my head, hopefully it will for you too.
Edited by vinnyhalts, 25 May 2013 - 10:57 AM.