2/16日記 ===== プログラム ===== * SSE/AVX使ったオーディオ処理の最適化について色々調べた。 * https://koturn.hatenablog.com/entry/2016/07/18/090000 * https://qiita.com/nkiib/items/3c30e9564149d3f2f6f7 * https://www.slideshare.net/slideshow/simd-10548373/10548373#2 * https://qiita.com/Nao-Shirotsu/items/a6919cf1b7122ac96ea9 * つまりは計算を並列化(実際は同時に処理なのでクロック数は同じとかかねえ)する形になる。 * ただそのために型をあわせる等の下準備は必要。すなわちアルゴリズム的にはよろしくない粒度での記述になるってこと。(変数4個単位で区切って処理、余った部分は計算しない等の分岐が必要) ===== ゲーム開発 ===== * 自作ゲームの描画順についてだいぶおかしかったので修正した。 * 弾について、元々画面内で必要な順番を指定していたんだけど、値によってプレイヤーと重複することが発覚。もしくはしきい値があまりにも小さすぎる。 * 結果何が起きるかと言うと、描画順番がおかしくなる。\\ プレイヤー→弾、の順番で描画したいのに、弾→プレイヤーになってしまう。 * これはZソートを自分で行っているため起きるんだけど、そもそも透視投影におけるUnityの描画順番(というかOpenGLの仕様か?)がZの差分が小さいと機能しない。 * ついでに言うと弾の描画をレイヤー単位で前になるよう指定しているので問題が更にややこしくなる。(これは視認性の問題で明示的に指定している) * 今回は、プレイヤーと弾の差分が大きくなる、すなわち描画順が絶対に変わらないように描画順を生存フレーム数に依存するよう設定した。 * 弾であればずっと残る危険性もないのでひと安心。 * あとは敵・ボス・プレイヤー・背景は描画順を明示的に指定する形で対応予定。