This question already has an answer here:
- What native games are available? [closed] 63 answers
Real games that use powerful video cards.
Gaming and Linux has been kind of a vicious circle for a long time. Since Linux had (and still has) a small market share, there is little motivation for game developers to port their software, and since there are few games available for Linux, gamers tend to buy Windows anyhow, keeping the market share of Linux small.
Another factor is that game development on Windows is often done using proprietary Windows-Only libraries instead of open standards (I won't go into details, for I'd inevitably start to rant about MS...).
The situation luckily is not that bad any more. For a long time, many independent game developers have been porting or even developing their games for Linux. Most notable is probably the Humble Indie Bundle, which requires each game to have a native Linux version in order to accept it for a bundle (there's one exception). Since you asked about 3D games: The current bundle includes Brütal Legend, which was ported from the Xbox 360.
About a year ago Valve started to port many of their games to Linux, and meanwhile you can get many commercial Valve games and a lot of indie games via Steam. Actually, Valve confirmed that for some games performance on Linux is superior to Windows.
Although Steam is using DRM and therefore one should think twice before supporting it, gamers using Linux should still hope that steam on Linux is a big enough success to make other game developers follow Valves example and port their games for Linux.
A technical side note: While game development on Windows is different from Linux (mainly due to DirectX), the technical differences between MacOS and Linux are much smaller (both use OpenGL, both have OpenAL available, and for input exist libs like SDL that are available for both). So, once a game is ported to either of these 2 operating systems, porting to the other requires a much smaller amount of work than porting from Windows.
Long story short: There are already graphically demanding games available for Linux, yet the selection is by far not yet as big as on Windows, but growing.
For many games without a native port, WINE is an acceptable way of running the Windows version, since WINE is not an emulator and can run Windows programs close to native speed (they code is executed natively, yet Windows specific functions have to be translated to their Linux equivalents what creates overhead and slows down execution).