忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


Managed DirectXとXNA

ちょっと最近更新がありませんでしたが、
ゲームを作っていました。

といっても使ったのはXNAではなくManaged DirectXです。

最初はXNAを使って作っていたのですが、
テストプレイヤーの弟達のパソコンが古いんで
動かないんですね・・・・・・。
(盲点でした。)

仕方なくManaged DirectXを使うことにしたのですが、
改めて比較するとXNAより簡単な部分が
それなりにあるように思えます。

拍手[0回]

PR

かんたんXNA その25 ブレンド関数

このページは古いです
最新版はこちら

物を半透明にするアルファ・ブレンディングですが、
ブレンド関数を使うことによってもっと別のことも出来ます。

アルファ・ブレンディングとはもう少し一般的にいうと、
色を混ぜる(ブレンドする)ということです。
ある混ぜ方をすると物が半透明になりますが、
別の混ぜ方をすれば別の効果が得られます。

前回では2つの色は常に足されましたが、(変わったのは係数だけ)
これは逆に引いたり、あるいは最大値をとったり、
最小値をとったりするようにも変更できます。
(そのため、アルファは単なる不透明度ではない場合だってたくさんあり、
むしろそれがほとんどなのです。)


このような、混ぜ方の関数を設定するのが
RenderState.BlendFunctionプロパティです。

拍手[0回]


マウスが左利き設定になっているかどうかを調べるには?

XNAのMouseStateはマウスが左利きの設定になっているかどうかを考慮しません。
常に物理的なマウスのボタンの状態を保持しています。

そのため、単に「クリックしたときに弾が出る」ようにプログラムすると、左利きの人にとっては「右クリックしたときに弾が出る」ようになるのです。(完全に余談ですが、ぼくは左利きで、こういう事態に陥ったとき非常に腹が立ちます。まったくもう!)

これを避けるためには、マウスが左利き用になっているかどうかを調べる必要があります。

この方法を2つ紹介します。

拍手[0回]


かんたんXNA その24 アルファ・ブレンディング

このページは古いです
最新版はこちら

XNAでは物を半透明に描くことが出来ます。
ゼリーのように、後ろのものが透けて見えるのです。

これをアルファ・ブレンディングと言います。
不透明度(アルファ)を考慮する描画だからです。

アルファ・ブレンディングを使うには、まず

拍手[1回]


かんたんXNA その23 深度バッファ関数

このページは古いです
最新版はこちら

さて、深度バッファとは物体の前後関係から
適切に描画するためのデータでした。

カメラからの距離がより小さいときには描画し、
より大きいときには描画しないのです。

こうすることによって近くにあるものは遠くにあるものを隠し、
遠くにあるものは近くにあるものに隠されるのです。

実はこの挙動は変更することが出来ます。
例えば全く逆、カメラからの距離がより大きいときには描画し、
より小さいときには描画しないということができます。

近くにあるものは遠くにあるものに隠れ、
遠くにあるものは近くにあるものを隠すことが可能となるのです!!
(そんなことをして何が楽しいのかは知りませんが)

拍手[0回]