===================== 4K Procedual GFX Monitor ======================== ===================== kioku @ System K 2009 ======================== Ver. 0.1 2009.02.01 ■これはなに? 最近ちまたで熱いdemoscene(メガデモ)での 4KB ProcedualGfx(プロシージャルグラフィックス)を製作するための便利ツールです。 GLSLを使ったプロシージャルグラフィックスの作成が簡単にできます。 作ったプロシージャルグラフィックスはスタンドアローンで動作するソースファイルに出力されます。 同梱のVisualStudioのプロジェクトを利用することで、簡単にEXEにすることができます。 また、Link時に圧縮するcrinklerを利用することで、本格的な4KB ProcedualGfxの実行ファイルも 作成することができます。 ■特徴 このソフトは主にGLSLを用いた4KB ProcedualGfxの開発を容易にします。 GLSLの必要なコードを書き、ツールからビルド用のソースファイルがエクスポートされます。 ■内容物 4kgfxmon.exe このソフトウェアの本体 4kgfxmon_safe.exe 非圧縮バージョン(ウイルスソフトに引っかかる方はこちらを) readme.txt このテキストファイル vs.glsl 起動時に読まれるvertexshaderプログラム fs.glsl 起動時に読まれるfragmentshaderプログラム template.txt ソースエクスポート用の元ソーステンプレート 4kgfx.sln スタンドアロンプログラムビルド用のVisualStudio2005ソリューションファイル 4kgfx.vcproj スタンドアロンプログラムビルド用のVisualC++プロジェクトファイル kickCrinkler.bat スタンドアロンプログラムビルド用のcrinklerキックバッチファイル sampleフォルダ いくつかのサンプルを収録(コピーしてつかってください) ■用意するもの エディタ GLSLの知識 VisualStudio (なければExpress Editionをダウンロードしてくる もしくはその他のC++コンパイラ crinkler(ダウンロードしてくる ■使い方 ●最初に・・・ 4kgfxmonではプレビューウインドウ全体に1枚の4角ポリゴンを描画します。 そのポリゴンを"vs.glsl"と"fs.glsl"から作ったVertex/Fragment Programを使って描画します。 たったこれだけですが、いろいろな創意工夫で結構いろいろなことができます。 sampleフォルダの中にあるファイルをコピーしてプレビューしてみてください。 ●プレビューしてみる 4kgfxmon.exeを起動させると自動的に実行ファイルと同じフォルダにある "vs.glsl"と"fs.glsl"ファイルを読み込み、 それぞれVertexProgramとFragmentProgramを作成し、実行します。 "vs.glsl"と"fs.glsl"のファイルがない場合はProgramが作成されないので エラーが表示され、何もプレビューされません。 ●編集してみる 4kgfxmonが起動している間は"vs.glsl"と"fs.glsl"ファイルの更新を監視します。 "vs.glsl"と"fs.glsl"ファイルの内容を変更し「保存」すると、 4kgfxmonはファイルを再読み込みしそれぞれのProgramのリロードを行います。 つまりVertex/FragmentProgramのソースを編集した結果が即座に4kgfxmon上で実行されます。 ソースプログラムにエラーがある場合は画面が黒になり、画面にエラーが表示されます。 再び、エラーがなくなったプログラムは4kgfxmon上で実行されます。 ●エクスポートしてみる エラーがないプログラムができたら、cppソースファイルにエクスポートしてみます。 4kgfxmonのプレビューウインドウ上で右クリックをするとメニューがでます。 メニューから"Export..."を選んでください。 実行ファイルと同じフォルダにtemplate.cppファイルが作成されます。 出力されるソースはtemplate.txtをベースにGLSLのソースが挿入されます。 GLSLソース中のコメントなどはエクスポートには削除されます。 またタブや改行や不要なスペースはサイズ削減のために削除され詰められます。 template.txtは好きなように編集して利用してください。 template.txtがないとcppのソースがきちんと出力されないので気をつけてください。 ●スタンドアローンプログラムをつくる スタンドアローンで動くプログラムを作る場合、まずエクスポートを行いtemplate.cppが 出力されていることを確認してください。 きちんとエクスポートされていることを確認し、4kgfx.slnをVisualStudioで開いてください。 そのままビルドすることでスタンドアローンのプログラムを作成することができます。 (VisualStudio2005/2008で確認) ●Crinklerを使って小さいスタンドアローンプログラムをつくる crinkler [ http://www.crinkler.net/ ] をダウンロードして、 4kgfxのVisualStudioのプロジェクトと同じフォルダにcrinkler.exeをいれてください。 kickCrinkler.batもあることを確認してください。 4kgfx.slnをVisualStudioで開いてください。 構成マネージャから"useCrinkler"を選択して、ビルドしてください。 template.cppをtemplate.objにコンパイルした後で、 kickCrinkler.batからCrinklerを使ってのlinkが行われます。 同フォルダにcompless.exeが作成されていれば成功です。 (Crinkler 1.1aで確認) ●VisualStudioじゃないC++コンパイラでがんばる ためしてませんが、template.cppをtemplate.objにして あとはkickCrinkler.batをやれば、できるような気がします。 template.txtを編集すれば、Windows版だけでなく、 linux版やmac版のプロシージャルグラフィックスが作成可能になります。 ●その他機能 プレビューウインドウで右クリックするとメニューがでます。 Always On Top - 常に手前 4:3 - リサイズ時のウインドウの縦横比を 4: 3に固定します 16:9 - リサイズ時のウインドウの縦横比を16: 9に固定します 16:10 - リサイズ時のウインドウの縦横比を16:10に固定します calc RenderTime... - 10回描画し平均値から描画にかかる時間を計算します(あくまで目安です Export... - template.cppのソースファイルをエクスポートします ■ライセンスなど いわゆるフリーウェアです。商用/非商用での利用は自己責任でどうぞ。 このソフトウェアの出力結果でいかなる被害があったとしても責任を負いません。 このソフトを利用して作られた成果物は利用者の著作物になります。 4kgfxmonとサンプルソースの著作権はkioku/System Kにあります。 ただし、付属するサンプルソースのコードは改変・流用自由です。 不明な点はメールをください。[kioku@sys-k.net] ■バグを発見しました!こんな機能増やして!ファンレター! [kioku@sys-k.net]までどうぞ ■今後 ノイズテクスチャ入力とか欲しいかなぁとかおもってます。あとは時間変数とか。 仕様を決め切れなかったので、今回は保留しました。 あと、気が向いたらmac版の4kgfxmonをつくろうかとでも考えてます。 ■あとがき 最近一部ではなにかと熱い4k Procedual Gfxですが、 意外にハードルは低いのでコレを気にdemosceneに興味を持つ人が増えたらうれしいです。 いやぁそれにしてもシェーダはテキストくわすだけでいろいろできちゃうので 4kとかにはうってつけですねぇ。でわまた。 .kioku / System K