2010年07月14日

はじめての DirectX まとめ9

にゃっぽんで書いた内容ですが
簡単にまとめてこちらにも。

2010/04/30

MMD表示36

ビュオオオー!

物理演算対応しました(Bullet 2.76)
ここまで来ると絵的には面白みが無くなって来たなぁ。
そろそろ潜伏して、秘密裏に開発を進めようかしら……。

※音注意

これも本家の動きと違うので
解明しなければいけないのだけど、IK ほど、重要度は低いので
これでも良いかなぁとも思っていたり。

なぜかというと、物理演算が有効なボーンは
100% 決まった動きをしない(はず)ので、
モーション製作者が意図した動きをさせるというのは
不可能に近いという事です。
ただ大まかな動きは可能です。
例えば風が前から吹いてるから髪は後ろになびく、とか。

IK は、その逆で 100% 決まった動きをするので
モーション製作者の意図した動きじゃなかった場合は
それはもう不具合認定されてもおかしくないので
重要度が超高いですね。メソリ

うちの捻挫病は、まだ治っておりません!

写真は、加速度を1000にした時の反応です。
ネクタイや髪が伸びてますね。謎。


2010/06/03

MMD表示44

気をぬいたら6月でした。
お久しぶりです。

生存報告と現状を。
とりあえず、画像のような感じですね。

本当はスクリーンや影もバッチリな感じで報告したかったんですが
スクリーンの実装方法でガッチリはまってました。

レンダリングしたあとのバックバッファを保存しておいて
次のレンダリングでテクスチャとして使用できれば良いのだろうと
考えていたけど、ぐぐれどぐぐれどバックバッファをテクスチャとして
扱う方法が出てこず・・・。

テクスチャにレンダリングする方法は出てくるんですが……
おむおむおむ。


MMD表示46

とりあえず、打破?したかな?

ウィンドウと同じ大きさのテクスチャを2枚(A,B)用意して

Bをスクリーンのテクスチャとして使用し、
Aのテクスチャへレンダリング、Aを1枚の板ポリに貼って表示
Aをスクリーンのテクスチャとして使用し、
Bのテクスチャへレンダリング、Bを1枚の板ポリに貼って表示

という方法でなんとなく実装してみた。

これで、なんとなくできたけど
アンチエイリアスさんがどこかにいってしまったのと
スクリーンが重なるごとに白くなっちゃう問題が!

先は長いなぁ。

樋口さんよりヒントを貰うなど

バックバッファをテクスチャにコピーする方法

1.CreateTextureで適当なサイズのテクスチャ作成(IDirect3DTexture9:BScreen)
2.1のテクスチャからGetSurfaceLevelでサーフェス取得(IDirect3DSurface9:BScreenSurface)
3.バックバッファからGetBackBufferでサーフェス取得(IDirect3DSurface9:BackBufSurface)
4.StretchRectでBackBufSurfaceをBScreenSurfaceにコピー

テクスチャサイズは自由。(アンチェリ対応するなら同じサイズでなければ駄目だったかな?)


MMD表示50

うおー、早速ためして早速できました!うおー。
これはかなりスマートですぞ!アンチエイリアスも生きてる!


はじめての DirectX まとめ10に続く

Posted by frivolouslife at 00:57│Comments(0)TrackBack(0) プログラム 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/frivolouslife/365234

コメントする

名前
 
  絵文字