428 日目(曇りのち雨)WebGL Boolean 型の罠にハマる
0:15 郵便受けがゴトリを怪音を放つ。選挙公報が投函されている。こんな時間にどうした。
寝るまで JavaScript のコードを書く。ArrayBuffer と DataView を機械的に導入すれば良さそうだ。
1:40 頂点座標、法線ベクトル、テクスチャー座標、等々の構造体配列を ArrayBuffer と DataView で表現し直す作業終わり。
今晩はもうダメだ。
朝方に股がかゆくて目が覚める。かきむしって二度寝。
9:50 目が覚める。しかし体がだるくて起き上がれない。月曜朝限定で筋力が衰えている感じだ。 納豆とミニおにぎり二個を食す。部屋の床の汚れが目立つので雑巾をかける。
10:30 PC を起動する。
11:35 JavaScript のデバッグ。ランタイムエラーが出ないところまで終わる。 画面に出力される絵は、旗竿周りしか描画されていない。 ということは、テクスチャー周りしか失敗していないことになる。まずまずだ。
13:15 旗の絵が出る。旗の色と背景色が同じならば描画されていないように思うものだ。 これで残りはテクスチャー読み込みが異常であることがわかった。
13:40 テクスチャーロード関数と gl.uniform1i に undefined を渡していたバグを修正したらまともな絵が出る。
しかし旗竿の specular が意図通りでないことに気づく。オリジナルは鈍い金色に見えるのに骨みたいな質感だ。
14:05 おやつ休憩に入る。
- 徳島県の猛者と打った徳島式3人麻雀がヤバい - YouTube: これはほんとうにヤバい。ルールが頭に全然入らない。コメント欄の人々はついていけているようだが。 このビデオは麻雀が学問ならば貴重な資料になるだろう。
もう少しデバッグする。gl.enableVertexAttribArray を配列ごとにコメントアウトして原因を絞る。
やはり specular のコメントアウトでマシになるからこれ周りが原因だと思う。
15:15 わからん。外出する。忘れ物をしたのにすぐ気づいてよかった。
イトーヨーカドー曳舟店で体温チェック&トイレ。押上一丁目バス停に移動。錦糸町駅行きに乗る。
錦糸町駅バス停で降りてハローワーク墨田へ移動。気休めの求人検索をする。 回線が安定していて求人票を印刷できるから、求人探しだけでもここに来る意味はある。 しかし応募できる求人がほんとうに少ない。二階のベンチで休憩。
17:15 退庁。ブックオフロッテシティー錦糸町店に移動。 『ハンチョウ』第 11 巻と『銀と金』神威編後半をチェック。
18:00 タイトー F ステーションオリナス錦糸町店。MJ プロ卓東風戦 4 クレ。 今日は珍しく計算外のことがまったく起こらない。
【SCORE】
合計SCORE:+81.9
【最終段位】
四人打ち段位:覇王 幻球:10
【6/28の最新8試合の履歴】
1st|---*---*
2nd|-*---*--
3rd|--*-*-*-
4th|--------
old new
【順位】
1位回数:2(28.57%)
2位回数:2(28.57%)
3位回数:3(42.86%)
4位回数:0(0.00%)
平均順位:2.14
プレイ局数:34局
【打ち筋】
アガリ率:23.53%(8/34)
平均アガリ翻:3.50翻
平均アガリ巡目:10.38巡
振込み率:2.94%(1/34)
【6/28の最高役】
・倍満
19:45 カスミオリナス錦糸町店。369 円。
- オクラ茄子丼
- ミニメンチカツ (2)
- ブラックチョコ
20:05 ビッグエー墨田業平店。394 円。
- 木綿豆腐 (2)
- 小粒納豆 (6)
- 大きなおむすび鮭
- ソーセージパン
- コッペパンジャム&マーガリン
20:15 曳舟の部屋に戻る。シャワーを浴びる。雑巾干しっぱなしだったか。
風呂を出て仕事用携帯電話を充電し始める。PC を稼働。 豆腐を食いながら家計簿や日記をつける。晩飯および麻雀の練習。
21:40 食事など終了。冷蔵庫に板チョコが一枚余分に入っているが、いつ食い忘れた?
- #642 サイレントヒル SILENT HILL オープニング曲 ギター - YouTube
- 仙台の雀荘で強者を集めて、誰が本物か分からせてくる - YouTube: 仙台地区最強の雀士を堀内プロ自ら招いて卓を立てる。たちばな三段は再登場だ。
23:15 WebGL のデバッグ。色々と確かめたが、DataView.setUint8 に 255 や 192 を渡す箇所で
255/255 や 192/255 を渡すと手本のイメージとほぼ同じものが得られる。
ということは gl.vertexAttribPointer 周りが原因か。
MDN のヘルプのデモコードによると、引数 normalized の値は gl.TRUE や gl.FALSE ではなく true や false を想定しているらしい。
文書には GLboolean 型とあるが、これは違うということになる。汚い罠だ。
今晩は時間がもうないので、コードを浄書しておく。エラーコードを例外に置き換える。
日付が変わる直前に雨が降ってくる。