フォト

Google AdSense


  • AdSense
無料ブログはココログ

« 実装案 | トップページ | eグループ »

2004.09.28

タブレットプログラミング(バーチャルサインボールへの道)

とりあえずこのネタの続き(該当記事)。

タブレットの座標値の取得が完了(下の絵では左上に白い文字で座標値を表示)。

ちゃんとタブレットをクライアント領域だけで使わせるモードにすると結構、直感的に使えてよいですな。

ボールの表示は速攻でできることなのでいいとして、あとは3D野球ボール上のテクスチャスペースにタブレット座標を変換するシェーダを書かないと。

tab.jpg
クリックすると大きなサイズになります

ところで、FX Composerの【3DPaint.fxproj】って実はマウスカーソルが通過するだけで色が塗られちゃいます。普通、マウスボタンが押されてるときだけ塗ると言う挙動ですよね?何でかと言うとたぶん、マウスのボタンを押したときのbool値をピクセルシェーダで判定させると、動的分岐処理が発生するのでPS3.0以上じゃないと解決できなくなるわけですね。でも、boolの段階で0と1ですから色の値にbool値を乗算すれば、マウスがクリックされていない時はRGBA(0,0,0,0)の色を塗ると言うことにすればいいような・・・。

では、どうしたもんかと考えるわけですが、いくつか案はあると思います。

・PS 3.0用にする(最悪の案ですね)。
・プログラムの外側でクリックを判断してシェーダの実行を制御(まぁまぁの判断ですね)。
・タブレットは筆圧が取れるので、塗るときの線の太さを筆圧を考慮したものにする。筆圧が極度に弱い場合は太さ0の線を描く(つまり実質は描かない)処理にすればいいだけですね。

あとは、マウスのbool値を乗算みたく、

出力色 = ボール面の色 + ( 塗る色 * (筆圧 / 筆圧));

としてやれば、筆圧0の値の時は塗らないですみますね。

とりあえず第3案でいこうかと思います。

ちなみにボールの回転はマウスだけでやるようにするとタブレットは書くだけに専念できるので、結構安定してかけるんじゃないかな(欠点としてタブレットからはDXUTのUIは使えなくなるけどね)?

あと、ペン先が今どこにいるかカーソルは表示してやらんとイカンなぁ・・・。

« 実装案 | トップページ | eグループ »

Programming」カテゴリの記事

画像付き」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2210/1538841

この記事へのトラックバック一覧です: タブレットプログラミング(バーチャルサインボールへの道):

« 実装案 | トップページ | eグループ »