ステンシルな話

ちょいと前からとある物を作っているわけです。
んで、ちょっと前に提案でこうしたいと言われて、ふむーちと面倒そうだなぁと思っていたのですが、データがあがってきて、やっぱりめんどくさいという結論になったわけです。

とりあえずなんか試してみるよ! とデータを受け取って、試作してみました。
そして、あれこれいじって結局できたわけですけどねー。

↓のような画像ね。
絵の詳細については聞かれても答えないし、何を言われてもスルーしますんで、ひとつよろしく。

いにしえの手法から考えると、ANDマスクで絵を抜いて、その上に~ なんですが、今更そんな手法で作るのもテラダルスという発想を元に、DirectX9らしい何かで作りましょうと文献ぺらぺらと眺めつつ考えた結果ステンシルバッファしかないよねーと至ったわけです。

とりあえず、レンダリング先の変更を出来るように、プログラムを改良。
同時に戻すようにも作って、サーフェイスのクラスも新設(前回使った物をこぴぺですが)
改良して、レンダリング先が変わることを確認してから、ステンシルバッファのレンダリングステートを変更するように改良。

どうしたら、いいかとか本に書いてあるので、えっちらおっちらと本を見ながらコーディング。

ステートチェンジする関数を登録するようにして、ぽいぽい追加していく形に。

ターゲット変更

切り抜きマスクを描画

絵を描画

鏡持ちを描画

ターゲット変更

上で用意したテクスチャを描画

完成

あーながかった(´ω`)
もうちょっとレンダリングステートの中で何をしているかを理解しないといかんなぁと思うのでした。
ってか、あれは項目多すぎなんじゃよ。

モギャー。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>