ホロライブの二次創作ゲーを作りたい (938レス)
上下前次1-新
473: 2024/01/29(月)11:09 ID:J/zXr0Lj(1/4) AAS
> Batch cause
> This material has custom buffer override
マテリアルのプロパティにComputeBufferを指定するとSRP Batcherが無効化する問題と喧嘩中
この喧嘩に勝てばパフォーマンスが爆上がりする可能性があってちょっとワクワク
474(2): 2024/01/29(月)15:55 ID:J/zXr0Lj(2/4) AAS
従来のSkinnedMeshRendererを殺してBatchRendererGroupベースでモデルを描画することに成功しました
ボーンのTransformを操作することでモデルも変形するので、アニメーションも従来のAnimatorで再生できる
ただし肝心の本命のパフォーマンスが従来のSkinnedMeshRendererより低い
従来のSkinnedMeshRendererでアニメーション再生中 ≒ BatchRendererGroup描画でアニメーション停止中
画像の左が従来のSkinnedMeshRendererでアニメーション再生
真ん中の山がBatchRendererGroup描画でアニメーション再生
右がBatchRendererGroup描画でアニメーション停止
画像リンク[png]:i.imgur.com
まだJobSystem+Burstとかで改善できる余地はあるので、まだ希望を捨てずに検証を続けます
475(1): 2024/01/29(月)17:11 ID:ibDcrJvt(1) AAS
>>474
そういうのはBurst、JobSystemだね
476(1): 2024/01/29(月)19:25 ID:J/zXr0Lj(3/4) AAS
>>475
ぶっちゃけネットの海に落ちてるソースコードをいい感じに結合しただけなんだけど
元々のコードが結構最適化されてて詰める余地がなくて割とピンチ
そもそも従来のSkinnedMeshRendererはモデルのメッシュに対するRead/Writeが無効でもスキニングできるのに
BatchRendererGroupでスキニングするためにはメッシュのvertices/normals/tangentsの取得が避けて通れなくてRead/Writeを有効にせざるを得ない時点で勝てない気がしてきた
でもなんか勝ってる人(企業?)もいるっぽいんだよなあ・・・
外部リンク:www.infiniteloop.co.jp
477: 2024/01/29(月)20:07 ID:J/zXr0Lj(4/4) AAS
やべ、今の実装だとBlendShape対応してなかった
既にパフォーマンス負けてるのにここから更に落ちるのか・・・
478: 2024/01/29(月)21:23 ID:24olBCr9(1) AAS
>>476
なるほど
すごいことやってる人多いね
479(2): 2024/01/30(火)00:56 ID:sbR3UD9S(1/3) AAS
このDOMOTIONってどうなんだろうか?
外部リンク:github.com
現在の機能(v0.3.4)
完全にバーストされたランタイム
ステートマシンビジュアルエディタ
遷移: Boolean、Int、Enum、End Time
コードでクリップを再生するためのシンプルな API (サンプルを参照)
1D ブレンド ツリー
アニメーション イベント
ルートモーション(デフォルトの動作をオーバーライドする必要がある場合、WriteGroupのサポートあり)
省10
480: 2024/01/30(火)05:39 ID:DCr4w4dC(1/9) AAS
>>479
あざます!
使ってみた所感
・URP、Unity.Entities、Unity.Entities.Graphics等の依存してるパッケージの必要なバージョンが良くわからない
特定のパッケージが新しすぎるとそんなクラス無いと怒られるし、それを直すために特定のパッケージのバージョンを落とすと別のクラスが無いと怒られたりする
一部のエラーを握りつぶしてごり押したので不完全な状態
・ホロライブのMMDモデルだとボーンの数が多すぎて怒られた
原文:Skeleton entity Unity.Entities.Entity has 376 bones. Skinned mesh entity Latios.EntityWith`1<Latios.Kinemation.SkeletonDependent> has 371 bone references. The sum of these exceed the max shader capacity of 682.
・DMotion Proがアセットストアでリリース予定らしいので期待
そしてやはりShaderGraph限定の機能を使っている(Linear Blend Skinning)
省2
481(3): 2024/01/30(火)05:58 ID:DCr4w4dC(2/9) AAS
長老法!!!!
わいのカスタムシェーダの開発者さんがシェーダ起因のCPUバウンドの原因を特定してくれてパフォーマンスがどちゃくそ改善されました!!!
ビフォー
画像リンク[png]:i.imgur.com
アフター
画像リンク[png]:i.imgur.com
パフォーマンスが低かった理由も教えてくれたけどわいだったら絶対気づけなかった、流石プロ
確かUniversal Render Pipeline/Litだと150fpsとかだったから、ここまでくればもう十分まである
でも折角なのでウィニングラン(?)として>>474と>>479の検証だけはやりきりたい
482: 2024/01/30(火)06:15 ID:25oO7Vfp(1/2) AAS
結局シェーダーの違いやったんか
トゥーンシェーダ色々あるけど結構違いありそうやな
483: 2024/01/30(火)08:16 ID:sbR3UD9S(2/3) AAS
>>481
やったじゃん
484: 2024/01/30(火)08:19 ID:sbR3UD9S(3/3) AAS
てかBone376あるとか書いてあるけどこれって全部でってこと?
1つのモデルで376ってありすぎじゃね?
485: 2024/01/30(火)10:02 ID:DCr4w4dC(3/9) AAS
1つのモデルで371だった それをDOTS用に変換すると376になる?
スカートとか髪のボーン1つ1つにモデルを変形させるための本物のボーンとは別で
用途が分からないダミーのボーンがあったりするせいか頭数が多い
そしてこのボーンの上限超過エラーをコメントアウトして握りつぶしてみたけど表示が破綻してダメだった
このライブラリに同梱されてるシェーダでも表示が崩れるので、上限には意味があるらしい
Proがリリースされたら上限が上がることを祈りつつこのライブラリは一旦保留・・・
486: 2024/01/30(火)11:08 ID:ZUYV+zXn(1/2) AAS
Unityって何々と何々は共存出来ないって多すぎじゃないですか
487(1): 2024/01/30(火)11:16 ID:DCr4w4dC(4/9) AAS
わかる JobSystem+Burstみたいな値型限定で高速化とかするくらいならいっそC++でコーディングさせてくれとは思う
仮にC++で書けたとして本当に速くなるのかは分らんけど
488: 2024/01/30(火)11:21 ID:25oO7Vfp(2/2) AAS
UEの最適化も結構大変そうだよ
スクエニとか自社の描画システムに切り替えて標準機能ガン無視とかしてる
外部リンク:www.docswell.com
489: 2024/01/30(火)12:30 ID:DCr4w4dC(5/9) AAS
やっぱどこのゲームエンジンも低レベルなAPIを酷使して自前で全部実装するのが最強なのか
490: 2024/01/30(火)15:36 ID:DCr4w4dC(6/9) AAS
BatchRendererGroupでモデルを描画するためには
1. BatchRendererGroupにメッシュとマテリアルを登録する
2. 実際に描画するために他にも色々登録する
必要があるんだけど、2をやらずにメッシュとマテリアルを登録するだけで登録数に比例した負荷が発生してしまう
描画しなくともこの負荷だけで従来のSkinnedMeshRendererにパフォーマンスで負ける
メッシュとマテリアルを登録せず描画処理だけ走らせると150fpsくらい出る
登録することで発生する負荷を追求したいのにProfiler君さあ・・・
画像リンク[png]:i.imgur.com
491: 2024/01/30(火)16:30 ID:AjZdEr3a(1/2) AAS
>>487
結局IRにするなら普通にC#使ったほうがいいと思うわ
C++だとしても変わらんし多分Burstのほうが早いまである
492: 2024/01/30(火)16:32 ID:AjZdEr3a(2/2) AAS
基本的にボーン数はパフォーマンスに影響あるからできるならいらないボーンは削除したほうがいいと思う
上下前次1-新書関写板覧索設栞歴
あと 446 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.015s