RenderTextureによるUIスクリーンのぼやけ問題

1)RenderTextureによるUIスクリーンのぼやけ問題

2)Unity 2019ToLuaエクスポートParticleSystemが異常

3)Android 10でのUWAGOTスクリーンショットの問題

4)Addressables.CheckForCatalogUpdatesおよびAddressables.GetDownloadSizeAsyncに関する問題

5)RenderDocでHuaweiのフレームをキャプチャすることはできない


 

Rendering

Q:UIスクリーンのぼやけを確認するにはどうすればよいですか?緑が表示され、紫も点滅しています。下の図に示すように、黒の背景と紫が点滅しており、スクリーンショットを撮ることができません。これは実機にしか表示されません。エミュレータでは問題なく表示されます。

 

この黒い背景は、SRPによって実装されたRenderTextureのBlur効果であり、使用されるデバイスはXiaomiK30です。

A1:FrameDebuggerで問題がある実行Shaderを特定することをお勧めします。問題があるのは、Shaderのレンダリング実行順序が間違っている可能性があります。RenderPassEvent設定が正しいかどうかを確認してください。

 

A2:問題が見つかりました。RenderTexture.GetTemporaryが使用され、depthBufferパラメーターが16に渡されますが、0なら問題なくなります。


Lua

Q:下図に示すように、Unity 2019 ToluaによってエクスポートされたParticleSystemは異常になります。

ここのTypeはnullであるため、ParticleSystemをエクスポートできません。

 

A:1.0.8.595でUnityランタイムライブラリ[out]でout以外のパラメータをマークする問題に対処し、公式Webサイトにアクセスして更新してください。

https://github.com/topameng/tolua/commits

topameng committed on 19 Jun 2020


 

Android

Q:UWAはAndroid 10でスクリーンショット機能を正常に使用できません。ドキュメントに従ってManifestを配置しました。

 

A:これは、UWA GOT Onlineパッケージ化のWrite権限の問題に対する解決策であり、スクリーンショットの問題を解決することはできません。現在、Android 10システムを搭載した実機では、APKによって設定されたTargetSDKVersion <= 28の場合にのみスクリーンショットすることができます。TargetSDKVersionは<= 28(28はAndroid 9)に設定されており、APKは引き続きAndroid10で実行できます。


 

Addressable

Q:Addressables.CheckForCatalogUpdatesAddressables.GetDownloadSizeAsyncが常にAsyncOperationStatus.Succeededを返すのはなぜですか?

 

httpサーバーを開いていませんが、それでも成功に返します。元々、Addressables.CheckForCatalogUpdates

とAddressables.GetDownloadSizeAsyncを使用して、アセットを更新する必要があるかどうかを判断しましたが、httpサーバーさえ開いていませんが、正常に返され、更新する必要がないことが検出されました。どのように対処しますか?

 

Addressableバージョン1.16.15

Unity 2018.4.14f

 

A1:コードをチェックした最後、CheckCatalogsOperationのExecuteメソッドに、直接にComplete(result、true、null);のように返したため、常に成功していることがわかりました。

 

A2:Addressables.CheckForCatalogUpdatesは、「catalog ids」のリストを返し、更新があるかどうかを判断します。リストが存在するかどうかを判断するのに十分です。

httpサーバーが開いていない場合は、更新する必要はなく、更新することもできません。GetDownloadSizeAsyncは、最新のCatalogのAssetBundleのhashとダウンロードされたAssetBundleのhashと比較して、ダウンロードする必要があるかどうかを判断し、ダウンロードする必要がある場合はSizeを累積します。catalogは更新されていないため、当然、カタログとは関係ありません。

どのように対処するかは、ビジネスレイヤーがどのように設計したいかによって異なります。例えば:

更新サーバーが開いているかどうかにかかわらず、ゲームに入ったのは、現在のCheckForCatalogUpdatesリターンリストが空で、更新する必要はないと見なされ、実行を続行します。

更新サービスがオンラインである必要がある場合、外部プログラムでサーバーが働いてしているかどうかを判断し、ゲーム更新ロジックに入ります。


 

Rendering

Q:最近、レンダリング深度が正しくないという問題が発生しました。 Snapdragonモデルでのレンダリングが間違っており(エディターと一致していない)、HuaweiモデルとiOSでのレンダリングが正しいです。そこで、RenderDocを使用してフレームをキャプチャして両者の違いを比較します。どちらのステップが異なるかを確認したいと思います。

 

同じパッケージをSnapdragonモデル(約数十MBのデータを含む.rdcファイル)ではキャプチャできますが、Huaweiモデル(約3MBのデータのみを含む.rdcファイル)ではキャプチャされたのは黒いであることがわかりました。

 

RenderDocのIssueにそれと似た問題を見つけました。おそらくこの問題が解決されていないようです。

https://github.com/baldurk/renderdoc/issues/2106

 

テスト環境:

Unity 2018.4 / Unity 2019.4

OpenGL ES3(Vulkanを使用している場合は、Huaweiで通常どおりフレームをキャプチャすることもできます)

 

1プラスのフレームキャプチャ結果:

Huaweiのフレームキャプチャ結果:

A: Mali Gpuを搭載したOPPOがフレームキャプチャができると発見しました、Huaweiでこの問題を確認し続けることはできません。

ただし、考察するうちに、改訂されたRenderDocはHuaweiでフレームをキャプチャできると発見しました。

https://developer.huawei.com/consumer/cn/forum/topic/0203337632069160300


UWA公式サイト:https://jp.uwa4d.com

UWA公式ブログ:https://blog.jp.uwa4d.com

UWA公式Q&Aコミュニティ(中国語注意):https://answer.uwa4d.com