507 日目(曇りのち晴れ)I NEED YOUR HELP
- ドラクエクローン - YouTube: 第二十七話から第三十三話まで視聴。最後の一回で面白くなってきた。
2:05 消灯。今日こそハローワークに行く。ムニャムニャ。
7:05 起床。納豆と米を食う。出勤。
7:45 現場到着。タイムカード代わりの GPS 付き携帯電話を忘れる。あちゃあ。 資源ゴミの処分と館内清掃を済ませていったん取りに戻る。近所で良かった。
10:00 撤収。イトーヨーカドー曳舟店で体温チェックと手洗い。 曳舟の部屋に戻る。洗濯物を片付ける。PC を開いて作業しつつ待機。
- WebGL2 Text - Textures
- 前回までの手法では、テキストが常に画面の最前面に描画されるしかなかった。 そこで、まずは実行時に Canvas 2D でテキストを描画し、 それをテクスチャーにして平面的な幾何に貼り付ける手法を検討する。
- テキストは mipmap を適用するのが自然。
- この課題で初めてアルファーブレンディングが出てくる。
- 透明なものを描画するには、そうでないものと分けてそうする。
gl.depthMaskを理解できるか。- このデモでは奥行きでのソートは言及のみで、実装はしていない。
- 文字の縁がギザギザするのは WebGL に un-premultiply しないように頼むことで解決する。 併せて、ブレンディング関数も差し替える。
- テキストとしてのサイズを一定に保ちたい場合には、遠近法の拡縮を適用しなければよい。 透視図法を理解していないと、この解法を思い付かないということだ。
- テキストの色を変える方法は昨日調べたとおりで正しい。
- コラムにある「曲線を描画することができる特殊なシェーダー」が気になる。 著者は Google 検索結果にリンクして説明を丸投げしている。
11:00 洗濯機が仕事を終える。PC を閉じて物を干す。昼寝。全然眠りにつけない。
12:40 起きる。おやつ。WebGL の解説文を読んでからコードを書こう。
- WebGL2 Text - Textures: 実装する。
- 頂点シェーダーと断片シェーダーが複数ある。シェーダープログラムを複数使うデモとしても役に立つ。
- 著者のライブラリー TWGL には
create3DFBufferInfoなる F 型モデルを生成する関数がすでに用意されている。 gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true)も以前のように必要。textCtxのスコープは大域名前空間である必要はまったくない。gl.depthMaskを導入する版では、いくつかの GL 呼び出しはループの外に置ける。viewXYZの微調整がかなりいい。- 最後のブレンディング調整において、GL 呼び出しで状態を変えることなく、
WebGL2 のコンテキストを
getContextするときに{premultipliedAlpha: false}オプションを明示的に使う手もある。 - テキストの大きさを奥行きによらず一定にするには、最後の拡縮変換で x, y を z で割ればいい。
- 最後から二番目の版。複数の異なる文字列を描画するには、それだけテクスチャーを生成する必要がある。 ただし、シェーダーは変更しないで済む。
- 最後はテキスト色の変更だ。コードの変更内容は想像できる。
- BPLバトル?でモチベ上げる - YouTube: 意外にも外出前に視聴終了。
- 先ヅモありの雀荘にストリート育ちの元プロが正攻法で立ち向かう - YouTube: ざるうどんが美味そうだ。 赤を切る判断にせよ、ツモスーをリーチしたら安目のロンせざるを得ないにせよ、 ルールがゲームにもろに影響している。
14:55 堀内プロのビデオを視聴し終わったところで PC を閉じて外出。 押上駅バス停に直行すると、錦糸町駅行きバスがもういる。しかし私は横断歩道で足止め。ダメだ。 諦めてスカイツリータウン二階に移動。トイレを先に済ませ、書店で雑誌チェック。
16:00 なんとかハローワーク墨田に到着。求人検索。かつて応募した事業所の求人ばかりになってきている。 携帯電話で用語の検索をしようとしたら、カレンダーに祝日が表示されていないことが気になる。 そちらの対処をしたり、なぜかビデオ撮影の方法を模索したりして時間が流れていく。
無理に求人票を印刷して上の階のベンチで吟味。
17:10 いつの間にかブックオフロッテシティー錦糸町店に移動。 『DESIRE』第 21 巻、『ミスミソウ完全版』上下巻、『寄生獣完全版』第 6 巻をそれぞれチェック。 三人いれば勝てると思ったのか?
18:00 タイトー F ステーションオリナス錦糸町店。 MJ プロ卓東風戦 4 クレ。今日の進行はスムーズだ。
【SCORE】
合計SCORE:+29.7
【最終段位】
四人打ち段位:帝王 幻球:5
【9/15の最新8試合の履歴】
1st|---**---
2nd|-------*
3rd|-**--**-
4th|--------
old new
【順位】
1位回数:2(28.57%)
2位回数:1(14.29%)
3位回数:4(57.14%)
4位回数:0(0.00%)
平均順位:2.29
プレイ局数:34局
【打ち筋】
アガリ率:14.71%(5/34)
平均アガリ翻:3.80翻
平均アガリ巡目:12.80巡
振込み率:5.88%(2/34)
【9/15の最高役】
・跳満
ビートマニア段位認定二段。パーフェクトどころか AAA も獲れない。歳だな。 しばらく低段位コースにこだわりたい。
19:50 カスミオリナス錦糸町店。353 円。
- オクラ茄子丼
- とり天にんにく胡椒
- ブラックチョコ
道路横断中に右折してきた乗用車にはねられそうになりつつも次の買い物へ向かう。 携帯電話を持っていると、こういう不測のイベントがトラブルにならないからいい。
20:20 ビッグエー墨田業平店。288 円。
- 絹豆腐 (2)
- おにぎりセット
- カレーパン
- コッペパンジャム&マーガリン
20:30 曳舟の部屋に戻る。シャワーを浴びる。換気扇のフィルターがズレていることに気づき、直す。
風呂から上がって PC を開く。晩飯。
21:45 求人票の束や就労活動報告書などをまとめる。
- WebGL2 Text - Textures:
テキスト色を変えるところまですべて実装。
.fillStyle = 'white'の変更が必須。 - WebGL2 Text - Using a Glyph Texture
- 文字列の内容が動的に変わる場合の描画方法について検討する。
- 文字一つごとにテクスチャーを作成する方針で行く。
gl.drawElementsによる描画。 すると描画が遅くなる。そこでテクスチャーアトラスの技法を思い出す。 - 今回は理論が短いので、すぐにコードに移る。最初の修正はすぐに理解できる。
- 次の出来合いのテクスチャーアトラス。ドラクエ解析ツールで似たようなものを見たことがある。
fontInfoはテクスチャーの作者に聞いて得られるデータだろう。makeVerticesForStringは頂点座標とテクスチャー座標を得る。ただし細部が少しわかりにくい。- テクスチャーアトラス
8x8-font.pngをローカルディスクにダウンロードしておく。 drawScene最後のループの文字列はバッククォートで生成するのがいいだろう。gl.bufferDataにgl.DYNAMIC_DRAWを指定するときだ。
23:05 テキスト終わり。明日は後回しにしておいた回をやる。それ以降は学習順序が定められていないようだ。