2011年8月27日土曜日

日記ちゃんシェーダ(4)




 HDR2回目。SetRenderTargetに0しか指定できないとわかったから
シェーダ側をいじって2パスで情報取得するようにした。
上がカラー情報、下が輝度情報。
合成すると下になる。他にもいろいろ書き足してるけど

2011年8月26日金曜日

cave夏のオンライン販売


第1回販売:8月26日(金) 12:00~20:00
第2回販売:8月27日(土) 12:00~16:00

その他、詳細はショップページをご確認ください。
http://www.cave-shop.jp/


 2週間も前にメールが一通きただけでそれきりだったからすっかり忘れるところだった。
今回の目玉は「赤い刀」のDVDと虫姫さま1.5のサントラかしら。
他の商品は一切買えないのかリストに商品がないが、意図してるんだろうか。
 
 以前みたく散々待たされた挙句503とかじゃなくなってる。
503出たわりに注文はしっかりできてるから紛らわしいが仕様上仕方ないんだろうなあ。

2011年8月24日水曜日

日記ちゃん

 マウスを衝動買いしてきた。つっても商品券でだけど。
Amazon.co.jp: LOGICOOL ワイヤレストラックボール Unifying対応超小型レシーバー採用 M570: パソコン・周辺機器
 じゃじゃ馬感がたまらなく楽しい。
カーソル動かしながらクリックしつつホイールを回してると混乱してくる。
でも腕を動かさないからかなり楽だわ。
戻る進むボタンはあるが存在を忘れる、とても乗りこなせてない!

2011年8月21日日曜日

ring^-27販売開始


「ring^-27」をDLSiteさんに登録しました。
540円($5.18 / €3.93)だそうです。
よろしくお願いします。
ring^-27 DLsite.com直リンク
 体験版あり。
 
ring^-27 Link to DLsite.com
English site is here
 
 





●動作環境
  Windows XP
  CPU 800MHz以上
  メモリ 256MB以上
  DirectX9.0c以上
 
 
 
●アンインストール
  レジストリは触っておりません。
  削除の際はフォルダごとゴミ箱へどうぞ。
 
 
 
●操作説明
■アンカーモード
  Zキー:ショット(低速)
  Xキー:アンカー
  Cキー:ショット(高速)
  Vキー:ポーズ
 
  アンカーで打ち込んだ敵を倒すと画面上の弾全消し。
  エネルギーがない状態でアンカー打ち込んでるとその敵の攻撃が激しくなり、さらにランクも上がる
 
■ボムモード
  Zキー:ショット(低速)
  Xキー:誘爆ボム
  Cキー:ショット(高速)
  Vキー:ポーズ
 
  敵弾にボムを当てるとどんどん誘爆する。敵にボムが当たるとアンカーを打ち込んだ状態になる
  エネルギーがない状態で誘爆するとランクが上がる
 
 
  詳しくはhelpフォルダ内、index.htmlをご覧ください。

2011年8月20日土曜日

にっきちゃんシェーダ(3)


 HDR。
ぼかしシェーダでぼかして加算合成するシンプルな実装はともかく、
SetRenderTarget( 1, *** );
がうまく動かなくて四苦八苦してた。
結局あきらめてそれっぽくなればいいやと適当実装に。
あとやっぱり60FPSでないんで実際に使うこともできず積み状態。うごごごご。
 動かないなーとおもったらハードウェアがサポートしてなかった。
1週間ほど無駄にした気分だ……。

2011年8月12日金曜日

にっきちゃんシェーダ(2)



 バンプマッピング。
D3DXComputeTangentFrameEx云々のあたりは
SDKSampleのParallaxOcclusionMappingがわかりやすかった。ほぼ丸写しで動くし。
あれこれいじってたら動かなくなった。
 

 影つけるシェーダ。いまひとつ飲み込めてない。
バンプマッピングと影を同時につけようとおもったら、そのようにシェーダを書くのかな? 
現実の運用方法がわからん。
 

 ビルボード。青いパーティクルがそれ。
逆行列うんぬん。だいぶ逆行列も見慣れてきた。
 

 ブラー、というかぼかしシェーダ。
