I divide the level into chunks and for each chunk I have a list of which other chunks can be seen from this one, then I just update the hide/show of the chunks when the player enters a new chunk. This keeps the poly count low.
You could use portals too but for my money just using the simple method above ( its called a potentially visible set ) is enough.
You could use portals too but for my money just using the simple method above ( its called a potentially visible set ) is enough.