ステンシル、もう少しで第一目標のシーンを描画できそうだ。少し粘る。

0:40 ステンシルデモを撮影する。残り時間は YouTube で歌謡曲漁りでもする。

夜更けになって回線がマシになるのは勘弁願いたいが、贅沢を言っていられる身分ではない。

2:15 消灯。

7:05 起床。超眠い。納豆と米を食う。出勤。

7:45 現場。今日はゴミ出しがない。軽くクサレゴミが出ているが、余裕を持って処理する時間がある。 館内を清掃。階段の溝は設計が良くないのではないか。水が流れない。靴底が薄くなったように感じる。

10:10 撤収。何か暑い。

イトーヨーカドー曳舟店。体温チェックと手洗い。

10:40 コモディイイダ東向島店。1100 円。メンズスニーカー。青い。 ついでに厚手のダンボールを一枚失敬する。青森りんごか。昨晩井上陽水の「氷の世界」を聴いたのが効いた。

曳舟の部屋。洗濯を開始。PC を開いて待機。インターネットを見て回る。

11:25 洗濯物を干す。今日は WebGL で正多面体を描画する。これは基本的な幾何形状なので習得する。

Platonic/platonic.h at master · robbykraft/Platonic · GitHub に計算済み正多面体の頂点データを発見。座標変換はあとで考える。 私はシェーディングの習作モデルとしての利用を想定しているが、このデータは glDrawElements 向きだ。 見かけ上頂点が共有されていても、法線が面ごとに別々なのでインデックスは使えない。 つまり、こちらのデータを利用する限りは、利用者が法線を個別に計算する必要がある。

12:00 おやつ休憩。

13:40 WebGL2 Fundamentals のライブラリー m4 にある機能を用いてベクトル計算を実装。 正四面体のシェーディングが成功したことを確認。

const positions = [
    ...v2, ...v1, ...v3,
    ...v2, ...v3, ...v0,
    ...v2, ...v0, ...v1,
    ...v3, ...v1, ...v0];

function calcTriangleNormal(p1, p2, p3) {
    return m4.normalize(m4.cross(
        m4.subtractVectors(p2, p1), m4.subtractVectors(p3, p2)));
}

const n213 = calcTriangleNormal(v2, v1, v3);
const n230 = calcTriangleNormal(v2, v3, v0);
const n201 = calcTriangleNormal(v2, v0, v1);
const n310 = calcTriangleNormal(v3, v1, v0);
const normals = [
    ...n213, ...n213, ...n213,
    ...n230, ...n230, ...n230,
    ...n201, ...n201, ...n201,
    ...n310, ...n310, ...n310];

14:00 昼寝。

16:55 起床。疲れがたまりすぎている。外出。

押上駅バス停。乗車して錦糸公園前へ移動。

オリナス錦糸町三階。トイレ。いったんゲーセンに降りるが時間が早いので外に出て空気を吸う。 外のベンチの前で突っ立って携帯電話をチェック。特になし。

18:05 タイトー F オリナス錦糸町店。MJ プロ卓東風戦 4 クレ。

最後のゲーム。オーラスをトップ目で迎えたところ上家からリーチ。 オリでもおそらく問題ない場面と判断したが、運試しにテンパイに向かってみる。 さいわいラス目の下家は点棒が少なく、私が逆転ラスに転落する可能性はかなり小さい。 よくわからない四筒を切って張ったところでロン。和了者をトップに押し上げて私は三着に転落。 こんなものだろう。

【SCORE】
合計SCORE:+65.4

【最終段位】
四人打ち段位:強者 幻球:9

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

【順位】
1位回数:2(25.00%)
2位回数:2(25.00%)
3位回数:4(50.00%)
4位回数:0(0.00%)
平均順位:2.25

プレイ局数:42局

【打ち筋】
アガリ率:33.33%(14/42)
平均アガリ翻:2.79翻
平均アガリ巡目:12.07巡
振込み率:9.52%(4/42)

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

20:10 カスミオリナス錦糸町店。400 円。クーポンゲット。

  • 明太からマヨ丼
  • ブラックチョコ (2)

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

  • 絹豆腐
  • 黒コッペ
  • 大きなコロッケバーガー
  • あんパン

20:40 曳舟の部屋。郵便受けに郵便局からの不在票がある。バイト先から何か来ていたらしい。 夕方、もっと寝坊していれば受け取ることができた。 これで明日向島郵便局へ取りに行く用事が発生してしまった。

シャワー。晩飯。

21:50 メールボックスからインターネットチェックを開始。

23:30 正四面体のコードに TWGL を導入。コード量がぐっと減る。

23:55 コツがつかめたところでコードをいったん commit する。もうこんな時間か。