雑記帳

ブログを使わずにArrangeNoteで作っている公開雑記帳

May 31, 2007 - ダウンロードしたスクリーンセーバーはブロックの解除無しで動く!?

波紋のスクリーンセーバーをWebページからダウンロードしてVistaのWindowsフォルダにコピーしたのですが、 RipplePicture.scrのプロパティで「ブロックの解除」を行っていないのに何のプロンプトも表示しないで 動いてしまいました。

開発用PCからUSBメモリでコピーしたRipplePicture.scrがWindowsフォルダに残っていて、そこに上書きコピーしたから??

UnplugDrive Portableの場合は「セキュリティの警告」ダイアログがプロンプト表示されるのですが...

セキュリティホールかな??

May 22, 2007 - シェーダプログラミング

最近、HLSLを使ってPixel Shaderを使ったプログラムを書けるようになってきました。 次のコードは波紋みたいな効果を描画するプログラムです。

PS_OUTPUT RenderMoirePS( VS_OUTPUT In ) {
	PS_OUTPUT Out;
	float2 t = In.tCurr - 0.5;
	float r = sqrt( t.x * t.x + t.y * t.y );
	float s = FREQ * 2.0 * 3.14159 * (r - g_alpha) * 1.41421;
	float w = cos( s );
	float r2 = r + g_factor * w / (1.41421 * FREQ * 2.0 * 3.14159);
	float z = 2.0 * (LY * w * t.y / r + LZ) / sqrt( 1 + w * w) - LZ;
	t *= r2 / r;
	Out.RGBColor = tex2D( SourceSamplerTemp, t + 0.5 );
	Out.RGBColor.xyz = saturate( Out.RGBColor.xyz * (1.0 + 0.15 * g_factor * z) );
	Out.RGBColor.w = 1.0;
	return Out;
}

計算式は適当ですが、一応波紋っぽく見えるからとりあえずいいでしょう(^^;

Mobility Radeon X1600を搭載したMacBook Pro上のWindows Vistaで動かすととても滑らかに描画します。 1フレームの中の1ピクセルごとに上のような計算を行っているのですから、 現在のGPUってすごいんだなあと今更思いました。(^^;;;

いつまでもEfficeon搭載のモバイルノートPCでソフト開発していたら時代遅れになってしまいそうです。 .NET Frameworkも重いのでなかなか使う気になれませんでしたし。

DLRってどういうものなんでしょうね。とても興味があります。 .NET Framework上でActiveX Scriptingのような仕組みができるといいんですが...

記事の一覧

Copyright © 2007 Koichi Yamamoto