2022/2/13(日)

ABC204のバチャをやった。4完。DはDPのD。

久々に書いたDPが割とスッと書けたのは少し安心した。

Eはfloorの性質の悪さが気掛かりになって数式的な解法ではなく二分探索や三分探索に走ったのだが、むしろそれが裏目に出た。個人的に「にぶたんはlogが付く代わりにめんどくさい条件でも安全に解を探せる」みたいなイメージを持っていたのだが、あまり良くない考えだったようだ。二分探索/三分探索でも調べる相手が本当に単調なのかを見極める癖を付けた方が良い。特に「広義単調」の場合は死ぬ可能性が実はかなりある。

しかし二分探索の危険性が頭に無かったっていうよりも、数式頼りの方が安全っていう発想が全然頭になかったな。


Vulkanで三角形を表示できた。何が何のために動いていて何に依存しているのかをしっかり再勉強したため、コードの山がかなりするっと頭に入るようになっている。

言っちゃあ悪いがvulkan-tutorial.comは表示まで急ぎすぎなんだよな。スワップチェーンとかいう複数のイメージオブジェクトを操ることを要求する曲者にいきなり会わせるもんじゃないと思う。

1つのイメージに対して描画するために必要な作業を頭に入れたうえで、スワップチェーンは複数のイメージに順に描画することを要求していることを踏まえたらかなり理解が進んだ。複数のイメージを操る必要があるのでその数だけ対応するオブジェクトを作る必要があるのは把握していたけれど、どれがイメージの数分必要でどれが1つだけで良いのか頭に入ってなかった。今ではそらで説明できる。

イメージに対して処理を行うためにイメージビュー、イメージビューをレンダーパスに結びつけるためにフレームバッファーが必要なので、イメージビューとフレームバッファはまずイメージの数だけ要る。フレームバッファを取り換えることでひっつけるイメージビューを替えられるのでレンダーパスは1つだけ。

そしてコマンドバッファにコマンドを記録するとき、どのフレームバッファを使うかも記録して固定してしまうので、コマンドバッファもイメージの数だけ必要。

そして他のオブジェクトは別にイメージの数だけ必要だったりすることはない。ああ、なんて簡単なことだったんだ。いや簡単じゃないけど。

イメージレイアウト(vkImageLayout)のあたりがまだ理解できてないな。フォーマット(vkFormat)が画素の表現形式なのに対して、レイアウトはメモリ上の配置様式だと把握しているのだけど、レンダーパス定義中でいろいろ指定してそれがどう働くのか今一つ把握していない。


午後はひたすらうだうだしていた。昼飯食べた後の「何やれば良いか分からんし手につくものがない」感はどうしたらいいんだ…

今日は頭が働かないので、とりあえず寝た後にイラストの色塗りとかしていたが、読書とかするのも良かったかな。


このはカレンダーをめくり忘れてたのでめくった。料理姿いいね。よく見たら髪留めもチョコレートっぽいデザインになってる。

Categories: