Allow VRCImageDownloader to download and downscale images larger than 2048x2048px
tracked
anatawa12
Today, the most popular use case of the IVRCImageDownload is to share some picture with friends in VRChat.
However, there is one big annoying behavior in IVRCImageDownload for this use case. That's 2048x2048 texture size limit.
Therefore, I hope VRChat to have the feature that automatically scale the texture size down to 2048x2048.
As described before, it's common to use IVRCImageDownload for sharing pictures with friends.
There are several assets specifically designed for this use case such as Image Pad and ImageTablet.
However, the 2048x2048 size limit is an annoying for this use case because today picture is likely to exceed this limit.
For example, my iPhone 12 mini with default settings will take picture with 4032x3024 pixels and other modern smartphones also take high resolution image by default.
In VRChat, I feel it’s common to choose take pictures in QHD, 4K, or 8K but none fits 2048x2048 limit.
(FHD and HD fits 2048x2048 though we want to take high-quality pictures.)
The texture downloaded with IVRCImageDownload become uncompressed RG, RGB or RGBA texture on the VRAM so It take huge VRAM.
Therefore, I think it's reasonable to limit texture size on the VRAM.
However, I think it's possible to resize texture down to 2048 off the main thread before loading to to the VRAM.
That’s why I request VRChat to have the feature that automatically scale the texture size down to 2048x2048.
日本語要約
IVRCImageDownloadというImage PadやImageTabletのような画像を共有するためのアセットで使われている機能に対する要望です。
前述のタブレットではVRChatの制限により2048x2048より大きい画像を指定した場合にはエラーになりますが、エラーにする代わりに 2048x2048 以下に自動的にリサイズするオプションを追加してほしいという要求になります。
(技術的理由により2048x2048より大きい画像をそのまま表示するのは厳しいです)
このオプションがあれば、Discordなどに上げた画像を共有するときにエラーが出て使えないという面倒事を減らせるようになります。
Log In
Fax
tracked
I adjusted the title of your post for accuracy. Hope that's OK!👍
Fax
Hi, anatawa12! Thank you for your request.
It sounds like you're asking for multiple things. Does this sound accurate?
- IVRCImageDownload should be allowed to download images larger than 2048x2048.
- Automatically clamp the maximum size of downloaded images to 2048x2048
- Resize images on a different thread than VRChat's main thread.
3 sounds like a separate issue from 1 and 2. We
could
add auto-resizing on the main thread, for example. Would this be acceptable to you?anatawa12
Fax Thank you for reply. Those three is correct and auto-resizeing on the main thread is acceptable for me.
Sorry for not clearing the purpose of request, requested feature, and considered alternatives.
My thought was like the following:
- I want to allow image downloader to load image larger than 2048x2048 for image pad usability.
- However, simply placing image larger than would cause huge VRAM usage. I thought it might be unacceptable by VRChat.
- Therefore, I should request resizing image down to 2048x2048 for Image Downloader instead of simply loading large image.
- But, resizing image would need some mount of time and might cause lag if it was performed on main thread. It might be unacceptable for VRChat team.
- So, I should request resizing off the main thread.
Therefore, if the load is acceptable for VRChat team, there's no problem with resizing on main thread or just allowing loading image larger than 2048x2048 onto the VRAM.
The purpose of this canny is easily loading image larger than 2048x2048.
Resizing image or do it off main thread is just a solution to the problems I come up with and they are not necessary.