Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
137 stars 2 forks source link

Color space processing doesn't apply properly on textures loaded from raw source when asset variants do not exist #1595

Open RueShejn opened 6 months ago

RueShejn commented 6 months ago

Describe the bug?

when changing the resolution of a texture and then saving the texture and then spawning it out of the inventory, it will not be properly loaded or the wrong version.

To Reproduce

change the resolution of a texture and then save the texture and then spawn it out of the inventory

Expected behavior

the texture should be the same when spawned

Screenshots

Resonite_i68BPpf1RB

left is the texture spawned from inventory and right is the same asset before saving

it should be noted that the texture on the right was spawned from my inventory lowered to 2k then saved and spawned

Resonite Version Number

Beta 2024.3.12.1169

What Platforms does this occur on?

Windows

What headset if any do you use?

No response

Log Files

DESKTOP-L6KVB13 - 2024.3.12.1169 - 2024-04-03 09_27_30.log

Additional Context

No response

Reporters

No response

shiftyscales commented 6 months ago

IIRC this is a transient issue that happens when a texture is first imported before it has had time to be processed by the asset variant system. Is it still an issue, @RueShejn?

If so, could you please provide the URL to the asset?

Frooxius commented 6 months ago

I asked Rue to make issue on this, because while the issue is transient, it shouldn't be happening in the first place.

The issue here is that we don't apply proper color space processing on certain textures when they're loaded from raw source when the asset variants do not exist.

shiftyscales commented 6 months ago

I see- I'll update the issue name accordingly, thanks.

AegisTheWolf commented 4 months ago

Another case has happened where this caused a diffuse texture of an asset to have different colorspace than when it was originally uploaded.

(Context: TheLass420 created a revolver model texture that had the same issue) URL of texture in question : resdb:///e73dd6899c5c2b295d3f3b0768348f4e10b7dc7d9c9fadd163c5cecff3a861dc.exr (Local url of re uploaded texture) local://9rhrxbgn9pzq96p1ozidnb7996bnjehoy65xg6c1riruwmrxmtpy/uerF6NC71ECuRm2cL5RLAw.png

(I know the local texture url isnt useful but i noticed the file format at the end is PNG and the bugged texture is EXR Could this be the culprit???)

shiftyscales commented 3 months ago

Assigning @Geenz to take a look into this considering their expressed interest in duplicate issue #2466.

Raidriar796 commented 1 month ago

I've been running into this issue a handful of times in the last couple of days and I found a workaround of sorts.

The bit depth seems to influence whether RGBA32 or RGBAHalf is used while asset variants are not available. I was able to consistently replicate this by creating a noise texture in substance designer and first exporting it as 8 bits per pixel and again as 16 bits per pixel. Both were imported into Resonite and saved before variants finished generating locally to avoid uploading variants. When they were loaded from my inventory this is the result: (8 bit image on the left, 16 bit image on the right) DiscoloredRGBAHalfIssue

In both cases, forcing the texture to RGBAHalf causes the discoloration, so this isn't a fix but using 8 bits per pixel textures can avoid the issue for as long as the asset variants aren't available.