Monthly Archives: 9月 2010

2010-09-16

ピクセルシェーダからレンダーターゲットを参照する(Direct3D9)

最近ピクセルシェーダをいじっているのですが、GPU方面はどうにも分からないことが多くて困っています。

ピクセルシェーダからレンダーターゲットのピクセルを参照したくなるのですが、そういうことってやっても良いのでしょうか。試しにD3DUSAGE_RENDERTARGETなテクスチャを作ってレンダーターゲットとサンプラーの両方にセットしてピクセルシェーダから読み書きしてみたのですが、手元のGeForceでは一応ちゃんと動いているみたいです。ただ、読み込む位置を間違えると書き換え後の値を参照したり・しなかったり不定になります。ピクセルの処理順はGPUの都合で決まっているのでしょうからこれは当然でしょう。ピクセルシェーダにおいて結果が書き込まれるだろう位置から読み込む場合は常に問題なく書き換え前の値を読み込めました。描画対象範囲外であるピクセルを読み込む場合も問題ありませんでした。

問題はこのような処理をするコードに移植性があるのかということです。上のように動作しない環境があるのならば、描画範囲矩形を算出して、その部分をいったん作業用テクスチャへコピーするような実装が必要になります。……望み薄いんだろうなぁ。

2010-09-15

冷たい風

朝、外の空気が冷たいのに気がつく。緩やかな風が肌をすり抜けると冷気がとても心地よい。

もう九月も半ば。あと少しで十月。

このまま寒くなると布団や衣類が心配だなぁ、と憂鬱になる。

風邪などをひかないように注意。