後藤弘茂のWeekly海外ニュース

LonghornのユーザーインターフェイスAvalon




●LonghornのサブシステムAvalon

 Microsoftは、米ロサンゼルスで10月26日(現地時間)から開催しているソフトウェア開発者向けカンファレンス「Professional Developers Conference(PDC)」で、次世代Windows「Longhorn(ロングホーン)」のプレゼンテーションサブシステムである「Avalon(アバロン)」の概要を発表した。Avalonは、Longhornの一部として統合されており、.NET Frameworkの新しいクラスライブラリ群として実装。新しいネームスペースを使う。

 Avalonの基本的な考え方は、今年5月のカンファレンス「WinHEC」で発表された通り、WindowsのUI(ユーザーインターフェイス)を、GPUハードウェアを活かしたものに切り替えることにある。UI部分をGDI/GDI+ベースからDirectX 3Dベースに移行することで、GPUの3Dグラフィックスパイプラインをフルに使うことができるようにする。2Dの画面も3Dのサーフィスのひとつとして描画されるため、3Dハードウェアの備える様々なエフェクトを使えるようになる。

 Longhornでは新しいベクターベースのエンジン「Desktop Composition Engine(DCE)」を備える。DCEは、各サーフェスに描かれた画面要素をコンポーズしてデスクトップを構築する。また、PDCではレイアウトを司る「Layout Engine」の存在も明らかにされた。これは、ドキュメントのレイアウトを自動的に構成するエンジンで、固定タイプではないフロータイプのレイアウトをインテリジェンスに構成する。ドキュメントの中のグラフィックスや文字列の位置や配置を、文書サイズに従ってアダプティブに不自然にならないように変更する。

WinFXにおけるAvalonの位置づけと機能

●派手なデモはなりを潜めた

半透過させてチルトさせるデモ

 WinHECでは、MicrosoftはAvalonでウィンドウをはためかせたり、デスクトップの構成要素をばらばらにしてそれぞれを回転させるといった、3Dハードウェアを使った派手なデモを見せた。しかし、今回のPDCでは、そうしたデモは展示会場の片隅に押し込められ、メインのデモは、もっと地味な(だが、実際には3D機能をフルに活かした)もの中心となった。派手な3D効果を実現できるAPIは実装されるが、それを実際の標準UIとしてインプリメントするという話ではない。

 もっとも、3Dハードのアルファブレンディング機能を使った半透過表示や、液晶画面での文字表示を美しくする「ClearType」のShaderを使ったハードウェアアクセラレーション、各クライアントウィンドウを任意のDPIに拡大する高DPIスケーリング、ウィンドウのチルトなどのフィーチャは今回も強調された。

 WinHEC時にはAvalonには2つのレベルがあることが説明された。Avalonの全機能を使える「Tier 2 Experience」と、ミニマム機能を提供する「Tier 1 Experience」だ。そして、Tier 2はDirectX 9ハードが、Tier 1はDirectX 7ハードが必要になると説明された。しかし、PDCではそうした説明は消えていた。

 セッションではこの点について質問が出た。それに対して、Microsoftは、Avalonが自動的にハードウェアをディテクトすることで、UIの機能レベルを自動的に切り替えると説明している。つまり、ユーザーは意識する必要はないが、依然としてGPUの機能によるUIの違いはある。そして、フル機能にはDirectX 9が必要である点も変わっていない。

●グラフィックスの統合を目指すAvalon

 Avalonが目指しているのは、従来分断されていた様々なグラフィックス要素の統合だ。

 統合の1つは、もちろん2DベースのGUIと、3Dや動画などのメディアの融合で、これは、すでに説明した通り、全ての処理を3Dパイプへと持っていってしまうことで実現する。UI、ドキュメント、メディアのそれぞれに統合されたプログラミング環境を提供することで、統合的なアプリケーションの開発を容易にする。

 もう1つの統合はWebとWindowsのそれぞれのUIを統合することだとMicrosoftは説明する。そのため、Avalonでは新たに「Navigation Application」と呼ばれる、WebライクなアプリケーションのUIのクラスが用意された。

 Avalonは.NET Frameworkに載っているため、.NET Common Language Specification (CLS)に合致するどの言語からもプログラムできる。しかし、MicrosoftはAvalonのプログラミングを容易にするために、新しいマークアップ言語「XAML(Extensible Application Markup Language)」も定義している。

 XAMLは、XMLをベースにしたマークアップ言語で、HTMLと同じようにテキストやイメージの配置を定義できる。しかし、その描画機能の範囲ははるかに大きい。例えば、PDCでは、画面背景にビデオを再生しながら、その前面に半透過のダイアログボックスなどをチルトさせて配置するといったプログラムを、XAMLで簡単に作るデモが行なわれた。

 もっとも、XAMLでAvalonの機能を全て利用できるというわけではないという。XAMLはあくまでも手軽なオーサリング用という位置づけのようだ。現実的には、アプリケーションはXAMLとプログラムの混成になるだろうとMicrosoftは説明する。

