Windows XP の Viewport3D 内でアンチエイリアスを強制する裏技はありますか?
-
09-06-2019 - |
質問
Windows XP では、WPF の真の 3D コンテンツ (通常は Viewport3D コントロールを使用して表示されます) は、残りの WPF グラフィックスと同様にデフォルトでアンチエイリアスが適用されていないため、非常に見苦しくなります。特に低解像度ではエクスペリエンスが非常に悪く、実稼働コードでは使用できません。
ドライバーの設定を使用して、一部の Nvidia グラフィック カードでアンチエイリアスを強制することができました。残念ながら、これにより醜いアーティファクトが生成される場合があり、特定のカードとドライバーのバージョンでのみ機能します。この点に関する Microsoft の公式の言葉は、アンチエイリアス 3D は通常 Windows XP ではサポートされておらず、WPF がすでに独自のアンチエイリアス (XP では 2D のみ) を実行しているという事実から生じる成果物であると述べています。
そこで私は、Windows XP で WPF 3D コンテンツにアンチエイリアスを強制できる他の秘密のトリックがあるのではないかと考えていました。
解決
これを (MSDN フォーラムのスレッドから) 試してみましたか?
そうですね、上記の MSDN リンクの参照では、影響を受けるレジストリ ルート キーが誤って指定されているようです。MSDN では、これは HKEY_CURRENT_USER として指定されていますが、正しいルート キーは HKEY_LOCAL_MACHINE である必要があります。HKEY_LOCAL_MACHINE\Software\Microsoft\Avalon.Graphics\MaxMultiplesampleType を '4' に設定してみたところ、XP 上の WPF アプリケーションのアンチエイリアスを取得できました。
他のヒント
マシュー・マクドナルドから感じること .NET 3.0 の Pro WPF Windows Presentation Foundation それは不可能だということです:
WPF のソフトウェア サポートには例外が 1 つあります。ドライバーのサポートが不十分なため、WPF は、アプリケーションを Windows Vista で実行している場合 (ビデオ カード用のネイティブ Windows Vista ドライバーがある場合) にのみ 3-D 描画に対してアンチエイリアスを実行します。
Vista 以外の WPF 3D で AA を有効にできるということを示唆するものは見たことがありません。しかし、もし方法があるなら、それは私にとって新しいことなので、ぜひ知りたいと思っています。
ビデオ カードは Shader 2.0 をサポートしていますか?参照できます このウィキページへ そうなるかどうかを確認するために...