0113
夕方くらいから精神の健康を急激に損ない、ずっとボンヤリしたり塞ぎ込んだりしていた。これはちょっとよくない徴候かもしれない……。こうなると年単位で失われる可能性がある。
寝ます。自動思考ばかりで疲れた。
夕方くらいから精神の健康を急激に損ない、ずっとボンヤリしたり塞ぎ込んだりしていた。これはちょっとよくない徴候かもしれない……。こうなると年単位で失われる可能性がある。
寝ます。自動思考ばかりで疲れた。
なんか眠くてずっと寝ていた。肩も凝ってるしストレスかなあという気はする。
Spectreはタイルの枝刈りがどうしてもうまくいってなくて悩んでたのだけど、ようやく不具合を見つけて修正した。ここのロジックはなんか不必要にごちゃごちゃしているのでなんか考えたほうがいい気がする。明日。
あといい加減木の拡大を考えなくては……。
仕事のことは、ようやくすこし冷静になってきた気がする。まあそれでも、元に戻せることと戻せないこととはある。
寝る。3連休だったのは本当に不幸中の幸いだった。
Spectreの実装をしている。ツリーの拡大はまだ目処が立っていないが、大工事をしている。R*-Treeにもタイルを保存すると二度手間なので、普通にSpectreツリーを(領域で枝刈りしながら)トラバースするイテレータを実装することにした。今回の場合、Spectreツリー自体がある程度空間的な局所性に対応しているから、一般化されたアルゴリズムでそれ用の木を作らなくてもまあまあ機能するはずなのだ。
実装はあらかた終わって一応動いているけど、枝刈りの判定ロジックに誤りがありそうに見えるので調べている。それはまた明日。
趣味に没頭している間はいいけど、ふとしたときに仕事のことを思い出しては暗い気持ちになる。しんどいなあ。なんでこんなことになっちゃったかなあ。よく寝たほうがいいのだろうが……。
鬱々としていた。小難しいこと考えなくていいコーディングだけは少しやった。
上司と1 on 1で諸々話した。まあ、とにかくしんどくなっちゃってると視野が狭くなるから、しんどさを緩和しましょうということだった。それはそうだなと思う。耐えだって、少なくとももうしばらくは耐えるつもりではいたのだから。
Spectreの実装は今日は何も進まず。ただツリーを中途半端な形で持てるようにしようということだけ考えた。でも問題はそのあとどうやって木を育てるかなんだよね。ふーむ。
寝ます。3連休、ゆっくり寝て気持ちを楽にしたい。
同僚に嫌われており、まあ嫌ってるのは知ってるんだけどもう少し取り繕ってくれないと辛い。HRTみたいな標語は、あったらあったで空虚だなと思うが、あればこういうのはマシになるんだろうか?
別に僕が悪くないと思っているわけではない。普通に力不足なのはわかっている。気配りができないから新しい何かを呼び掛けることができないのだ。そういうことを求められないように環境を変えるべきなのかな。
SpectreはR*-treeのパフォーマンスを改善できた。envelopeの計算をメモ化するユーティリティを挟んだのと、タイル描画時の色の決定をシェーダー側に移した。後者は別にそれほど効いてないと思うが前者でとりあえず描画自体については満足できるパフォーマンスが得られている。やっぱりbounding boxの計算が遅かったんだな。
あとは動的にタイルを継ぎ足すアルゴリズムを実装すれば完成する。が、それもまた大工事になるだろう。特にパフォーマンスを重視するなら。まずどうやれば良いのかからわかっていない。
寝ます。ハー。気が塞ぐな。でも明日が終われば3連休だしな。
なんか急に設計を考え直す必要が生じたため急いでAPI仕様を書いたりドキュメント書いたりした。こういうのが結局一番心が落ち着くし、自分が機能できてる実感が持てる。
Spectreはレンダリングの最適化に悩んでいる。とりあえずカメラ位置に応じてR*-treeからタイルを取り出すことはできたけど、パフォーマンスが悪い。タイルをさらにインスタンスバッファに詰めるところとかが遅いのかなという気はするのでそこにテコ入れすることを考える。色付けるのとかはシェーダでやれるはずだからな。
あとR*-treeへの挿入が遅いのも気掛かりだけど、これはタイルをすこしずつ追加するアルゴリズムが作れればマシにはなるはず。あと思ったよりメモリ消費が多いのも気になってる。課題が多い!
寝ます。
昨日よりはだいぶ元気だった。決めなければいけないことがいろいろあって大変。
Spectre見るやつ(仮)は、ピンチジェスチャーを修正したので描画の効率化に入ったのだけど、Clineにやらせようとしたら全然うまくいかなかった。LLMって一度変な方向に入ると軌道修正できなくて迷走してしまう傾向があると思うのだけど、今日も「直ってないですよ」って8回くらい言ったらできもしないのに実行結果を見たら原因がわかりました的なことを言うようになり、ああパワハラで心を病んでしまった……と思った。単体テストなどで自分の正気をつねに確認できるようにしながら実装を進めさせる必要があるのかも。まあそれも試したけど今度は普通に実装ができなくなったのでダメなのかも。難しいね。
寝ます。明日は自分で描画最適化を実装する。ただ、描画を最適化してもそもそものタイル生成も早晩ボトルネックになると思われる(1つあたり16byteとはいえ)のでそこの遅延生成なども考えなければ。まあそれは追々。
仕事初めだったがメチャメチャ調子が悪かった。気圧という噂もあるが、気圧が体調に及ぼす影響をあまり真面目には信じていないので、どう考えたものか悩む。
とりあえずコードレビューをした。明日はもうちょっとプロジェクト管理的なことをしたい。
Spectreは昨日2Dレンダリングにしたら動かなくなった原因がただのシェーダのミスだったので直した。あとカメラズームとパンをClineに実装させている。スマホ対応がちょっと難しい。
次にやるべきは描画の軽量化で、というのも今は計算済みのエンティティを全部spawnしているが、普通に画面に映るものだけにしないと効率が悪すぎる。スマホではたぶん動かせない。これをやるためには領域からそれに含まれるタイルを引いてくる必要があるので、R*-treeのクレートを使って実現するつもり。明日行けるか?
寝ます。明日はもうちょっと体調良くなっててくれ。
何してたっけ。たいしたことはしてないか。Spectreの描画で浮動小数点値の誤差が出てるからそれを解消した。出てくる座標は要するに30°のsinとcosとその和なので、$(i, j) \mapsto \frac{i}{2}+\frac{j\sqrt{3}}{2}$の対応で整数の組に置き換えれば誤差がなくなる。そういう風にしてくれよとClineに頼んだらなんかいい感じにやってくれた。やはりこういう類の作業はかなり得意らしい。これで高々数ドルなら安いもんだ。
あと3Dレンダリングから2Dレンダリングにしようとしてガチャガチャしていたら、なんかそれらしく動いたのだけどブラウザで動かない。なんでだ?まだ何かが不足しているのか、まあそれは明日調べる。まあ別に3Dのままでもいいんだけど。むしろそのほうがよかったりするのか?グラフィックのことなんもわからん。
夜は焼肉に行き、終わっていく連休の弔いをした。やれやれ。
寝ます。明日はたぶん諸々思い出すだけで終わるだろうけど。はあ。
なんか普通に仕事復帰したくねえなという気持ちがある。正月休みですこしは気が晴れるかと思っていたが、どうも様子がおかしい。
Spectreの敷き詰めは一応好きなレベルのタイルを並べることができるようになった。描画パフォーマンスの改善のために例によってシェーダーも書いた。今回は変な形のメッシュなこともあってすこし手間取ったが一応動いた。レベル8、2000万タイルくらいまでなら一応出せるようだ(メモリ使用量が3GBくらいになるのだが、なんでそんなに多いのかよくわかっていない)。
あとは、スクロールに応じて自動でタイルを継ぎ足す仕組みが必要。明日やってみるけど、そんな簡単ではないかもな。
寝ます。明日で連休終わりとかマジかよ。