と、決意してから3か月弱が経過した。
誰かおいらを見守っててくれ
ここに進捗張ってモチベを維持しようと思う
探検
ホロライブの二次創作ゲーを作りたい
1名前は開発中のものです。
2023/11/13(月) 21:49:52.79ID:yGEs5LQ+417名前は開発中のものです。
2024/01/21(日) 18:44:03.47ID:FNRdfgES ゴリゴリDOTSを使ってるはずで大量のモデルを動かすサンプルもあるのに
Transformの制御が普通にできたりVATを使わず従来のAnimatorで動いてるっぽいのが却って不気味
今までのアセットとの違いというとLinear Blend SkinningというShaderGraphの機能を使ってるっぽいところ(結局HLSLシェーダに変換しても機能してるので今のところ問題なっしんぐ)
https://docs.unity3d.com/ja/Packages/com.unity.shadergraph@10.0/manual/Linear-Blend-Skinning-Node.html
Transformの制御が普通にできたりVATを使わず従来のAnimatorで動いてるっぽいのが却って不気味
今までのアセットとの違いというとLinear Blend SkinningというShaderGraphの機能を使ってるっぽいところ(結局HLSLシェーダに変換しても機能してるので今のところ問題なっしんぐ)
https://docs.unity3d.com/ja/Packages/com.unity.shadergraph@10.0/manual/Linear-Blend-Skinning-Node.html
418名前は開発中のものです。
2024/01/21(日) 23:57:51.04ID:On0hd98j ECSはまだ新しいからそんなに情報出てないね
企業もこれから使い出すのかと思うと未来ありそうな気はする
企業もこれから使い出すのかと思うと未来ありそうな気はする
419名前は開発中のものです。
2024/01/22(月) 08:10:20.97ID:oef3vWvB >>418
DOTSはJobSystem+Burstの上に成り立ってる機能だけど
そのJobSystemとBurstが値型しか使えないとか制約が強すぎて嫌われてるから今のままだと使い勝手悪すぎて普及しづらそう
わいが自作した揺れものシステムもJobSystem+Burstで最適化したけどマジで面倒くさかった
DOTSはJobSystem+Burstの上に成り立ってる機能だけど
そのJobSystemとBurstが値型しか使えないとか制約が強すぎて嫌われてるから今のままだと使い勝手悪すぎて普及しづらそう
わいが自作した揺れものシステムもJobSystem+Burstで最適化したけどマジで面倒くさかった
420名前は開発中のものです。
2024/01/22(月) 17:40:26.02ID:oef3vWvB このアセットが使っていた機能は正確には「Mesh Deformation」という機能で、そもそも「Mesh Deformation」はDOTSとか関係ないというオチだった
このアセットは、DOTSでも「Mesh Deformation」が使えるよというのが売りのアセットで
従来のSkinnedMeshRendererに「Mesh Deformation」を適用するよりもDOTSで「Mesh Deformation」を使うほうがパフォーマンスは低く、わいが求めてるものとは全然関係ないアセットでした
なので今わいが使ってるカスタムシェーダに「Mesh Deformation」は使えるのか?使えば本当にパフォーマンスが上がるのか?が争点となっているけど
「Mesh Deformation」の適用前と適用したつもりのシェーダで比較してもパフォーマンスは変わらず40FPS前後
GPUは全然余裕あるから、ありえるとしたら「Mesh Deformation」が適用できていないかCPUバウンドで頭打ちになってるかのどちらか
このアセットは、DOTSでも「Mesh Deformation」が使えるよというのが売りのアセットで
従来のSkinnedMeshRendererに「Mesh Deformation」を適用するよりもDOTSで「Mesh Deformation」を使うほうがパフォーマンスは低く、わいが求めてるものとは全然関係ないアセットでした
なので今わいが使ってるカスタムシェーダに「Mesh Deformation」は使えるのか?使えば本当にパフォーマンスが上がるのか?が争点となっているけど
「Mesh Deformation」の適用前と適用したつもりのシェーダで比較してもパフォーマンスは変わらず40FPS前後
GPUは全然余裕あるから、ありえるとしたら「Mesh Deformation」が適用できていないかCPUバウンドで頭打ちになってるかのどちらか
421名前は開発中のものです。
2024/01/22(月) 18:17:35.31ID:oef3vWvB イッチ~😭
422名前は開発中のものです。
2024/01/22(月) 19:27:33.28ID:8OZUJi12 ワイは失踪するしか……!もう道が……!
423名前は開発中のものです。
2024/01/22(月) 19:28:24.25ID:oef3vWvB 何が問題になってるんだ
今なら見ての通り余裕があるから助け船出せるで
今なら見ての通り余裕があるから助け船出せるで
424名前は開発中のものです。
2024/01/22(月) 19:31:04.09ID:8OZUJi12 モチベがない上にもはや時間を割こうとすら思えなくなってる
425名前は開発中のものです。
2024/01/22(月) 19:36:31.53ID:8OZUJi12 Xのアカウント凍結してるんだが
426名前は開発中のものです。
2024/01/22(月) 19:36:55.49ID:oef3vWvB そりゃ重症だわな・・・
メルさんの件が効いてるのか他に何かあったのか分からんけど、モチベ低下は時間に身を委ねるしか回復手段なさそうだもんなあ
時間に身を委ねた結果回復するか完全に燃え尽きるかはコントロールしきれない、ぶっちゃけガチャ
メルさんの件が効いてるのか他に何かあったのか分からんけど、モチベ低下は時間に身を委ねるしか回復手段なさそうだもんなあ
時間に身を委ねた結果回復するか完全に燃え尽きるかはコントロールしきれない、ぶっちゃけガチャ
427名前は開発中のものです。
2024/01/22(月) 19:38:21.62ID:oef3vWvB428名前は開発中のものです。
2024/01/22(月) 19:38:49.89ID:8OZUJi12 ゲーム制作中断した代わりにワイの読み上げあくたんの精度が上がった
429名前は開発中のものです。
2024/01/22(月) 19:40:32.55ID:oef3vWvB そういえばいたなそんなん
AIこよりみたいなやつだっけ
ゲームで使ったら怒られそうか・・・
AIこよりみたいなやつだっけ
ゲームで使ったら怒られそうか・・・
430名前は開発中のものです。
2024/01/22(月) 19:43:25.81ID:8OZUJi12 そらもうアウトラインから立ち幅跳びしてるようなもんやろ
431名前は開発中のものです。
2024/01/22(月) 19:57:51.79ID:oef3vWvB 別クチでアドバイス頂けたりもして、結論が出ました
1.GPU Instancingを有効化して、少ない種類のキャラクターを大量描画
→GPUが100%に振り切れても120fpsくらいの高パフォーマンスを出せる
2.GPU Instancingを有効化して、多い種類のキャラクターを大量描画
→セットパスコールが多くてCPU使用率30%あたりで即CPUバウンドになるため、30fps程度しか出せない
3.従来のSkinnedMeshRenderer(SRP Batcherが有効)で、多い種類のキャラクターを大量描画
→セットパスコールはSRP Batcherにより大幅に削減できるが、それでもやはりCPUバウンドにより40fps前後しか出ない
3.の時点でセットパスコール数を減らさない限りCPU側のパフォーマンスが頭打ちなので、「Mesh Deformation」の力を借りても無意味とのこと
キャラクターの数や質を維持したままセットパスコール数によるCPUバウンドを解決することは現状不可能とのことで、アキラメロンという結論になりました
アドバイスくれた皆様方ありがとうございました
70レスくらい使い潰した性能検証は一旦終えて、わいは少し前までやってたいつものゲーム開発に戻ります
1.GPU Instancingを有効化して、少ない種類のキャラクターを大量描画
→GPUが100%に振り切れても120fpsくらいの高パフォーマンスを出せる
2.GPU Instancingを有効化して、多い種類のキャラクターを大量描画
→セットパスコールが多くてCPU使用率30%あたりで即CPUバウンドになるため、30fps程度しか出せない
3.従来のSkinnedMeshRenderer(SRP Batcherが有効)で、多い種類のキャラクターを大量描画
→セットパスコールはSRP Batcherにより大幅に削減できるが、それでもやはりCPUバウンドにより40fps前後しか出ない
3.の時点でセットパスコール数を減らさない限りCPU側のパフォーマンスが頭打ちなので、「Mesh Deformation」の力を借りても無意味とのこと
キャラクターの数や質を維持したままセットパスコール数によるCPUバウンドを解決することは現状不可能とのことで、アキラメロンという結論になりました
アドバイスくれた皆様方ありがとうございました
70レスくらい使い潰した性能検証は一旦終えて、わいは少し前までやってたいつものゲーム開発に戻ります
432名前は開発中のものです。
2024/01/22(月) 20:37:43.32ID:oef3vWvB なんかQiitaの記事1本書けそうなくらいのボリュームあったなこの検証
書かないけど
書かないけど
433名前は開発中のものです。
2024/01/22(月) 21:53:26.61ID:hx/ZQSsZ434名前は開発中のものです。
2024/01/22(月) 22:05:55.90ID:hx/ZQSsZ 今流行りのパルワールドも最初はオールアセットゲーから始まっていた
https://news.denfaminicogamer.jp/interview/190906a
インディーゲームは細かいクオリティより新しい面白さに一点集中しよう
https://youtu.be/u1C4EahF4mA
https://news.denfaminicogamer.jp/interview/190906a
インディーゲームは細かいクオリティより新しい面白さに一点集中しよう
https://youtu.be/u1C4EahF4mA
435名前は開発中のものです。
2024/01/23(火) 08:25:55.04ID:1/XcE8eH 性能検証>>431について補足
> 3.従来のSkinnedMeshRenderer(SRP Batcherが有効)で、多い種類のキャラクターを大量描画
> →セットパスコールはSRP Batcherにより大幅に削減できるが、それでもやはりCPUバウンドにより40fps前後しか出ない
→PostProcessを無効化する:40fps
→+揺れものシステム&物理演算を無効化する:50fps
→+とあるコンポーネントを無効化する:70fps
という感じで色々無効化したらパフォーマンスが上がった
最後のとあるコンポーネントというのは、キャラクターの眉毛を髪の上から描画させるためのコンポーネントのことで
毎フレームSkinnedMeshRenderer.BakeMesh()が走っていたために微妙な負荷になっていたみたい
こいつを切り捨てるのは割と現実的なのでこれでパフォーマンスが上がるなら消すか
> 3.従来のSkinnedMeshRenderer(SRP Batcherが有効)で、多い種類のキャラクターを大量描画
> →セットパスコールはSRP Batcherにより大幅に削減できるが、それでもやはりCPUバウンドにより40fps前後しか出ない
→PostProcessを無効化する:40fps
→+揺れものシステム&物理演算を無効化する:50fps
→+とあるコンポーネントを無効化する:70fps
という感じで色々無効化したらパフォーマンスが上がった
最後のとあるコンポーネントというのは、キャラクターの眉毛を髪の上から描画させるためのコンポーネントのことで
毎フレームSkinnedMeshRenderer.BakeMesh()が走っていたために微妙な負荷になっていたみたい
こいつを切り捨てるのは割と現実的なのでこれでパフォーマンスが上がるなら消すか
436名前は開発中のものです。
2024/01/23(火) 08:27:20.42ID:1/XcE8eH >>434
新しい面白さなあ・・・前例がほぼない的な意味でなら新しさはあると思うんだけど万人受けは期待してない
わいにとっては絶対面白いけどそれがどこまで受けるかは実際に公開してみないとわからないかも
新しい面白さなあ・・・前例がほぼない的な意味でなら新しさはあると思うんだけど万人受けは期待してない
わいにとっては絶対面白いけどそれがどこまで受けるかは実際に公開してみないとわからないかも
437名前は開発中のものです。
2024/01/23(火) 09:06:59.25ID:A5/zzmn2 あとパルワールドで思い出したけどこれエンジンがUEになってるから
Unityでもある程度重いソフトはMOD切ってIL2CPPでテストも毎回ビルドってのもありうるね
Unityでもある程度重いソフトはMOD切ってIL2CPPでテストも毎回ビルドってのもありうるね
438名前は開発中のものです。
2024/01/23(火) 09:52:23.62ID:1/XcE8eH >>437
IL2CPPでもMonoでも「キャラクターの種類が増えるほどフレームレートが目に見えて低下する」という課題があったのでそれを解決したかったのが今回の検証なんだけど
まあ結局ダメだったのでIL2CPPビルドに頼ったりキャラの数を減らしたりCPUバウンドの要因を地道に削っていくって方向で・・・
IL2CPPでもMonoでも「キャラクターの種類が増えるほどフレームレートが目に見えて低下する」という課題があったのでそれを解決したかったのが今回の検証なんだけど
まあ結局ダメだったのでIL2CPPビルドに頼ったりキャラの数を減らしたりCPUバウンドの要因を地道に削っていくって方向で・・・
439名前は開発中のものです。
2024/01/23(火) 09:59:55.78ID:1/XcE8eH わいが使ってるシェーダが超有能すぎる(実は今回の性能検証でもこっそり一役買ってる)
Qiitaで紹介記事書きたいくらいなんだけど、顧客を絞って1人1人に対するサポートを手厚くやっていきたいという先方のご意向で書けないもどかしさ
Qiitaで紹介記事書きたいくらいなんだけど、顧客を絞って1人1人に対するサポートを手厚くやっていきたいという先方のご意向で書けないもどかしさ
440名前は開発中のものです。
2024/01/23(火) 10:03:04.39ID:1/XcE8eH441名前は開発中のものです。
2024/01/23(火) 10:08:04.96ID:1/XcE8eH https://i.imgur.com/TfVzuM3.jpeg
こっちにしとこ
こっちにしとこ
442名前は開発中のものです。
2024/01/23(火) 10:38:26.22ID:A5/zzmn2 まぁ後は正攻法やね
マップならPerfect Cullingとか言う謎のアセットもあるけど
https://gamemakers.jp/article/2023_12_11_57024/
https://github.com/CyberAgentGameEntertainment/UnityPerformanceTuningBible
マップならPerfect Cullingとか言う謎のアセットもあるけど
https://gamemakers.jp/article/2023_12_11_57024/
https://github.com/CyberAgentGameEntertainment/UnityPerformanceTuningBible
443名前は開発中のものです。
2024/01/23(火) 12:04:21.03ID:1/XcE8eH444名前は開発中のものです。
2024/01/23(火) 12:05:10.00ID:1/XcE8eH あとそのあたりのドキュメントは3,4回くらい読み返してる
英語のほうはあんま理解できてる気しないけど
英語のほうはあんま理解できてる気しないけど
445名前は開発中のものです。
2024/01/23(火) 12:09:45.80ID:U3m3M0NO >>443
閃乱カグラ?
閃乱カグラ?
446名前は開発中のものです。
2024/01/23(火) 12:14:07.10ID:1/XcE8eH447名前は開発中のものです。
2024/01/23(火) 13:36:49.37ID:U3m3M0NO448名前は開発中のものです。
2024/01/23(火) 15:01:44.73ID:1/XcE8eH >>447
スマブラXに百人組み手っていうモードがあったけどSPにもあるんだろうか、無双系って言われてるのって大体あれのことだよね
あれほど雑魚敵がポンポン死んで目まぐるしく入れ替わる感じでもなく
かといってスマブラほど1人1人とのプロレスを重くしたいわけでもなく
その中間くらいにしたい・・・って文章にしてみたけど自分でもよくわからん、思うが儘に作ってみてどうなるかのお楽しみ
スマブラXに百人組み手っていうモードがあったけどSPにもあるんだろうか、無双系って言われてるのって大体あれのことだよね
あれほど雑魚敵がポンポン死んで目まぐるしく入れ替わる感じでもなく
かといってスマブラほど1人1人とのプロレスを重くしたいわけでもなく
その中間くらいにしたい・・・って文章にしてみたけど自分でもよくわからん、思うが儘に作ってみてどうなるかのお楽しみ
449名前は開発中のものです。
2024/01/24(水) 00:54:47.29ID:DwvPG79i 主さんにはシェーダーとか開発者を唸らす方向で頑張って欲しい
450名前は開発中のものです。
2024/01/24(水) 04:50:44.63ID:VfW00VT7 なんじゃそりゃ
まあ作りたいゲームの方向性も決まってるし 万人受けは狙わず数人が大草原生やしてくれれば御の字なのでやりたいようにやってみます
まあ作りたいゲームの方向性も決まってるし 万人受けは狙わず数人が大草原生やしてくれれば御の字なのでやりたいようにやってみます
451名前は開発中のものです。
2024/01/24(水) 08:06:32.59ID:VfW00VT7 だいぶ前にスマホ版ビルドしてみたけどメモリ不足で無理だったってのがあったけど
URPの設定のRenderScaleを2倍にしてて5000×2500とかいうとんでもない解像度で描画しようとしてたのが原因だった
RenderScaleを等倍にしたらメモリ使用量も0.6GBくらいに収まって普通にスマホ版で動かせました
URPの設定のRenderScaleを2倍にしてて5000×2500とかいうとんでもない解像度で描画しようとしてたのが原因だった
RenderScaleを等倍にしたらメモリ使用量も0.6GBくらいに収まって普通にスマホ版で動かせました
452名前は開発中のものです。
2024/01/24(水) 09:11:13.67ID:fVi59P06 解像度下げるのも最適化やね
453名前は開発中のものです。
2024/01/24(水) 09:23:31.06ID:VfW00VT7 今回はスマホで2倍ってのが意図してなかったものだからよかったけど
PCだと2倍と等倍でもかなり差が分かるし(一応画質設定で下げられるようにする)
おそらくスマホも等倍未満にすると目に見えて画質が下がってしまうのでできればこのラインを維持したいところ・・・
PCだと2倍と等倍でもかなり差が分かるし(一応画質設定で下げられるようにする)
おそらくスマホも等倍未満にすると目に見えて画質が下がってしまうのでできればこのラインを維持したいところ・・・
454名前は開発中のものです。
2024/01/24(水) 09:30:53.00ID:AYEYQDPa 最近のスマホは馬鹿みたいに解像度高いからな
455名前は開発中のものです。
2024/01/24(水) 09:32:51.19ID:AYEYQDPa 昔Unity公式がAMDのアップスケーリング技術使えば2Kでレンダリングしたやつを4Kで描画できるからいいよって言ってた
https://youtu.be/_cKixSjjTjI?si=11QTNBjo9xm3vhAi
https://youtu.be/_cKixSjjTjI?si=11QTNBjo9xm3vhAi
456名前は開発中のものです。
2024/01/24(水) 10:03:24.49ID:VfW00VT7 >>455
ありがとう
Bilinearと教えてくれたFSRで比較してみたけど、fps、CPU使用率、GPU使用率のいずれも大して変わらなかった
今のわいの環境だとGPUは余力が余りまくってるから、そっちを最適化する技術だとしたらCPUバウンドのわいの環境には響かないかも
ありがとう
Bilinearと教えてくれたFSRで比較してみたけど、fps、CPU使用率、GPU使用率のいずれも大して変わらなかった
今のわいの環境だとGPUは余力が余りまくってるから、そっちを最適化する技術だとしたらCPUバウンドのわいの環境には響かないかも
457名前は開発中のものです。
2024/01/24(水) 10:06:59.85ID:VfW00VT7 でもそうかスマホ版だと影響が如実に現れてるかもしれないのか
本命はPC版でスマホ版は公開する予定がないけどついでに検証してみる
本命はPC版でスマホ版は公開する予定がないけどついでに検証してみる
458名前は開発中のものです。
2024/01/24(水) 14:52:46.31ID:AYEYQDPa まぁ動画見る限りいろんなゲームでFSR使われてるって事は4Kで全部レンダリングしてるところは少ないからFSRのほうがバイリニアより性能いいならFSRでアップスケーリングしたらいいんじゃね?
459名前は開発中のものです。
2024/01/25(木) 02:00:18.31ID:MpbjV3ld そりゃそうか、問題なさそうだしそうします
今日(昨日)も性能検証の続きみたいなことやってたけど、シェーダ販売元がパフォーマンスについて詳しく見てくれることになりました
買い切りなのに申し訳ないと思いつつ甘えるしかない
今日(昨日)も性能検証の続きみたいなことやってたけど、シェーダ販売元がパフォーマンスについて詳しく見てくれることになりました
買い切りなのに申し訳ないと思いつつ甘えるしかない
460名前は開発中のものです。
2024/01/26(金) 09:25:09.60ID:zZVqnd62 敵AIを200体くらい表示して重くてローポリモデルにしたり解像度下げたりしたけど効果なくて
20体~50体くらいに下げたら軽くなった事があります。CPUがボトルネックになってた(UE勢)
20体~50体くらいに下げたら軽くなった事があります。CPUがボトルネックになってた(UE勢)
461名前は開発中のものです。
2024/01/26(金) 12:51:19.42ID:FIRNyUEg >>460
そのモデルたちが同じ種類のキャラクターだとUnityではかなり最適化できて無双系のゲームも現実的なんですが
種類が異なるキャラクターを大量に表示するとCPUがボトルネックになってどうしようもなくなるのが現状ですね
UEも似た感じなんじゃないでしょうか
そのモデルたちが同じ種類のキャラクターだとUnityではかなり最適化できて無双系のゲームも現実的なんですが
種類が異なるキャラクターを大量に表示するとCPUがボトルネックになってどうしようもなくなるのが現状ですね
UEも似た感じなんじゃないでしょうか
462名前は開発中のものです。
2024/01/26(金) 13:23:45.19ID:FIRNyUEg Bilinear レンダリングスケール1倍
https://tadaup.jp/615974d6f.jpg
FSR レンダリングスケール1倍
https://tadaup.jp/6159760f0.jpg
レンダリングスケール2倍
https://tadaup.jp/615977099.jpg
PC版でも1920x1080の等倍と2倍ならメモリ使用量が1GB変わるくらいなのでまあ現実的(?)
https://tadaup.jp/615974d6f.jpg
FSR レンダリングスケール1倍
https://tadaup.jp/6159760f0.jpg
レンダリングスケール2倍
https://tadaup.jp/615977099.jpg
PC版でも1920x1080の等倍と2倍ならメモリ使用量が1GB変わるくらいなのでまあ現実的(?)
463名前は開発中のものです。
2024/01/27(土) 06:32:03.87ID:JDuT7AmC >>461
UEでキャラクターをGPUインスタンスするアセット探したら6万くらいして驚いたわ~
UEでキャラクターをGPUインスタンスするアセット探したら6万くらいして驚いたわ~
464名前は開発中のものです。
2024/01/27(土) 07:06:33.46ID:5rs1sE7D >>463
なんでだ・・・そんな高価な技術じゃないと思うんだけど
Naniteだっけ?あんな変態機能はロハで使えるんだから、GPUインスタンスと同等以上の効果が得られる別の機能が何かしらありそうではあるけど
なんでだ・・・そんな高価な技術じゃないと思うんだけど
Naniteだっけ?あんな変態機能はロハで使えるんだから、GPUインスタンスと同等以上の効果が得られる別の機能が何かしらありそうではあるけど
465名前は開発中のものです。
2024/01/27(土) 09:51:46.96ID:vBHCc7ny UnityはGPUインスタンシングは無料だからな
最近はDOTsインスタンシングだし
最近はDOTsインスタンシングだし
466名前は開発中のものです。
2024/01/27(土) 10:20:40.60ID:5rs1sE7D DOTSインスタンシングは静的なオブジェクトの大量描画に関してはGPUインスタンシングの上をいくんだろうけど
スキニングが有償アセットでしか対応してない上にパフォーマンスも従来より落ちるのが悲しい
静的なオブジェクトは今のSRP Batcher依存の最適化で十分だからDOTS対応は後回しでいいかな
スキニングが有償アセットでしか対応してない上にパフォーマンスも従来より落ちるのが悲しい
静的なオブジェクトは今のSRP Batcher依存の最適化で十分だからDOTS対応は後回しでいいかな
467名前は開発中のものです。
2024/01/27(土) 13:21:21.90ID:5rs1sE7D 3か月くらい前までメモリ32GBでちょっと足りないかもなあ程度だったのに
今日64GBメモリでメモリ不足になった
ゲーム開発以外にも裏でChrome開きまくってたのもあるかもしれないけど、こりゃ半年後には128GBコースか?
今日64GBメモリでメモリ不足になった
ゲーム開発以外にも裏でChrome開きまくってたのもあるかもしれないけど、こりゃ半年後には128GBコースか?
468名前は開発中のものです。
2024/01/27(土) 14:33:26.94ID:5rs1sE7D 1.わいが使ってるカスタムシェーダを普通に使って(>>462)、物理演算などのグラフィック関係以外を全て切ると
約70fps 1フレームあたり約14ms
2.この状態からマテリアルのプロパティを未指定(Texture、色などの指定を初期値)にすると
約75fps 1フレームあたり約13.3ms
3.ここからさらに、シェーダをUniversal Render Pipeline/Litに変更すると
約150fms 1フレームあたり約6.7ms
4.なお1.の状態からシェーダをUniversal Render Pipeline/Litに変更しただけの場合
約120fps 1フレームあたり約8.3ms
わいが使ってるカスタムシェーダがもうちょい最適化されてくれると嬉しす・・・!
約70fps 1フレームあたり約14ms
2.この状態からマテリアルのプロパティを未指定(Texture、色などの指定を初期値)にすると
約75fps 1フレームあたり約13.3ms
3.ここからさらに、シェーダをUniversal Render Pipeline/Litに変更すると
約150fms 1フレームあたり約6.7ms
4.なお1.の状態からシェーダをUniversal Render Pipeline/Litに変更しただけの場合
約120fps 1フレームあたり約8.3ms
わいが使ってるカスタムシェーダがもうちょい最適化されてくれると嬉しす・・・!
469名前は開発中のものです。
2024/01/28(日) 05:05:06.59ID:vZodVcfs470名前は開発中のものです。
2024/01/28(日) 05:19:36.46ID:I69l8S6B471名前は開発中のものです。
2024/01/28(日) 16:00:44.34ID:I69l8S6B 今シェーダ開発者さんにパフォーマンスの調査を依頼してるのもそうだけど、専門家に丸投げしたほうが時間効率が良いことは頭では分かってるのに
パフォーマンス最適化への未練を断ち切れずにせっかくの日曜日を地味な性能検証で潰す人生
パフォーマンス最適化への未練を断ち切れずにせっかくの日曜日を地味な性能検証で潰す人生
472名前は開発中のものです。
2024/01/28(日) 20:22:21.54ID:I69l8S6B 今日の性能検証延長戦の成果
https://qiita.com/UnagiHuman/items/7db6c75adea0d5862acf
色々な記事を巡り巡って辿り着いたこの記事で、SkinnedMeshRendererをComputeShaderでミラーリングする方法を覚えました!!!!
SkinnedMeshRendererなしでボーンを制御したかったはずなのに結局SkinnedMeshRendererありき。ドウシテ・・・
https://qiita.com/UnagiHuman/items/7db6c75adea0d5862acf
色々な記事を巡り巡って辿り着いたこの記事で、SkinnedMeshRendererをComputeShaderでミラーリングする方法を覚えました!!!!
SkinnedMeshRendererなしでボーンを制御したかったはずなのに結局SkinnedMeshRendererありき。ドウシテ・・・
473名前は開発中のものです。
2024/01/29(月) 11:09:41.21ID:J/zXr0Lj > Batch cause
> This material has custom buffer override
マテリアルのプロパティにComputeBufferを指定するとSRP Batcherが無効化する問題と喧嘩中
この喧嘩に勝てばパフォーマンスが爆上がりする可能性があってちょっとワクワク
> This material has custom buffer override
マテリアルのプロパティにComputeBufferを指定するとSRP Batcherが無効化する問題と喧嘩中
この喧嘩に勝てばパフォーマンスが爆上がりする可能性があってちょっとワクワク
474名前は開発中のものです。
2024/01/29(月) 15:55:59.16ID:J/zXr0Lj 従来のSkinnedMeshRendererを殺してBatchRendererGroupベースでモデルを描画することに成功しました
ボーンのTransformを操作することでモデルも変形するので、アニメーションも従来のAnimatorで再生できる
ただし肝心の本命のパフォーマンスが従来のSkinnedMeshRendererより低い
従来のSkinnedMeshRendererでアニメーション再生中 ≒ BatchRendererGroup描画でアニメーション停止中
画像の左が従来のSkinnedMeshRendererでアニメーション再生
真ん中の山がBatchRendererGroup描画でアニメーション再生
右がBatchRendererGroup描画でアニメーション停止
https://i.imgur.com/lzm2gop.png
まだJobSystem+Burstとかで改善できる余地はあるので、まだ希望を捨てずに検証を続けます
ボーンのTransformを操作することでモデルも変形するので、アニメーションも従来のAnimatorで再生できる
ただし肝心の本命のパフォーマンスが従来のSkinnedMeshRendererより低い
従来のSkinnedMeshRendererでアニメーション再生中 ≒ BatchRendererGroup描画でアニメーション停止中
画像の左が従来のSkinnedMeshRendererでアニメーション再生
真ん中の山がBatchRendererGroup描画でアニメーション再生
右がBatchRendererGroup描画でアニメーション停止
https://i.imgur.com/lzm2gop.png
まだJobSystem+Burstとかで改善できる余地はあるので、まだ希望を捨てずに検証を続けます
475名前は開発中のものです。
2024/01/29(月) 17:11:25.49ID:ibDcrJvt >>474
そういうのはBurst、JobSystemだね
そういうのはBurst、JobSystemだね
476名前は開発中のものです。
2024/01/29(月) 19:25:41.44ID:J/zXr0Lj >>475
ぶっちゃけネットの海に落ちてるソースコードをいい感じに結合しただけなんだけど
元々のコードが結構最適化されてて詰める余地がなくて割とピンチ
そもそも従来のSkinnedMeshRendererはモデルのメッシュに対するRead/Writeが無効でもスキニングできるのに
BatchRendererGroupでスキニングするためにはメッシュのvertices/normals/tangentsの取得が避けて通れなくてRead/Writeを有効にせざるを得ない時点で勝てない気がしてきた
でもなんか勝ってる人(企業?)もいるっぽいんだよなあ・・・
https://www.infiniteloop.co.jp/tech-blog/2023/07/animatorreplacepart1/
ぶっちゃけネットの海に落ちてるソースコードをいい感じに結合しただけなんだけど
元々のコードが結構最適化されてて詰める余地がなくて割とピンチ
そもそも従来のSkinnedMeshRendererはモデルのメッシュに対するRead/Writeが無効でもスキニングできるのに
BatchRendererGroupでスキニングするためにはメッシュのvertices/normals/tangentsの取得が避けて通れなくてRead/Writeを有効にせざるを得ない時点で勝てない気がしてきた
でもなんか勝ってる人(企業?)もいるっぽいんだよなあ・・・
https://www.infiniteloop.co.jp/tech-blog/2023/07/animatorreplacepart1/
477名前は開発中のものです。
2024/01/29(月) 20:07:32.48ID:J/zXr0Lj やべ、今の実装だとBlendShape対応してなかった
既にパフォーマンス負けてるのにここから更に落ちるのか・・・
既にパフォーマンス負けてるのにここから更に落ちるのか・・・
478名前は開発中のものです。
2024/01/29(月) 21:23:04.00ID:24olBCr9479名前は開発中のものです。
2024/01/30(火) 00:56:34.80ID:sbR3UD9S このDOMOTIONってどうなんだろうか?
https://github.com/gamedev-pro/dmotion?tab=readme-ov-file
現在の機能(v0.3.4)
完全にバーストされたランタイム
ステートマシンビジュアルエディタ
遷移: Boolean、Int、Enum、End Time
コードでクリップを再生するためのシンプルな API (サンプルを参照)
1D ブレンド ツリー
アニメーション イベント
ルートモーション(デフォルトの動作をオーバーライドする必要がある場合、WriteGroupのサポートあり)
オブジェクトアタッチメント
最適化されたスケルトンと最適化されていないスケルトンのサポート
ステートマシンのビジュアルデバッグ
計画されている機能
2D ブレンド ツリー (デカルト/フリーフォーム)
ステートマシンオーバーライド(別名:アニメーターオーバーライドコントローラー)
サブステート
IK サポート
複数レイヤー
スケルトンマスク
https://github.com/gamedev-pro/dmotion?tab=readme-ov-file
現在の機能(v0.3.4)
完全にバーストされたランタイム
ステートマシンビジュアルエディタ
遷移: Boolean、Int、Enum、End Time
コードでクリップを再生するためのシンプルな API (サンプルを参照)
1D ブレンド ツリー
アニメーション イベント
ルートモーション(デフォルトの動作をオーバーライドする必要がある場合、WriteGroupのサポートあり)
オブジェクトアタッチメント
最適化されたスケルトンと最適化されていないスケルトンのサポート
ステートマシンのビジュアルデバッグ
計画されている機能
2D ブレンド ツリー (デカルト/フリーフォーム)
ステートマシンオーバーライド(別名:アニメーターオーバーライドコントローラー)
サブステート
IK サポート
複数レイヤー
スケルトンマスク
480名前は開発中のものです。
2024/01/30(火) 05:39:07.92ID:DCr4w4dC >>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)
サンプルに含まれてるシェーダだと結構いいパフォーマンス出たけど、わいのカスタムシェーダに置き換えてどこまで落ちるか・・・
そもそもLinear Blend Skinningをカスタムシェーダに移植できるのか試すぞ!というところで超朗報
あざます!
使ってみた所感
・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)
サンプルに含まれてるシェーダだと結構いいパフォーマンス出たけど、わいのカスタムシェーダに置き換えてどこまで落ちるか・・・
そもそもLinear Blend Skinningをカスタムシェーダに移植できるのか試すぞ!というところで超朗報
481名前は開発中のものです。
2024/01/30(火) 05:58:14.77ID:DCr4w4dC 長老法!!!!
わいのカスタムシェーダの開発者さんがシェーダ起因のCPUバウンドの原因を特定してくれてパフォーマンスがどちゃくそ改善されました!!!
ビフォー
https://i.imgur.com/2a9gyX8.png
アフター
https://i.imgur.com/TfAT4MG.png
パフォーマンスが低かった理由も教えてくれたけどわいだったら絶対気づけなかった、流石プロ
確かUniversal Render Pipeline/Litだと150fpsとかだったから、ここまでくればもう十分まである
でも折角なのでウィニングラン(?)として>>474と>>479の検証だけはやりきりたい
わいのカスタムシェーダの開発者さんがシェーダ起因のCPUバウンドの原因を特定してくれてパフォーマンスがどちゃくそ改善されました!!!
ビフォー
https://i.imgur.com/2a9gyX8.png
アフター
https://i.imgur.com/TfAT4MG.png
パフォーマンスが低かった理由も教えてくれたけどわいだったら絶対気づけなかった、流石プロ
確かUniversal Render Pipeline/Litだと150fpsとかだったから、ここまでくればもう十分まである
でも折角なのでウィニングラン(?)として>>474と>>479の検証だけはやりきりたい
482名前は開発中のものです。
2024/01/30(火) 06:15:32.02ID:25oO7Vfp 結局シェーダーの違いやったんか
トゥーンシェーダ色々あるけど結構違いありそうやな
トゥーンシェーダ色々あるけど結構違いありそうやな
483名前は開発中のものです。
2024/01/30(火) 08:16:39.24ID:sbR3UD9S >>481
やったじゃん
やったじゃん
484名前は開発中のものです。
2024/01/30(火) 08:19:48.69ID:sbR3UD9S てかBone376あるとか書いてあるけどこれって全部でってこと?
1つのモデルで376ってありすぎじゃね?
1つのモデルで376ってありすぎじゃね?
485名前は開発中のものです。
2024/01/30(火) 10:02:36.71ID:DCr4w4dC 1つのモデルで371だった それをDOTS用に変換すると376になる?
スカートとか髪のボーン1つ1つにモデルを変形させるための本物のボーンとは別で
用途が分からないダミーのボーンがあったりするせいか頭数が多い
そしてこのボーンの上限超過エラーをコメントアウトして握りつぶしてみたけど表示が破綻してダメだった
このライブラリに同梱されてるシェーダでも表示が崩れるので、上限には意味があるらしい
Proがリリースされたら上限が上がることを祈りつつこのライブラリは一旦保留・・・
スカートとか髪のボーン1つ1つにモデルを変形させるための本物のボーンとは別で
用途が分からないダミーのボーンがあったりするせいか頭数が多い
そしてこのボーンの上限超過エラーをコメントアウトして握りつぶしてみたけど表示が破綻してダメだった
このライブラリに同梱されてるシェーダでも表示が崩れるので、上限には意味があるらしい
Proがリリースされたら上限が上がることを祈りつつこのライブラリは一旦保留・・・
486名前は開発中のものです。
2024/01/30(火) 11:08:42.21ID:ZUYV+zXn Unityって何々と何々は共存出来ないって多すぎじゃないですか
487名前は開発中のものです。
2024/01/30(火) 11:16:32.01ID:DCr4w4dC わかる JobSystem+Burstみたいな値型限定で高速化とかするくらいならいっそC++でコーディングさせてくれとは思う
仮にC++で書けたとして本当に速くなるのかは分らんけど
仮にC++で書けたとして本当に速くなるのかは分らんけど
488名前は開発中のものです。
2024/01/30(火) 11:21:52.49ID:25oO7Vfp UEの最適化も結構大変そうだよ
スクエニとか自社の描画システムに切り替えて標準機能ガン無視とかしてる
https://www.docswell.com/s/EpicGamesJapan/ZVPELZ-cedec2018-ue4-CharacterPerformance
スクエニとか自社の描画システムに切り替えて標準機能ガン無視とかしてる
https://www.docswell.com/s/EpicGamesJapan/ZVPELZ-cedec2018-ue4-CharacterPerformance
489名前は開発中のものです。
2024/01/30(火) 12:30:46.72ID:DCr4w4dC やっぱどこのゲームエンジンも低レベルなAPIを酷使して自前で全部実装するのが最強なのか
490名前は開発中のものです。
2024/01/30(火) 15:36:01.77ID:DCr4w4dC BatchRendererGroupでモデルを描画するためには
1. BatchRendererGroupにメッシュとマテリアルを登録する
2. 実際に描画するために他にも色々登録する
必要があるんだけど、2をやらずにメッシュとマテリアルを登録するだけで登録数に比例した負荷が発生してしまう
描画しなくともこの負荷だけで従来のSkinnedMeshRendererにパフォーマンスで負ける
メッシュとマテリアルを登録せず描画処理だけ走らせると150fpsくらい出る
登録することで発生する負荷を追求したいのにProfiler君さあ・・・
https://i.imgur.com/gYgr1JN.png
1. BatchRendererGroupにメッシュとマテリアルを登録する
2. 実際に描画するために他にも色々登録する
必要があるんだけど、2をやらずにメッシュとマテリアルを登録するだけで登録数に比例した負荷が発生してしまう
描画しなくともこの負荷だけで従来のSkinnedMeshRendererにパフォーマンスで負ける
メッシュとマテリアルを登録せず描画処理だけ走らせると150fpsくらい出る
登録することで発生する負荷を追求したいのにProfiler君さあ・・・
https://i.imgur.com/gYgr1JN.png
491名前は開発中のものです。
2024/01/30(火) 16:30:46.65ID:AjZdEr3a492名前は開発中のものです。
2024/01/30(火) 16:32:12.53ID:AjZdEr3a 基本的にボーン数はパフォーマンスに影響あるからできるならいらないボーンは削除したほうがいいと思う
493名前は開発中のものです。
2024/01/30(火) 16:59:29.90ID:HWvPLj+X あくたんと天月(´;ω;`)
494名前は開発中のものです。
2024/01/30(火) 17:21:10.35ID:DCr4w4dC なんかもう>>481で満足しちゃったので(他力本願)
BatchRendererGroupは異なるメッシュやマテリアルの大量描画には向かない可能性があるということで一旦置いておく
300以上のボーンを持つキャラクター30体の不要なボーンを精査するのは時間帯効果が低そうなので優先度低めのタスクとして頭の片隅においておきます・・・
BatchRendererGroupは異なるメッシュやマテリアルの大量描画には向かない可能性があるということで一旦置いておく
300以上のボーンを持つキャラクター30体の不要なボーンを精査するのは時間帯効果が低そうなので優先度低めのタスクとして頭の片隅においておきます・・・
495名前は開発中のものです。
2024/01/30(火) 17:22:01.84ID:DCr4w4dC ちなみに>>481のパフォーマンスが上がった理由は「マテリアルに対してSetVectorしたフレームではConstantBufferの更新が走るので、SetVectorしたマテリアルの数に比例してパフォーマンスが低下する」とのこと
https://note.com/kazuyaraki/n/n71555418dd96
> UnityのSRP Batcherとは何なのか
> 一言でいえば、Draw Call毎にConstant Bufferを更新するという非効率な仕組みをやめたということです。これによりレンダリングに関連するCPUコストが削減されます。
毎フレームSetVectorするとSRP Batcherの強みを殺すことになる
勉強になりました
https://note.com/kazuyaraki/n/n71555418dd96
> UnityのSRP Batcherとは何なのか
> 一言でいえば、Draw Call毎にConstant Bufferを更新するという非効率な仕組みをやめたということです。これによりレンダリングに関連するCPUコストが削減されます。
毎フレームSetVectorするとSRP Batcherの強みを殺すことになる
勉強になりました
496名前は開発中のものです。
2024/01/30(火) 20:09:55.73ID:8GAA7lp1 >>495
なるほどサンクス
なるほどサンクス
497名前は開発中のものです。
2024/01/30(火) 20:21:29.65ID:DCr4w4dC ん?SetVectorがダメならfloatに分割してSetFloatを3、4回走らせればいいだけの気がする・・・
それで許されるのならなんかガバガバだな
もしかして今回の犯人がSetVectorだったというだけで、Set系は全部アウトなのかも
要検証
それで許されるのならなんかガバガバだな
もしかして今回の犯人がSetVectorだったというだけで、Set系は全部アウトなのかも
要検証
498名前は開発中のものです。
2024/01/30(火) 22:43:19.95ID:ZUYV+zXn シェーダー最適化してもまともなAI組んだらCPUバウンドで動かなくなるから
単調なアニメーションさせることしか出来ないけどそれは大丈夫なのかな
単調なアニメーションさせることしか出来ないけどそれは大丈夫なのかな
499名前は開発中のものです。
2024/01/31(水) 03:53:20.43ID:vVhRDcrl >>498
AIって他の雑多な処理と同じくC#でコーディングしたもの?
毎フレーム走るC#の処理が多すぎるとCPUバウンドになるってこと?
どうなんだろう・・・IL2CPPやJobSystem+Burstとかで処理時間を詰めていけば乗り切れたりするのかな
AIって他の雑多な処理と同じくC#でコーディングしたもの?
毎フレーム走るC#の処理が多すぎるとCPUバウンドになるってこと?
どうなんだろう・・・IL2CPPやJobSystem+Burstとかで処理時間を詰めていけば乗り切れたりするのかな
500名前は開発中のものです。
2024/01/31(水) 04:43:02.64ID:vVhRDcrl >>497
やっぱり
SetFloatで試したけど、毎フレームSetFloatしたら70fpsまで落ちた
このカスタムシェーダ、マテリアルの値を毎フレーム更新しなきゃいけない機能を搭載してるから、その機能を一時的に殺すことで130fpsくらいまで上昇した
今のところわい個人はその機能に用がないからいいけど先方はそういうわけにもいかないだろうから、お礼がてら対策できないか検証してみるか
やっぱり
SetFloatで試したけど、毎フレームSetFloatしたら70fpsまで落ちた
このカスタムシェーダ、マテリアルの値を毎フレーム更新しなきゃいけない機能を搭載してるから、その機能を一時的に殺すことで130fpsくらいまで上昇した
今のところわい個人はその機能に用がないからいいけど先方はそういうわけにもいかないだろうから、お礼がてら対策できないか検証してみるか
501名前は開発中のものです。
2024/01/31(水) 10:33:27.78ID:T8K+yJgS >>499
Job Burstでかなり早く処理できるよ
Job Burstでかなり早く処理できるよ
502名前は開発中のものです。
2024/01/31(水) 10:35:59.05ID:T8K+yJgS >>500
Set系が難ありって感じかな
C#スクリプトからその時の状況の変化でイベント発行してシェーダーはその値を使う
状況の変化がない場合はその値をずっと使い続けるみたいなことができればいいと思う
Set系が難ありって感じかな
C#スクリプトからその時の状況の変化でイベント発行してシェーダーはその値を使う
状況の変化がない場合はその値をずっと使い続けるみたいなことができればいいと思う
503名前は開発中のものです。
2024/01/31(水) 11:09:28.53ID:vVhRDcrl >>502
パフォーマンスはかなり最適化されてて、値をキャッシュできるものは元からキャッシュが実装されてた
このシェーダにはPerspectiveRemovalっていう機能があって、カメラとキャラクターの向きや位置関係をリアルタイムでシェーダに教えてあげる必要があるのでキャッシュが使えない
PerspectiveRemovalが何者か正確に理解できてないけど違いはこんな感じ↓
PerspectiveRemovalオフ(そこら辺のシェーダでも通常はこっち)
https://tadaup.jp/73e565be5.png
PerspectiveRemovalオン
https://tadaup.jp/73e56309a.png
パフォーマンスはかなり最適化されてて、値をキャッシュできるものは元からキャッシュが実装されてた
このシェーダにはPerspectiveRemovalっていう機能があって、カメラとキャラクターの向きや位置関係をリアルタイムでシェーダに教えてあげる必要があるのでキャッシュが使えない
PerspectiveRemovalが何者か正確に理解できてないけど違いはこんな感じ↓
PerspectiveRemovalオフ(そこら辺のシェーダでも通常はこっち)
https://tadaup.jp/73e565be5.png
PerspectiveRemovalオン
https://tadaup.jp/73e56309a.png
504名前は開発中のものです。
2024/01/31(水) 11:25:56.94ID:3RPE9L0m >>503
顔がこっち向く的な?
顔がこっち向く的な?
505名前は開発中のものです。
2024/01/31(水) 11:26:47.66ID:3RPE9L0m その機能削除して普通にIKとかでよくね?
AnimationRiggingはデフォルトでBurst対応してたと思う
AnimationRiggingはデフォルトでBurst対応してたと思う
506名前は開発中のものです。
2024/01/31(水) 11:35:08.35ID:vVhRDcrl 削除っていうか、このシェーダは購入したもので不定期的にあるアプデの恩恵を受けたい
&いつか自分がこの機能を使いたい時が出てくるかもしれないから、正式に修正してもらったほうが嬉しい
先方もわいが出したパフォーマンス最適化の提案を度々取り入れてくれてるので今回も直したソースコード送り付けてお願いしてみる
&いつか自分がこの機能を使いたい時が出てくるかもしれないから、正式に修正してもらったほうが嬉しい
先方もわいが出したパフォーマンス最適化の提案を度々取り入れてくれてるので今回も直したソースコード送り付けてお願いしてみる
507名前は開発中のものです。
2024/01/31(水) 11:55:33.80ID:T8K+yJgS >>506
なるほどね
なるほどね
508名前は開発中のものです。
2024/01/31(水) 13:45:40.82ID:vVhRDcrl 修正できたからウッキウキでお願いの連絡しようとしたら、とっくに修正終わってるからリリース待っててちょと一蹴された、さすがプロ
509名前は開発中のものです。
2024/01/31(水) 20:48:03.16ID:YUKGGu/H 素朴な質問だけどシェーダー何使ってるの?
MMDはどうやってUnityにインポートしてる?MMD4Mecanim?
MMDはどうやってUnityにインポートしてる?MMD4Mecanim?
510名前は開発中のものです。
2024/01/31(水) 20:48:05.51ID:YUKGGu/H 素朴な質問だけどシェーダー何使ってるの?
MMDはどうやってUnityにインポートしてる?MMD4Mecanim?
MMDはどうやってUnityにインポートしてる?MMD4Mecanim?
511名前は開発中のものです。
2024/01/31(水) 23:21:39.42ID:vVhRDcrl >>509
シェーダ公式ページ 画像多いので通信量とか注意
https://github.com/ColinLeung-NiloCat/UnityURPToonLitShaderExample
MMD4Mecanimでインポートしてる
正確には同梱されてるpmx2fbx.exeでfbxに変換するだけで、それ以降はMMD4Mecanimの機能は全く使ってない
シェーダ公式ページ 画像多いので通信量とか注意
https://github.com/ColinLeung-NiloCat/UnityURPToonLitShaderExample
MMD4Mecanimでインポートしてる
正確には同梱されてるpmx2fbx.exeでfbxに変換するだけで、それ以降はMMD4Mecanimの機能は全く使ってない
512名前は開発中のものです。
2024/02/01(木) 01:07:18.15ID:950QpuXW513名前は開発中のものです。
2024/02/01(木) 18:34:04.15ID:7MENY3uE 今日も今日とて、みみっちぃ最適化をする人生
・(Skinned)MeshRendererにはBoundsというプロパティがある
・Boundsとはモデルを覆う箱の大きさを設定するプロパティで、この箱がカメラの描画範囲にあるかどうかでカリング処理が施される
・Boundsの初期値はモデルの初期ポーズを覆う最低限の大きさしかない
→アニメーションでポーズが変わると初期値の箱から手足がはみ出ることがある
→結果として、本来カメラに映るはずの手足がカリングで非表示にされる
・これの簡単な対策はBoundsをクソでかくすることだが、でかすぎるとカメラにモデルが映ってないのにカリングされなくなる確率が高まる
→そこでわいはボーンの位置を全部読み取ってBoundsのサイズを毎フレーム更新する実装を施していた
→ボーンは1キャラあたり300以上、つまりTransform.positionのアクセスが300以上×キャラクターの数発生する
これをBurstで最適化する
見込みとしては2msしか短縮されないけど、今のわいは1msでも最適化したい
・(Skinned)MeshRendererにはBoundsというプロパティがある
・Boundsとはモデルを覆う箱の大きさを設定するプロパティで、この箱がカメラの描画範囲にあるかどうかでカリング処理が施される
・Boundsの初期値はモデルの初期ポーズを覆う最低限の大きさしかない
→アニメーションでポーズが変わると初期値の箱から手足がはみ出ることがある
→結果として、本来カメラに映るはずの手足がカリングで非表示にされる
・これの簡単な対策はBoundsをクソでかくすることだが、でかすぎるとカメラにモデルが映ってないのにカリングされなくなる確率が高まる
→そこでわいはボーンの位置を全部読み取ってBoundsのサイズを毎フレーム更新する実装を施していた
→ボーンは1キャラあたり300以上、つまりTransform.positionのアクセスが300以上×キャラクターの数発生する
これをBurstで最適化する
見込みとしては2msしか短縮されないけど、今のわいは1msでも最適化したい
514名前は開発中のものです。
2024/02/01(木) 18:37:10.31ID:7MENY3uE UIの実装を進めてる時よりみみっちぃ最適化に熱を上げてる時のほうがイキイキしてるわいって・・・
515名前は開発中のものです。
2024/02/01(木) 19:00:27.95ID:V9fYybJx516名前は開発中のものです。
2024/02/01(木) 19:10:05.01ID:7MENY3uEレスを投稿する
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【実況】博衣こよりのえちえち朝こよ🧪 ★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- カカロット、腰痛い
- 【!?】高市早苗「靖国神社電撃参拝プラン」浮上!これもう戦争だろ… [481941988]
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
