gl-core導入などもあり、pbrマテリアルやGPUインスタンシングなどの新規オブジェクトの採用もあり以前よりは今時な絵作りなどもしやすい環境になりつつあるようです。そもそも論として3D向けのオブジェクトならアトリビュート・パラメーターの設定を大量にしなければならない割にデータ保存がめんどくさかったり、目に見えないCONTEXTを用いてオブジェクトを繋ぐ(パッチをほとんど繋がない)というMaxの常識から大幅はかけ離れたパッチング体験になっています。CopilotやCodeGPTなどを利用しつつ、jit.gl部分は全部自動生成すれば良いんじゃないかと試してみました。結果上記のようなパッチが生成され、以下のような画像をつくることができました。コードにはオブジェクトの生成・削除オブジェクトのアトリビュート設定オブジェクトの関数コールオブジェクト同士の接続が含まれており、Maxの基本的な操作は叶っているかなと思います。整理してないのでご参考程度です。#maxmspポストプロセスについての本を読むと、トーンマッピングといった自動的に明るさや色味を調整する技術がある事がわかりました。ゲームなどでステージが切り替わった際にある程度自動的に明るさを調整してくれるようなものです。今回はjit.gl.pix上のみで動作するオートルミナンスの試作をつくったので公開しておきます。(jit.gl.pix)今回は複数のnearestや関数を利用するためcodeboxで書きました。paramは直接codebox内部で宣言する方法もありますが、一旦codeboxの外部で受け取るようにすれば、codeboxで同様の変数名を利用できます。指定もしやすいのでおすすめです。入力されたテクスチャから代表的な5ピクセルを取得し、gray関数から明るさ(graymean)を求めています。この処理は本当は画面全体に行いたいのですが効率化の観点から擬似的に行なっています。ピクセルシェーダー毎に同じ処理をしてしまっているので、外部で計算できると良さそうですが、jit.gl.pixで行ううまい方法を思いつかなかったのでこのような書き方になっています。paramで設定した目標の明るさとの差分を取り、それを入力されたピクセルに足し合わせています。responseの値を使ってゆっくり変化するようにしています。#maxmsp山田監督作品もさる事ながら、そのほかの映像作品・ゲーム・VJなどでもよく見た、2010年代にかなり流行ったポストエフェクトと言えそうな色収差です。Code右上では、色のズレ方を計算しています。snormから取得した値からlengthで値を取ってしまうとアーティファクトが発生するのでabsにするのが肝でした。3つのsampleを用意し、色のズレを反映した位置からピクセルを取得します。下の方の処理は、ズラした色の色相を回転させるために120度づつズラしたsin波を合成(三相交流)して位相で色味を調整できるようにしています。RGBのズレだけだと画面の色が偏ってる場合に効果が発揮されない場合があるので色相変更できると良い感じです。exportcodeすればGLSLでも利用できるので、Max8以外の環境をお使いの方もご参考ください。#maxmsp山田尚子監督作品でも多用される画像エフェクトの一つである周辺減光処理こと、ビネットを平ハウス物語のVJ向けにjit.gl.pixで実装したので残しておきます。ポストエフェクト初心者の方にもおすすめです。jit.gl.pix画像の右側が主にビネット処理の内容です。ビネットの円のサイズ。円のエッジ付近で黒くなるまでの係り具合・勾配を調整します。円の縦横比を調整できた方が都合が良かったのでつくりました。真円にしたり引き伸ばしたりで使えます。smoothstepにて円のエッジをなめらかに繋ぐ処理をしています。jit.gl.pixはexportcodeすればGLSLのコードにもなるので、Max以外の環境の方もご参考ください。LabsというAIで全天球画像生成を行えるサービスをSNSで見かけました。利用してみると単語入力だけで簡単に全天球画像(jpg)を生成してくれたので、それをjit.gl.environmentで利用してみました。パッチjit.gl.environmentは横長の全天球画像を読み込んでjit.gl.skyboxに合う形式でテクスチャ出力してくれるので、繋げているだけです。