ITextureDeserializer の説明

This commit is contained in:
ousttrue 2023-04-11 15:25:02 +09:00
parent c395f9c40e
commit a28bf729b9
3 changed files with 63 additions and 1 deletions

View File

@ -1,4 +1,4 @@
# v0.106 SpringBone の手動更新
# `v0.106` SpringBone の手動更新
from {doc}`v0.106.0</release/100/v0.106.0>`

View File

@ -0,0 +1,61 @@
# `v0.76` ITextureDeserializer(テクスチャーローダー)
このインタフェースを使うとテクスチャーロードをカスタマイズできます。
## UnityTextureDeserializer
UniVRM の実装は、`UnityTextureDeserializer` です。
<https://github.com/vrm-c/UniVRM/blob/master/Assets/VRMShaders/GLTF/IO/Runtime/Texture/Importer/UnityTextureDeserializer.cs>
[ImageConversion.LoadImage](https://docs.unity3d.com/ja/2020.3/ScriptReference/ImageConversion.LoadImage.html) を使用して `png``jpeg` をロードできます。
通常の `glTF` はテクスチャー形式として `png``jpeg` を格納できます。
`ImageConversion.LoadImage` はメインスレッドをブロックします。
大きなテクスチャーや大量のテクスチャーをロードすると画面が固まることがあります。
`png``jpeg` から `raw pixel` を取得する部分をスレッドに乗せて非同期処理にすることで
パフォーマンスを向上させる余地があります。
## 差し替え方法
`new UniGLTF.ImporterContext` の引き数で指定することができます。
```cs
public ImporterContext(
GltfData data,
IReadOnlyDictionary<SubAssetKey, UnityEngine.Object> externalObjectMap = null,
ITextureDeserializer textureDeserializer = null, // 👈 これ
IMaterialDescriptorGenerator materialGenerator = null)
```
`new VRM.VRMImporterContext` の引き数で指定することができます。
```cs
public VRMImporterContext(
VRMData data,
IReadOnlyDictionary<SubAssetKey, Object> externalObjectMap = null,
ITextureDeserializer textureDeserializer = null, // 👈 これ
IMaterialDescriptorGenerator materialGenerator = null,
bool loadAnimation = false)
```
`new UniVRM10.Vrm10Importer` の引き数で指定することができます。
```cs
public Vrm10Importer(
Vrm10Data vrm,
IReadOnlyDictionary<SubAssetKey, UnityEngine.Object> externalObjectMap = null,
ITextureDeserializer textureDeserializer = null, // 👈 これ
IMaterialDescriptorGenerator materialGenerator = null,
bool useControlRig = false
)
```
## UnityAsyncImageLoader に置き換える例
ISSUE に使用例をいただきました。
<https://github.com/vrm-c/UniVRM/issues/1982>
[UnityAsyncImageLoader](https://github.com/Looooong/UnityAsyncImageLoader)を使ってパフォーマンスを向上できます。

View File

@ -26,4 +26,5 @@ fast_spring_bone
0_95_highlevel
0_96_1_use_gamma_colorspace
0_106_spring_manual_update
0_76_texture_deserializer
```