*すうがくはいくらやってもわからない* このページをアンテナに追加 RSSフィード


↓昔のTOPメニュー引っ張り出してきました↓

  ・旧メニュー

・新メニューは暇あるときに作ります

・以下このblogの主成分



なのは/バイオリン/アニメ/アイドル/数学

4月〜6月のアクセス上位コンテンツ
狼と香辛料AA集 主にホロ。   2  3
賭博覇王伝 零"一桁上がりの法則"について
魔法少女リリカルなのはStrikerS 第19話「ゆりかご」(画像つき)

サイト全体のアクセス上位コンテンツ
School Days アニメ版 第01話「告白」
俺がSchoolDaysのアニメに望むもの。
なのはの敵が大杉で判別できない人へ(修正版)
魔法少女リリカルなのはStrikerS 第19話「ゆりかご」(画像つき)
ツンデレって微分不可だと思う。
狼と香辛料AA集 主にホロ。   2  3
魔法少女リリカルなのはStrikerS 第23話 「Stars Strike」
イプシロンデルタ覚え書き
 

↑昔のTOPメニュー引っ張り出してきました↑



2011-04-18

スクリプトでパスを複数回繰り返す

あらすじ:ラジアルブラーを複数回かけたいけど、パスを手動で書くのよりいいのがあるんじゃないのか?と模索する

描画の制御が出来るスクリプトってものがMMEにはあります。MME落としたらREFERENCEがついてくるのでそれを参照!そのなかに、スクリプトのループ系の命令がいくつかありました。

  • LoopByCount=(パラメータ名)
  • LoopEnd=
  • LoopGetIndex=(パラメータ名)

適当に int Count = 3 とか作っておいて、LoopByCount=Countとか置いてやると、それ以降でLoopEnd=までをCount分だけ繰り返してくれるようだ。しかもLoopGetIndex=パラメータとか置いてあげると、そのパラメータに値を受け渡すことが出来るみたい。

ということは、ラジアルブラーのパワーを変えつつ複数回描画するには別に手動で似たようなパスを複数作る必要ないんじゃないか?と思い、作成したのが以下のスクリプト

float COUNT = 3.0f;

//-------------------------------------
// ラジアル3回描画
//-------------------------------------
technique Radial <
  string Script = 
    "RenderColorTarget0=ScnMap;"
    "RenderDepthStencilTarget=DepthBuffer;"
      "ClearSetColor=ClearColor;"
      "ClearSetDepth=ClearDepth;"
      "Clear=Color;"
      "Clear=Depth;"
    "ScriptExternal=Color;"
    "LoopByCount=COUNT;"
    "LoopGetIndex=blur_power;"
      "RenderColorTarget0=;"
        "RenderDepthStencilTarget=;"
        "ClearSetColor=ClearColor;"
        "ClearSetDepth=ClearDepth;"
        "Clear=Color;"
        "Clear=Depth;"
        "Pass=Radial;"
    "LoopEnd=;"
    ;
> {
    pass Radial < string Script= "Draw=Buffer;"; > {
        AlphaBlendEnable = FALSE;
        VertexShader = compile vs_3_0 VS();
        PixelShader  = compile ps_3_0 PS_Radial();
    } 
}
      "RenderColorTarget0=;"
        "RenderDepthStencilTarget=;"
        "ClearSetColor=ClearColor;"
        "ClearSetDepth=ClearDepth;"
        "Clear=Color;"
        "Clear=Depth;"
        "Pass=Radial;"

を三回描画して、COUNTの値をradial_powerに受け渡してみた。内部でradial_pwoerを*20.0fとかしておけば、ラジアルパワー20.0f,40.0f,60.0fで描画できてるはず!

しかし結果は…。

f:id:ichigolgi:20110418235649j:image

だめじゃんorz

何故かわわかりませんが・・・。

比較の為に次はラジアルを複数パス作ってやってみます。今日はここまで…。

スクリプトの理解は深まったのでよしとしよう…!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/ichigolgi/20110418/1303138873


最近の見出し
日記内サーチ



カテゴリ別最新記事
生活
プログラミング
MME
Connection: close