device->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
device->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
で滑らかにしないとがくがくになる点と、それから
device->Present( NULL, NULL, NULL, NULL );
のあたりで
device->SetTexture( 0, NULL );
を入れないとなぜか2フレーム目からレンダリングできなくなり行き詰った。
 小さいテクスチャに描いて拡大するほうが楽そうだけど、
シェーダのほうがきれいなんだろうか。試せばわかるか。

 似ても似つかないな。

 ついでにアンチェリ。
RenderTargetに画面より大きいテクスチャを指定して縮小して画面に反映する。
Zバッファのほうもテクスチャと同じ大きさにしないと描画範囲が正しくなくなるのに引っかかったぐらい。
 
 これからHDRを試してみる予定。

2011年8月10日水曜日

にっきちゃんシェーダ



 思う存分3Dしたい!
ということで
・解像度を320x240
・ライトなし
・フォグon、Zバッファon
の簡素な環境で動かしてみたが、
オブジェクトを800ほど表示するだけで20FPSぐらいになって話にならない。
オブジェクトは32ポリゴン、テクスチャも16x16と非常に小さい。
 ここからさらにステンシルバッファつけて影つけてなんてしたら死んでしまうんじゃないの。
 
 オブジェクト数はそのままに、6ポリゴンにしたら40FPSになった。
1フレーム4000ポリゴンすら満足に動かんのかい。
 

 とりあえずオーソドックスなシェーダを試してみたが負担が300%増しくらい。
しかも当たらしめのDirectXSDKではシェーダ2.0以降でないといかんらしく、早くも心が折れそう。
 

 面白半分にいろいろ実装してみてる。
面白いがアイデア一本釣りの傾向
 
 環境マップって合計7回レンダリングがいるんか。
1回でもキツキツなのにどうすんだろこれ。しかもテクスチャに書き込み。うーん。

 実装した。死ぬほど重い。
あとそれっぽいように見えて位置関係がずれてる。どっかおかしいんだろう。
これって環境マップなオブジェクトが二つ以上あったら、
死ぬほど繰り返しレンダリングしないといかんのかな。合わせ鏡の原理で。
 鏡みたいに厳密に反射してるわけじゃなく、
鏡の位置にカメラ置いてそこから見える風景をテクスチャに保存、貼り付けて表示するだけだからずれとか気にしたら負けか。

 シェーダを使えば反射方向云々が可能なようだ。
 
 

 トゥーンレンダリングもついでに。真ん中まるいののみ。
 
 そろそろバンプマップやるかとおもったが、画像作るのにフォトショがいるという……。
要検索。→グレースケールからノーマルマップ作る関数があるのでそれでなんとかした。

2011年8月8日月曜日

コミケ80

 2日目 東W-19a
テンパランスランス
にて「ring^-27」完成版と「L.U.X」できているところまで版のセットを配布します。
おそらく500円になりそうです。
よろしくお願いします。
TEMPERANCE LANCE
 
 
 
プログラマブル・シェーダによる積極的なGPUの活用 - @IT

汎用コンピュータであるPC環境では、頂点バッファを使用する方法が一般的だ。これはPC環境ではメイン・メモリとGPUローカル・メモリの間の通信が高コストなためで、頂点データの読み込みと同時に頂点バッファに転送し、あらかじめGPUの近くに移しておくことにより、メモリ転送がボトルネックになるのを防ぐわけである。


一方、ゲーム機として設計されたXbox360では、メイン・メモリから直接頂点データを転送するコストはPCよりもずっと小さいといわれている。


 ぬぅ、驚愕の事実。
じゃあとVertexBufferを試してみるとかえって重くなった。うーん。
DirectX 頂点バッファ

バッファに不規則にデータを書き込む場合は、システム メモリ上に頂点バッファを配置した方がよい。


 ここらが引っかかるのかも。
D3DPOOL_SYSTEMMEMで生成せよ!って意味なのかとおもって試してみたが速度変わらず。
 2Dゲームを作るときは頂点バッファ作ってDrawPrimitiveより
vectorとかでバッファ作ってDrawPrimitiveUpするほうが速いのか。
結局テクスチャ切り替え、レンダリングモード切り替えるたびに描画しないといけないわずらわしさはそのまま。
速度も2DならDIBとたいした差がないのが悲しい。