VRC6 サウンドを聴きながら WebGL 学習の仕込みを進めておく。

作業ディレクトリーをコピーしたり、画像ファイルを WebGL2 Fundamentals からローカルディスクにダウンロードしておいたりと、コマンドで事足りるタスクしかしない。 シェーダーのコードも書いておこ

  • samplerSize の第二引数は lod を意味する。サンプルコードが水平方向の畳込みを指向しているからと言って、 勝手に y 成分がゼロなのだなと思わぬように。

2:00 を大幅に過ぎてから就寝。

9:40 起床。納豆とおにぎりを食う。涼しいから久しぶりに図書館に PC を持って行って作業をすることを考える。 いや、まだここでいいか。PC を開く。

  • WebGL2 Image Processing
    • main の呼び出しタイミングが Image ロード終了時点に変更。
    • offset などの変数を同一スコープで二度宣言しているのが気になる。前回のコードもそうだった。 var を使うのをやめればいい。
    • 今回 mipmap なし。コードがシンプルで良い。
    • 改造して理解を深める。
      • もみじの画像に馴染みがないので、デスミフに差し替える (回線が細いので URL の確認が中途半端だが大丈夫か?) 画像が水平方向に微かににじんでいるのがこれでわかる。
      • 断片シェーダー outColor の RGB 成分を swizzling して遊ぶ。 体色は白だからほぼ変わらず、ショートケープとペンダントの石の色が大きく変わる:
        • rgba: オリジナル
        • rbga: ローズ(好ましい)
        • grba: オリーブ
        • gbra: アメジスト
        • brga: エメラルドグリーン
        • bgra: サファイア

        Photoshop などと異なり rrga なども可能。琥珀色になる。まあこのくらいにしておくか。

    • 後半の畳み込みに進む。断片シェーダーをほとんど書き換える。特に 9 成分の配列に注意。
    • u_kernelweight は逆数を取ってからシェーダーに渡すべきだろう。
    • 配列の location の取り方に注意。
    • 関数 render の後半に DOM を変更する処理がある。注意。
    • ドロップダウンリストのイベントハンドラーで this を使うので匿名関数の記法に書き換えることはできない。
    • HTML も変更。キャンバスの次に div が来る。

11:55 デスミフのエンボス加工が確認できたところでおやつ休憩。もう腹が減った。 賞味期限が一年過ぎているカップ麺の味は……。

いつの間にか昼寝。15:35 起床。夏の疲れが溜まっているのか。

傘を持って外出。スカイツリータウンに移動。トイレ。 書店で月刊将棋世界などをチェック。名古屋市長が将棋の金をかじるネタがかぶっているのは仕方がない。

押上駅。電車で船堀駅へ。

17:00 セガ船堀店。MJ 幻球乱舞東風。原点攻防戦+チップルール。5 クレ。 前半は良かったのだが、最後の方はスピード負け。ラスが続いたところで撤退。 幻球トータルマイナ 6 だったか。チップは小数点以下。

合計スコア -80.4
平均スコア -7.31

平均順位 2.73 着
トップ 2 回
二着 2 回
三着 4 回
ラス 3 回

アガリ率 20.00% (11)
アガリ飜平均 3.00
アガリ巡目平均 10.91 巡
振り込み率 10.91% (6)

赤ドラと一発にチップがつくことが、タンヤオ仕掛けと門前リーチとの有利さの差にどう影響するのか、評価しにくい。

19:15 退店。雨がまともに降っている。電車で押上駅に戻る。

20:25 ビッグエー墨田業平店。579 円。

  • 小粒納豆 (3)
  • 絹豆腐 (2)
  • メンチカツ&豚焼肉弁当
  • 大きなおむすび鮭
  • コッペパンホイップ&チョコ

20:35 曳舟の部屋に戻る。シャワーを浴びる。風呂から上がって PC を開いて晩飯。 先週の今頃は背中が熱いだのなんだのと言っていた記憶があるが、薄手の毛布を羽織る始末だ。

21:25 麻雀の練習終了。

  • 雀鬼流道場で己のたるんだ心を鍛え直してきた【桜井章一】 - YouTube: 堀内プロが基本的にはしゃべっているだけの回になっている。しかしかなりの価値が実はあると見た。
  • WebGL2 Image Processing Continued
    • テクスチャーバッファー生成部分を小さい関数にまとめる。テクスチャーをニ個生成するから。
    • フレームバッファー投入。ここを理解しないと意味がない。
    • drawEffects() でフレームバッファーニ枚に何かを描画している。 framebuffers[count % 2] が常に最新だ。ドラクエ 5 でレベルアップ経験値を計算するアルゴリズムと着想が同じ(自分にしかわからないメモ)。
    • setFramebuffer(fbo, width, height) は呼び出され方が 2 パターンある。実引数の違いに注意。
    • 今回は gl.checkFramebufferStatus を利用する必要はないので、呼び出しがない。
    • Y 座標が反転するのはキャンバスのみ。
    • UI 部分に jQuery を採用しているが、スクリプトをダウンロードするのが面倒だ。省略する。

久しぶりにブラウザーをビデオ撮影。MP4 ファイルを作成して Twitter 用に最適化。 これは以前シェル関数として実装してあったのを、今ようやくテストするありさま。

WebGL の次の課題は多重テクスチャーだろう。そこで行き止まりになるので引き返して座標変換に移る。