Closed iCyP closed 4 years ago
webPを追記しました
圧縮テクスチャは、モバイルでGPUで扱えるフォーマットが重要になると思います。 また、アルファチャンネルを扱えるフォーマットもベースとなると思います。 GLTFをベースにしている上では、Basis Universalの採用が最良かと思われます。
Google and Binomial Contribute Basis Universal Texture Format to Khronos’ glTF 3D Transmission Open Standard https://www.khronos.org/blog/google-and-binomial-contribute-basis-universal-texture-format-to-khronos-gltf-3d-transmission-open-standard
Unityで、JPGとKTX 2.0 Basis Universalの1024x1024の画像をアプリのメモリが無くなるまでデコード/トランスコードして読み込んでいる比較している動画です。 https://www.youtube.com/watch?time_continue=4&v=sYzkwQvaFSc&feature=emb_title
basisの実行結果を追記しました
返答大変遅くなって申し訳ありません。 詳しく調査して頂きありがとうございます!すごく助かります。 WebPに関してはUnityでもIOが困難なため、MSFT_lod( #74 )と同様にアプリケーションがハブサービスにWebP変換を要求した場合にだけ入手出来るものとし、 ユーザが手元の環境でWebPを取り扱うことは考慮しなくて良いかなと思いました。(同様にAndroidであればASTCにするなど) KTX 2.0 Basis Universalは良さそうですが、まだgltf拡張(KHR_image_ktx2?)が開発中になっているためspec1.0に取り込むのは難しい気がしてます。 https://github.com/KhronosGroup/glTF/blob/master/extensions/README.md
ひとまず、本件はglTF側で進行している・すでに存在する拡張群で解決が可能なトピックとなりますので、VRMのチームで検討すべき事柄ではないかなと思いますが、いかがでしょう。
一旦VRMの仕様としては圧縮テクスチャについて言及をすることはしない方針とします。
手元で試したことを共有します。 リソース:Vroid モデル1体分に含まれるすべてのテクスチャ(png)の一括変換(法線マップ・透過画像も含まれる 試したこと:
結果 ファイル数:46
webpはBlenderで読み込めないのと手元でガッとやれるツールが見つけられなかったので無いです(ないですimagemagicを思い出したので追記しましたが、サムネを比べる限り正常に動いているようですが、可逆非可逆込みでオプションがわかってない上にエラー吐いてるのに出たバイナリなのでよくわかりません(でも圧縮率がえぐい) でもWebPはBlenderで現状IO出来ないので入れてほしくないです(強願望)さらに以下より追記:basis これもコマンドラインやドキュメントのオプションでエラーが出るので無オプションです。 https://github.com/vrm-c/vrm-specification/issues/63#issuecomment-561554384
参考になれば幸いです。 p.s.