190625 LT 「ビーム」
- 23. f = new Vector3(0f, -gravity, 0f);
Hinweis der Redaktion
- 普通は四角形ですが、正三角形を使うと頂点3/4、インデクス1/2で、描画面積は同じです。テクスチャはクランプにするか、余白を多く取りましょう。
- 実際はForward-Backward Eulerです。p’ = p + Δt×v’と、
v’を使います。機械によっては若干遅いかもしれませんが、ほとんど同負荷で積分の安定性が上がるので便利です。
- 実際には、ビームベクトルを敵法線に対して反射させたベクトルを中心に、Phongの式と同じ感じでcosの累乗で分布を作っています。
- JobSystemも試しましたが、データ量と計算量の比が悪く、コピーのオーバーヘッドで遅くなったので、自前でやりました。
なお、Updateで計算キック、LateUpdateで待ち合わせをしており、1フレ結果が遅れて良いならかなり性能を上げられます。また、実際の製品であればUpdateでやることがもっとたくさんあるので、並列性はより生きるでしょう。
- Fire16ボタンを押すと16本のビームが出ます。
- スレッドプールによる並列化ですが、
同じ配列の異なる要素を複数スレッドでアクセスして安全か?
ということを確認していないので、
安全を期すなら配列もスレッドごとに分けた方が良いと思われます。