Avalonのアーキテクチャ WebライクなアプリケーションのUIクラス「Navigation Application」が追加

●過去7年間の積み重ねの集大成

 AvalonとXAMLは、長年に渡るMicrosoftの新UI構想の最新版で、過去の試みのリバイバルでもある。

 Microsoftは、これまでも最新GPUハードウェアを活かしたUIへ変える構想を発表してきた。Microsoftの3Dグラフィックスへの取り組みの本格化が顕在化したのは'96年頃で、DirectXの3DグラフィックスコンポーネントであるDirectX 3Dや、Microsoftが開発する3Dハードウェアアーキテクチャ「Talisman(タリスマン)」構想がこの頃に発表されている。Talismanは、結局ハードウェアとしては結実せずに消滅してしまうわけだが、3Dハードの定義にも積極的に関わろうというMicrosoftの姿勢はこの頃から一貫している。

 そして、'98年のハードウェア開発者向けカンファレンス「WinHEC(Windows Hardware Engineering Conference and Exhibition) 98」で、Microsoftはいよいよ3DグラフィックスベースのUI計画を発表する。これは、GDIとDirectXを統合する「GDI 2k」で、AvalonのUIで目立つ半透過のウィンドウなどは、GDI 2kの時点ですでにデモされていた。GDI 2kは、結局うやむやになってしまったわけだが、Avalonはその延長線上にある。

 また、GDI 2kの時にはDirectXをWindows/Web上でより容易に扱えるようにするプログラミングインターフェイス「Chrome(クローム)」も発表された。Chromeは、GDI 2k構想が消えたあともIEの拡張を謳う「Chromeffects(クロームエフェクツ)」としてしばらく残っていた。そして、Chromeffectsも復活してきた、XAMLとして。

 ChromeはXMLベースでDirectXを操作できるようにするもので、基本的な考え方はXAMLにかなり似ている。XAMLはChromeのリバイバルと言ってもよさそうだ。そして、GDI 2kとChromeの関係は、ちょうどAvalonのUIとXAMLの関係に相対できる。その意味では、'98年の時の構想が、ようやくLonghornで結実されることになる。

●Talisman構想を引き継ぐDirectX 9ハード

レンダースタックの概要

 また、その意味では柔軟な3Dグラフィックスを実現する、ベクタ/SIMD演算ユニット(Programmable Shader)搭載のプログラマブル化したDirectX 9世代のGPUアーキテクチャも、実はこの当時の構想のリバイバルだ。というのは、Talismanが目指していたのは、ベクタ/SIMD演算ユニットでフルプログラマブル3Dパイプ処理を行なうメディアプロセッサだったからだ。実際、'96年の「Hot Chips」カンファレンスで発表された、Samsung ElectronicsのTalismanベースのメディアプロセッサ「MSP-1」は、整数/浮動小数点ベクタユニットで3Dグラフィックス処理するチップで、DirectX 9 GPUにかなり似ている。

 こうして見ると、AvalonとXAML、そしてその下層のプログラマブルGPUは、いずれも5年以上前からの構想であることがわかる。しかし、今回が違うのは、これらの技術がLonghorn(2005~6年)に実装されることが決まっていることだ。これまでになく現実性がある。ようやく、ここへ来て実現にこぎ着けたという色彩が強い。

 また、Avalonから見えるのはGPUパワーを使ったUIの変革というだけでない。GPUから見ると、プログラマブル化するハードにアクセスするAPIを多段階で整えてくれるということになる。そして、Microsoftは、最終的にはGPUを汎用のベクタ/SIMDエンジンを備えたもうひとつのプロセッサとして、広範に使っていこうとしているのかもしれない。

□Microsoftのホームページ(英文)
http://www.microsoft.com/
□PDCのホームページ(英文)
http://www.msdn.microsoft.com/events/pdc/
□トランスクリプト(英文)
http://www.microsoft.com/billgates/speeches/2003/10-27PDC2003.asp
□関連記事
【5月9日】【海外】MicrosoftがLonghornの3Dユーザーインターフェイスを明らかに
http://pc.watch.impress.co.jp/docs/2003/0509/kaigai01.htm
【'98年5月13日】【海外】Microsoftが描く2000年のデスクトップ――クロームとGDI 2k
http://pc.watch.impress.co.jp/docs/article/980513/kaigai01.htm
【'97年7月24日】【海外AGPとTalismanの行方が見えたMeltdown Tokyo
http://pc.watch.impress.co.jp/docs/article/970724/kaigai01.htm

バックナンバー

(2003年10月31日)

[Reported by 後藤 弘茂(Hiroshige Goto)]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright (c) 2003 Impress Corporation All rights reserved.