YouTube をテキトーに眺めて 2:00 就寝。

7:05 起床。もう朝か。納豆とコロッケバーガーを食って燃えるゴミとともに出勤。

7:45 現場ゴミ置き場。今日は久々に面倒そうだ。クサレゴミを出す入居者スリートップ揃い踏み。 でも菊チャン(仮名)がダントツでひどい。勤務時間ギリギリで片付けて館内を清掃。 すると菊チャンの部屋の前にもう一袋クサレゴミがある。 可燃ゴミの袋に缶詰、ペットボトル、空き缶を混ぜるのは彼だけ。その上吸殻まみれだものな。

無断で粗大ごみが出ている件を本部に報告して 10:35 やっと撤収。 イトーヨーカドー曳舟店で体温チェックと手洗い。

11:00 曳舟の部屋に戻る。洗濯機を運転。床の掃除。PC を開く。

12:00 WebGL2 Rendering to a Texture のコードを前回の差分から書いて実行する。フレームバッファーを体で理解しつつある。 いったんおやつ休憩にしたい。さすがに腹が減った。

12:30 コード再開。

  • キューブを三つ並べて描くコード。元のコードを一部ループで囲むのにカウンターを -1 から 1 までとするは賢い。
  • 奥行きバッファーを対応する。理屈はわからないが、テクスチャーをもう一個作って再度 gl.framebufferTexture2D を呼び出す。 関数 gl.framebufferTexture2D の仕事はテクスチャーをフレームバッファーに付け足すことだ。
  • 断片シェーダーもマイナーチェンジしている。面白い色の付け方をする。
  • フレームバッファーの状態が完全かどうかを確認するほうがいい:

    gl.checkFramebufferStatus(gl.FRAMEBUFFER) == gl.FRAMEBUFFER_COMPLETE
    

13:15 フレームバッファーの学習終わり。PC を閉じて昼寝したい。

16:55 起床。ずいぶん眠っていたようだ。相当疲れていたのだろう。 外出。押上駅バス停へ。バスに乗って錦糸公園前へ。

17:30 オリナス錦糸町二階ベンチで休憩。

18:00 タイトー F ステーションオリナス錦糸町店。MJ プロ卓東風戦 5 クレ。 最後のゲーム東三局親は私。三巡目で下家からリーチ。次巡で私も平和を張る。 ドラもない安い手だが親番につき追っかけリーチ。何巡かして私が放銃。 下家の手は役なしの両面待ち。しかし暗刻の九索に裏ドラがモロ乗りして 8000 を失点。 やはりこういうのはダマで構えて様子見がいいのだろう。

ちなみに次巡は配牌が腐って国士に向かうしかなかった。 捨牌三段目辺りで白がみんなの目から四枚見えたのであちゃあという感じだ。 もちろん私のラスで終了。

【SCORE】
合計SCORE:-121.4

【最終段位】
四人打ち段位:闘王 幻球:2

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

【順位】
1位回数:1(12.50%)
2位回数:1(12.50%)
3位回数:3(37.50%)
4位回数:3(37.50%)
平均順位:3.00

プレイ局数:37局

【打ち筋】
アガリ率:10.81%(4/37)
平均アガリ翻:3.50翻
平均アガリ巡目:10.50巡
振込み率:13.51%(5/37)

【9/21の最高役】
・跳満

19:55 カスミオリナス錦糸町店。453 円。クーポン使用。

  • 麻婆豆腐丼
  • とり天のり塩 (3)
  • ブラックチョコ
  • 野菜ジュース (900)

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

  • 絹豆腐 (2)
  • 小粒納豆 (3)
  • 大きなおむすび鮭
  • 大きなツナオニオンパン
  • コッペパンブルーベリー

20:35 曳舟の部屋に戻る。シャワーを浴びる。まだバスタブに湯を張る季節ではない。 風呂から出たら半裸で PC を開いて晩飯の時間。

21:45 メールチェック終了。書類審査が一社通ったが、時刻をよく確認せずに承知したと返信。 スケジュール表を更新するときになって、それはバイトの時間とほとんど変わらないことに気づく。 掃除しまくった直後に面接はキツ過ぎるので、時間を変えてもらうメールを送信。

Google で glFramebufferTexture2D を議論している文章を調べる。ろくなものがない。 やはりいつもの学習に戻るほうがいい。

  • WebGL2 3D Perspective Correct Texture Mapping
    • この記事はもっと早く読めた。透視図法とテクスチャーの基本編の次でいい。
    • OpenGL/WebGL はテクスチャーマッピングでも w 座標を使って遠近感のある補間を行う。
    • GLSL の fract 関数を応用して周期的に色を変えてみる。
    • 頂点シェーダーで手動で w による除算をすると、断片シェーダーに w が渡されなくなり、 その結果テクスチャー座標の補間がおかしくなることになる。
    • OpenGL/WebGL は次の公式で varying 値を補間しているようだ。 ここで ${a, b}$ を頂点とし、値 ${a_w, b_w}$ を頂点それぞれの $w$ 座標成分とする:

      \[out = \cfrac{\cfrac{(1 - t)a}{a_w} + \cfrac{tb}{b_w} }{ \cfrac{1 - t}{a_w} + \cfrac{t}{b_w} }.\]

      ここで ${a_w = b_w = 1}$ を代入して得られる公式は $a, b$ に関する線形補間に他ならない:

      \[\begin{aligned} out &= \cfrac{\cfrac{(1 - t)a}{1} + \cfrac{tb}{1} }{ \cfrac{1 - t}{1} + \cfrac{b}{1} }\\ &= \cfrac{(1 - t)a + tb}{1 - t + t}\\ &= (1 - t)a + tb. \end{aligned}\]
    • 最初のデモは今から見るとひじょうにシンプル。めぼしい点は座標を xyzw で定義するくらい。
    • mult = 20 のデモは頂点位置は変わらないが、色の補間が明らかに違う。
    • fract のデモではビューポートを左右にリサイズするとグラデーションが自然に追従する。

キューブのコードが残ったところで今日は終わり。