ページ

2009年6月24日水曜日

[Silverlight] Silverlight 3 の 3D Projection を使って影をつける

Shadow effect using 3D projection in Silverlight 3 より。
これ、すごいなぁ。
Silverlight 3 beta 1 が入っていれば上記ページにアクセスすると実際に動いているところを見れます。
球のあたりのマウスを持っていくと、球の表面にライトの反射が、球の後ろに影が描画されます。

Silverlight 3 で追加される 3D Projection は、言ってしまえば形を変形して奥行きがあるかのように見せかけるっていうだけのもので、ライトやら影やらの計算ができるってわけではないです。
(だから 3D Projection = 3D 投影 っていう名前なんでしょう)

では、どうやっているのか。

ライトの反射は、実は単なる円形のグラデーションだそうです。
グラデーションの原点 (GradientOrigin) をマウスにあわせて動かしているだけです。
他には何もしていません。

影の方ですが、こちらも単なる灰色のグラデーションで、それを 3D Projection でそれらしく変形しているだけです。
具体的には PlaneProjection を使っていますが、それの LocalOffsetX、LocalOffsetY をマウスにあわせて動かしているだけです。
他には何もしていません。

ソースを見ると本当にこれだけのことしかしていません。
うーん、なんと言うか、、、センスいいなぁ。


0 件のコメント:

コメントを投稿