雅夢を聴きながら GLSL のリファクタリングをやる。次のような頭を使わぬ作業を進める:

  • デバッグのために MathJax をいったんコメントアウト。
  • float a; float b; のような変数は vec2 に置き換える。 関数 clamp などはオーバーロードがあるので問題ない。 いっそ、そのおかげでこのリファクタリングができる。
  • シェーダーソースにハードコードしてあるグローバル定数を uniform 変数に変更する。
  • その uniform は JavaScript から値を仕込むことにする。 実引数は HTML のタグの独自属性の値を JSON.parse して得ることにする。 JSON と GLSL とで浮動小数点数リテラルの仕様が異なるので注意。 例えば .4070.407 と書き換える。

    <div class="item" id="DoubleCubicSeat" uniform='{"point": [0.407, 0.720]}'>
        <!-- ... -->
    </div>
    
  • 一つのシェーダープログラムに対して twgl.setUniforms を二度呼び出す。 一方の呼び出しはプログラムすべてで共通の uniform を与え、 もう一方は現在のプログラムのみに uniform

2:20 上記対応をほとんど終わる。あとは円弧系で長いコードの核心部のリファクタリングが残っている。 今晩はもう終わる。と言いつつ YouTube を少し検索して遊ぶ。小原孝先生のチャンネルを発見してしまう。 すごい時間泥棒。これは睡眠時間がマズイ。早く寝よう。

12:05 起床。寒くて起きられない。納豆と米を食い、カップ麺も食う。 PC を起動。昨日のセガメドレーをダウンロードできていない。回復する。 Pytube の更新まで必要とするものだったか。 ファイル容量が 11MB もあるのでプログレスバーの途中が表示される。

フィレットの GLSL コード。変更がすごく多い。平面曲線だからといって vec2 を多用するとハマる。 ベクトル積が必要になるので z 成分がゼロの vec3 を最初から使うのが正解。

ずっとコード修正。ベクトル積に置き換えたいが、意味のわからない式があるのでいじれない。

16:20 外出。

スカイツリータウン二階。三省堂書店で週プレとアエラをチェック。梅原プロを召喚した人物、興味深い。 トイレ。携帯電話をケツポケットから取り出すときに不在着信に気づく。 バス停へ移動する途中のエスカレーターで確認すると、バイト先の本部からの連絡だ。 粗大ゴミが今週中に一件出るのでよろしく、か。返信しないが承知した。

押上駅バス停。バスに乗り錦糸公園前へ。

17:30 オリナス錦糸町二階ベンチ。休憩。今日全然見ていない Twitter をチェック。

18:00 タイトー F ステーションオリナス錦糸町店。MJ プロ卓東風戦 4 クレ。 序盤は良かったのに、生牌絡みの同じミスを二局連続で犯したら流れが変わってしまった。

【SCORE】
合計SCORE:+52.1

【最終段位】
四人打ち段位:覇王 幻球:9

【12/20の最新8試合の履歴】
1st|-*------
2nd|*-*--**-
3rd|---*---*
4th|----*---
old         new

【順位】
1位回数:2(22.22%)
2位回数:4(44.44%)
3位回数:2(22.22%)
4位回数:1(11.11%)
平均順位:2.22

プレイ局数:43局

【打ち筋】
アガリ率:27.91%(12/43)
平均アガリ翻:2.83翻
平均アガリ巡目:10.58巡
振込み率:9.30%(4/43)

【12/20の最高役】
最高役のデータがありません。最高役は、跳満以上のアガリが対象となります。

20:10 カスミオリナス錦糸町店。481 円。

  • 八宝菜丼
  • イカリング唐揚げ
  • ブラックチョコ
  • 野菜ジュース (900)

20:35 ビッグエー墨田業平店。301 円。

  • 絹豆腐
  • 小粒納豆 (3)
  • 大きなコロッケパン
  • シーフードヌードル
  • コッペパンジャム&マーガリン

20:45 曳舟の部屋。バイトの携帯電話の充電を仕込む。入浴。

21:20 風呂から出る。PC 前に座る。晩飯。

22:10 インターネットの時間とする。メールなし。

いったん現在の成果をビデオ収録し Twitter に投稿する。残り時間でシェーダーソースをひたすら書き換える。 ほんとうに面倒くさい。