ousttrue/UniGLTF

glTF標準のマテリアル情報がほとんどエクスポートされない

vyv03354 opened this issue · 2 comments

vrm-c/UniVRM#17 より移動

現状だとUnity以外の実装もUnity向けの情報をVRM独自拡張から解析して変換しなければならないのが辛いです。glTF標準で表現できない情報であれば仕方ありませんが、たとえばUnityのRenderTypeタグのうち透明度に関わるものは

UnityのRenderTypeタグ glTFのmaterial.alphaModeプロパティ
Opaque OPAQUE (デフォルトなので出力は不要)
Transparent BLEND
TransparentCutout MASK

のように対応します。またVRM/Unlit系シェーダーは、すでに標準化されているKHR_materials_unlit拡張で(ZWriteの有無以外)ほぼ表現可能です。VRM/UnlitCutoutなどのシェーダーの_Cutoffプロパティは、glTFのmaterial.alphaCutoffに変換して表現できます。

互換性のために従来の情報を維持するのはかまいませんが、これらのglTF標準の情報もエクスポートできないでしょうか。VRMの独自拡張に非対応のglTFビューアーとの相互運用性も向上すると思われます。

コードを確認ました。

public static glTFMaterial ExportMaterial(Material m, List<Texture> textures)

強化します。