views:

996

answers:

3

Under Windows XP WPF true 3D content (wich is usually displayed using the Viewport3D control) looks extremely ugly because it is by default not antialiased as the rest of the WPF graphics are. Especially at lower resolution the experience is so bad that it can not be used in production code.

I have managed to force antialiasing on some Nvidia graphics cards using the settings of the driver. Unfortunately this sometimes yields ugly artefacts and only works with specific cards and driver versions. The official word from microsft on this regard is that antialiased 3D is generally not supported under Windows XP and the artefact I see result from the fact that WPF already does its own antialiasing (on XP only for 2D).

So I was wondering if there is maybe some other secret trick that lets me force antialiasing on WPF 3D content under Windows XP.

+2  A: 

Have you tried this (from your thread on MSDN forums)?

Well, it seems the reference in the MSDN link above incorrectly specify the affected registry root key. In MSDN it is specified as HKEY_CURRENT_USER, while the correct root key should be HKEY_LOCAL_MACHINE. I've tried setting up the HKEY_LOCAL_MACHINE\Software\Microsoft\Avalon.Graphics\MaxMultiplesampleType to '4' and I can get antialiasing for my WPF Application on XP.

Will
A: 

Does your video card support Shader 2.0? You can refer to this wiki page to see if it does...

Will
+1  A: 

The feeling I get from Matthew MacDonald's Pro WPF Windows Presentation Foundation in .NET 3.0 is that it's not possible:

There's one exception to WPF's software support. Due to poor driver support, WPF only performs antialiasing for 3-D drawings if you're running your application on Windows Vista (and you have a native Windows Vista driver for your video card).

I've never seen anything to suggest that you can enable AA in WPF 3D on anything but Vista, but if there is a way it's new to me and I'd love to know as well!

OwenP