インターネットの接続を切って麻雀の練習をして 1:45 消灯。お疲れちゃん。

7:05 起床。納豆と米を食う。ゴミ袋を処分してから出勤。

7:45 現場。敷地内に吸殻が散乱しているわ、植え込みに衣類や靴が転がっているわで混沌としている。 可燃ゴミもひどい。菊チャンのタバコと誰かの粗大ゴミとのコンビが強力だ。これは時間内に収まらない。

10:30 業務終了。撤収。

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

11:00 曳舟の部屋に戻る。白ブリーフ一丁になって PC に向かう。今日は暑い。

  • WebGL2 Drawing Without Data 続き
    • 雨を降らせる。最初のバージョンはきわめて単純なアニメーション。
    • 前回のデモもそうだが、変数 vertexIdLoc を参照していない。
    • 次とその次のバージョンで x 座標をばらつかせる。雨粒の大きさと個数を変更する。 シェーダーには乱数がないということをよく覚えておく(当然だ)。
    • 大きい円を描くデモ。VBO を使わないコードのほうが gl.TRIANGLES を描くロジックがわかりやすいというのが面白い。 応用問題として、これの gl.TRIANGLE_FAN バージョンを実装してみるといい。 あと、なぜかアニメーションの残骸がある。
    • 数珠を描くデモ。defineconst が入り交じっている。後者に統一。

12:05 おやつ休憩。

14:00 昼寝。

16:30 起床。外出。押上駅バス停。来た途端バスが到着。錦糸公園前まで移動。

17:10 オリナス錦糸町。二階ベンチで携帯電話を使って情報収集。Windows 11 はぜひインストールしたい。 しかし今の PC で行けるかまだ確認していない。古いからダメだろうか。

18:00 タイトー F ステーションオリナス錦糸町店。MJ プロ卓東風戦 6 クレ。 トップ後のゲームで放銃してタイムが切れるのは MJ あるある。

【SCORE】
合計SCORE:-211.8

【最終段位】
四人打ち段位:十段 経験値:-216.6

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

【順位】
1位回数:1(12.50%)
2位回数:0(0.00%)
3位回数:3(37.50%)
4位回数:4(50.00%)
平均順位:3.25

プレイ局数:41局

【打ち筋】
アガリ率:12.20%(5/41)
平均アガリ翻:3.80翻
平均アガリ巡目:13.40巡
振込み率:36.59%(15/41)

【10/5の最高役】
・跳満

次回、ラスで降格と同時にプロ卓追放。今日は他家の高いアガリが頻出してついていけなかった。 リーチが宣言されても安いだろうとたかをくくってドカーンという局が複数あった。

19:50 カスミオリナス錦糸町店。361 円。

  • オクラナス丼
  • 唐揚げ (2)
  • ブラックチョコ

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

  • 絹豆腐 (2)
  • チキンカツバーガー
  • カレーヌードル
  • チョコチップメロンパン

20:20 曳舟の部屋に戻る。シャワーを浴びる。

風呂から出たら晩飯を食いつつ PC を開く。

21:30 メールチェック。返信なし。これは不採用かな。

  • WebGL2 Optimization - Instanced Drawing
    • 同じものを複数個描画するのに有利な機能がある。
    • gl.vertexAttribDivisor, gl.drawArraysInstanced を使う例は今回のものが基本的な形だ。
    • 今回は JavaScript 側のデータの用意がキモなのだろう。
    • コード 1 はベースとなる複数回呼び出し版。これはコメントするところがない。
    • コード 2 での変更点。まずシェーダーの一様変数を廃止して通常の属性とする。
    • JavaScript 側で行列すべてのデータを単一の Float32Array に詰め込む。 このクラスにはコンストラクターが二種類ある。 今回新たに使う方法では既存の配列オブジェクトのビューを定義することになる。 ビューというか、 C/C++ のポインターと考えるほうがしっくりくる。
    • gl.createBuffer で行列用のバッファーを生成する。
    • gl.vertexAttribPointerstride, offset にゼロでない値を渡して 5 回ループする。
    • 色も同様。ただし配列を作成するのは一度で済ませる。 gl.vertexAttribPointer, gl.vertexAttribDivisor を呼び出すのに 5 回ループしない。
    • 行列バッファーだけは gl.drawArraysInstanced を呼び出す直前に gl.bufferSubData する必要がある。
    • コード 3 で投影やカメラを設定する。この変更は今となっては微調整のようなものだ。

23:20 Instanced Drawing 終了。

  • WebGL2 Indexed Vertices
    • gl.drawElements について。
    • gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer); のようにしてバッファーを初期化する。
    • キューブに関する注意はそのとおりだろう。色ではなく法線を考えれば正しいことはより明らかだ。

23:50 Indexed Vertices 終了。