NVIDIA talks Shader Model 3.0
Microsoft has published a great primer on Shader Model 3.0 authored by NVIDIA's Sim Dietrich Jr. Dietrich covers the differences between Shader Model 2.0 and 3.0's maximum shader lengths, minimum color precision, and support for instancing, dynamic branching, and vertex textures, just to name a few. Dynamic branching looks particularly intriguing:
Most light types only apply to the front side of an object—the side facing the light. Therefore, you can use both vertex and pixel branching to skip processing for lights that the shader detects as facing away from the light. This can save significant processing time, and speed up the shader. Similar speedups can be used to skip processing of character bone animation as well as many similar algorithms.
Very cool stuff.