BioShock DirectX 9 vs DirectX 10 Image Quality
Integating DX10 into BioShock
While Epic’s Unreal Engine 3 game engine was originally built with shader model 3.0 in mind, Epic has integrated limited DX10 code into newer builds of the engine.
Epic’s own DX10 additions to Unreal Engine 3 are focused on performance optimizations, but Irrational has chosen to go in a different direction for BioShock, using DX10 shaders to enhance graphics. According to the game’s manual, the DX10 enhancements include “dynamic water ripples, soft edges for particles [such as fire and smoke – Ed], and crisper shadow edges.”
To illustrate the differences between DX9 and DX10 in BioShock, we took the following screenshots:
![BioShock DirectX 10 vs DirectX 9 Performance and Image Quality [ DirectX 9 @ 1600 x 1200 ] > View Full-Size in another window.](images/10-s.png) DirectX 9
|
|
![BioShock DirectX 10 vs DirectX 9 Performance and Image Quality [ DirectX 10 @ 1600 x 1200 ] > View Full-Size in another window.](images/11-s.png) DirectX 10
|
|
![BioShock DirectX 10 vs DirectX 9 Performance and Image Quality [ DirectX 9 @ 1600 x 1200 ] > View Full-Size in another window.](images/12-s.png) DirectX 9
|
|
![BioShock DirectX 10 vs DirectX 9 Performance and Image Quality [ DirectX 10 @ 1600 x 1200 ] > View Full-Size in another window.](images/13-s.png) DirectX 10
|
|
In the first two sets of screenshots, we’re focusing on the difference between DX9 and DX10 shadows. In the words of the developers, under DX10 the shadows should look “crisper”, but we’re hard-pressed to see any differences, even when zoomed:

BioShock DX9

BioShock DX10

BioShock DX9

BioShock DX10
What about the game’s dynamic water ripples? To test this effect, we took screenshots of a pair of splicers walking through water. Pay no attention to the difference in lighting/shadows in this area, as there is a flickering light at the top of the scene right above the statue that can’t be seen:
![BioShock DirectX 10 vs DirectX 9 Performance and Image Quality [ DirectX 9 @ 1600 x 1200 ] > View Full-Size in another window.](images/14-s.png) DirectX 9
|
|
![BioShock DirectX 10 vs DirectX 9 Performance and Image Quality [ DirectX 10 @ 1600 x 1200 ] > View Full-Size in another window.](images/15-s.png) DirectX 10
|
|

BioShock DX9

BioShock DX10

BioShock DX9

BioShock DX10
Once again, it’s very difficult to see any differences between DX9 and DX10. The water wake on both characters looks pretty similar to us. We also were under the impression that bullets and other objects hitting the water would produce radial ripples under DX10, but we tested this out and couldn’t see any differences between DX9 and DX10 here either.
Where we did spot a
definite difference between DX9 and DX10 in BioShock was the soft edges for particles. Take a look at the first example:
![BioShock DirectX 10 vs DirectX 9 Performance and Image Quality [ DirectX 9 @ 1600 x 1200 ] > View Full-Size in another window.](images/16-s.png) DirectX 9
|
|
![BioShock DirectX 10 vs DirectX 9 Performance and Image Quality [ DirectX 10 @ 1600 x 1200 ] > View Full-Size in another window.](images/17-s.png) DirectX 10
|
|
In the first sequence, we’re firing the revolver at the couch. When a bullet is fired and hits the couch, a puff of smoke is emitted where the bullet strikes the couch. You can see hard edges on particles where this smoke meets the couch in the DX9 screenshots above. We illustrated this for you below:

BioShock DX9
Now look at a similar sequence under DX10:

BioShock DX10
In the DX10 shots, you can see how the edge of smoke blends smoothly with the couch where they intersect:
We took another pair of shots here:
![BioShock DirectX 10 vs DirectX 9 Performance and Image Quality [ DirectX 9 @ 1600 x 1200 ] > View Full-Size in another window.](images/18-s.png) DirectX 9
|
|
![BioShock DirectX 10 vs DirectX 9 Performance and Image Quality [ DirectX 10 @ 1600 x 1200 ] > View Full-Size in another window.](images/19-s.png) DirectX 10
|
|
In this example, fog retreats slowly over the edge of a plant. In the DX9 shot, you can see how the fog clips right at the intersection where the edge of the fog retreats over the surface of the plant resulting in a hard edge:

BioShock DX9
Under this same scenario in DX10, the edge of the fog blends smoothly with the plant, there are no hard edges:

BioShock DX10
You can see another example of hard edges on the plant here:
![BioShock DirectX 10 vs DirectX 9 Performance and Image Quality [ DirectX 9 @ 1600 x 1200 ] > View Full-Size in another window.](images/20-s.png) DirectX 9
|
|
UPDATE 8/24/07: Thanks to the help of reader Ring Wraith we've got a good example of DirectX 10's crisper shadows! Feast your eyes on these screenshots:
![BioShock DirectX 10 vs DirectX 9 Performance and Image Quality [ DirectX 9 @ 1600 x 1000 ] > View Full-Size in another window.](images/21-s.png) DirectX 9
|
|
![BioShock DirectX 10 vs DirectX 9 Performance and Image Quality [ DirectX 10 @ 1600 x 1000 ] > View Full-Size in another window.](images/22-s.png) DirectX 10
|
|

BioShock DX9

BioShock DX10
In the images above you can see how the shadow of the woman and stroller are less blurry under DX10. The edges of shadows are
much crisper actually! Thanks again to Ring Wraith for discovering this nice find for us!
Now that you’ve seen the differences between DX9 and DX10 in BioShock visually, let’s examine the performance impact DX10 brings to the game.
UPDATE 8/29/07: Since publishing this article we've discovered that toggling between DX9 and DX10 in BioShock's graphics settings menu doesn't work 100% correctly, which explains why we couldn't see the difference in water ripples.
Click here for the full story.