-
Notifications
You must be signed in to change notification settings - Fork 435
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support exporting texture as jpg #245
Comments
非可逆圧縮を使うなら、最近glTFに入ったWebPテクスチャの拡張に乗っかるのもアリだと思います。 また、NormalMapなどのRGB三原色では無い値を格納しているテクスチャに対して |
WebPはアルファ付きで圧縮率も良さそうなので検討してみます |
PNGのエクスポートについてですが、テクスチャの設定でAlpha SourceがNoneになっている場合は、アルファチャンネルを含めずに24bitでエクスポートできないでしょうか。できれば元のPNGファイルのbit数に応じて、エクスポート時のPNGのbit数が変わればと思います。 |
UniVRM-0.55.0現在、サムネイルがPNGの場合、サムネイルファイルがそのままエクスポートされます。
再圧縮による上記の問題を回避するため、同じようにすべてのテクスチャで再圧縮しないようScripting Define Symbolsなどで切り替えられるようにすることはできないでしょうか。 |
EditorExport時にAssets以下にjpgが存在していた場合はそれを書き込むように変更しました。 |
UniVRM/Assets/VRM/UniGLTF/Scripts/IO/TextureIO.cs
Line 136 in 39f29c2
現在の UniGLTF 実装では、全てのテクスチャを
png
として出力していますが、アルファチャンネルを利用していないテクスチャをjpg
として出力することで、 VRM ファイルの容量を削減出来るのではないでしょうか。例えば ニコニ立体ちゃん (VRM) は 10,462 KB のうち 5,038 KB と約半分がテクスチャです。
テクスチャ出力の際、全てのピクセルでアルファチャンネルを利用していないか確認するか、 NormalMap や Emission など、アルファチャンネルが利用されないことが判明しているテクスチャを自動的に判別し出力時に変換することで、 VRM ファイルサイズを小さく抑えることが出来るのではないでしょうか。
例に挙げたニコニ立体ちゃんを純粋に全て jpg 85% に変換した所、合計 916 KB と約 18% まで削減することが可能でした(サムネイル用画像が 1.5 MB もあるのが問題な気がしますが)。
実際はアルファチャンネルのあるテクスチャが多いためここまでの削減率にはならないと思いますが、ご検討いただければと思います。
The text was updated successfully, but these errors were encountered: