GM:S Shader Samples に追加


Greyscale と Mosaic を追加。



参考:categories/glsl_es/
関連:GMS/シェーダサンプルをテスト

元はフリーで公開されているシェーダ集からだが、元になったシェーダ集のサンプルは結構大雑把というか、テンプレを使って作成したっぽいのだが、テンプレに載っている使わない変数まできっちり宣言しているため、おいこれ一見すると使わないのに全ソースに毎回宣言されているのだけど何の意味があんのよ???とか思ったらホントに使ってないでやんの、まったく。

元になったシェーダ集は対象を Views にしてあるけれど、これもトリッキーというか、先に surface を作ってこのテクスチャのポインタと views とリンクさせて Draw GUI で描画してる。

この処理についても surface が消えた時の処理を省いてあるし、そもそも application_surface への描画結果をシェーダに渡すだけならば views 使わないで直接 application_surface のポインタを渡せばええんちゃうか、これを試したらヤッパ出来たしこっちのほうがサンプルとしては簡潔に書ける。

GM:S のシェーダに関して、シェーダをある程度自分で書くこと前提の場合ならば、悪くない。GLSL ES について、ホントに互換性あるんかなと疑心暗鬼で試していたが、WebGL での動作が確認できないサンプルも、修正を施せばちゃんと動く場合が多い。まだ検証が十分とは言えないが、単純な効果についてはおそらく確かな互換性があるのだろうと考えている。この辺りの主張は地道にサンプルを検証して、動作確認例の積み上げを増やしていければより確かなものになると思う。シェーダに付いては、いずれ prester.org/gms の方でまとめ記事を書く予定だが、まだしばらく Hugo の方でテンプレ利用して記録を増やす作業が続く予定。WP の方へまとめ記事として書けるようになるのは秋か冬ってところか。気の長い話ではある(助手が欲しい

一方初心者向きの MMF2/CF25 の方はシェーダを提供してくれる人が現れれば、シェーダの使い勝手に関してはかなり楽だ、少なくとも GMS よりは楽だと思う。だけど MMF2/CF25 の方はプロパティ含めてシェーダを作る作業が GMS より大変な気がする。しかも HLSL だからエクスポートすると互換性無い

GM:S は基本的に GML が使えないとできることに制限が出てきてしまう場合が多い。GML 無しでも確かにある程度まではゲームを作ることができるだろうけれど、現在の GM:S は GML からアクセスできるけれど GUI からはアクセスできない機能が多数あるため、GML 使わなかった場合は相当機能制限されているということでもある。

GM:S 遣いは GML を使い込む覚悟がないと機能的にもったいないと感じる。GM:S ユーザは開発言語への興味が必然的向くようになっているため、本来プログラム的思考に伸び代がある開発者の場合、特にその本領を発揮できるツールなのだと思う。同時にそこで挫折するユーザも多かったのではないかと(英語圏でも日本語圏でも一定数のユーザはそこで挫折があると思われる)。

GM:S については、買った当初から想像していたよりも GM:S はプログラマ寄りのツールだという考えへ至るようになった。MMF2/CF25 + XLua という特殊なスクリプト環境で今から作ろうという人が居る場合、GM:S へ移ったほうが良いとアドバイスはできる。MMF2/CF25 + XLua できっちり作れる人の場合、GM:S への移行は正解だろう。経験は無駄にならないけれど、出来上がったアプリは GM:S で作ればエクスポートの幅が圧倒的に広がる。


Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です