3/2日記 ===== プログラム ===== * 回転処理のほか、拡大処理も実装した。 * それほど難しくなかった。 * ただ、回転処理と拡大縮小について細かい境界値周りでのバグと、方向が想定したものではない等があって、全部修正した。 * これでかなり色々できるようになったな。 ---- * 「切り取り回転描画」「切り取り拡大描画」も実装済み。 * 画像の途中で処理を打ち切る必要があったり描画領域がメモリ領域の外になったからエラーが出た等色々あったけど対応できた。 * あとはQuadWarpもほしいところだけどそれはちょっと時間置くでもいいかも。 ---- * 一部の関数に可変長引数使って、X/Y反転ができるようにした。 * Rotate関数にフリップは入れてないけど、できる見込みはついた。 * だいぶ雑に書いてた部分があるので、少しずつ修正してる。 ---- * 以上の結果、既存関数にも修正が入った。 * 関数一覧を更新済み。 * https://machiaworx.net/screenpict/doku.php?id=function ---- * フレームワークの機能の殆どはDXライブラリにも存在していることを確認済み。(低解像度拡大についても存在を確認) * それでも実装してみたかった理由は、「グラフィックの描画最適化について知りたかったから」および「使い勝手のいい(=シェーダに頼らない)描画方法を模索したかったから」というもの。 * 後者についてはUnityだったからなおさらなんだけど、「画像やシェーダを用意すると描画できる」というものなので、プリセットが準備されているとしても手間のかかるものだったりする。そこらへんをすっ飛ばして描画進めたいというところはある。 * ただ、レンダラー作ってみたからこそ、GPUの性能や機能についてすげえと思うところがある。特にレイトレーシングのような描画領域全体を一気に計算する処理については、GPUとの相性がかなりいいと考える。 * デメリットを最小限にしてメリットを多く享受できるようにしていくのがいいのかなと考えた。 * ゲームのほうは自作フレームワークを積極的に使って描画していく、その他の処理(背景・UI)については高解像度、というのもできるのを確認した。