Yellow-Dog-Man / Resonite-Issues

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

LUTs cannot be pasted from clipboard and must be imported with the file directly #2946

Open Dusty-Sprinkles opened 2 months ago

Dusty-Sprinkles commented 2 months ago

Describe the bug?

Earlier today I was trying to import a rickroll LUT because it sounded like a funny idea, and I assumed it would allow pasting from clipboard like any other image, however any LUT I tried would fail to load no matter what.

To Reproduce

  1. Go to this page, right click the image and press "Copy Image" https://wiki.resonite.com/images/8/8f/LUT_BaseLinear.png
  2. Focus on resonite and press CTRL+V
  3. Select LUT
  4. A VolumeUnlitMaterial will appear, but the LUT will never load.

Expected behavior

The lut sucessfully imports even when pasted from clipboard

Screenshots

image the result if the instructions are followed image what the LUT should look like, and if you download the file and drop it into the game

Resonite Version Number

2024.9.12.772

What Platforms does this occur on?

Windows

What headset if any do you use?

Index

Log Files

LUT import fail.log

Additional Context

This will not happen if you copy the file on your computer, but if you copy images from editing programs and such that will happen too which makes it tedious to mess with LUTs

Reporters

Venport/dustysprinkles

lxw404 commented 2 months ago

Probably a relevant part of the logs:

---> (Inner Exception #0) System.Exception: Bitmap3D magic string not found at the beginning of the stream!
  at Elements.Assets.Bitmap3D.Decode (System.IO.Stream stream) [0x00019] in <5c37294489144a5bbbe1f3da92ad10c1>:0 
  at Elements.Assets.Bitmap3D.Load (System.String file) [0x00007] in <5c37294489144a5bbbe1f3da92ad10c1>:0 
  at Elements.Assets.VolumeMetadata.GenerateMetadata (System.String file) [0x00000] in <5c37294489144a5bbbe1f3da92ad10c1>:0 
  at Elements.Assets.AssetMetadataHelper.ComputeMetadata[T] (System.String file) [0x00073] in <5c37294489144a5bbbe1f3da92ad10c1>:0 
  at FrooxEngine.AssetMetadataManager+<ComputeMetadataIntern>d__13`1[T].MoveNext () [0x00140] in <7b41c5634a2646e4ac41ed80a4ddbeee>:0 
--- End of stack trace from previous location where exception was thrown ---
shiftyscales commented 1 month ago

Hmm- based on the exception, it sounds like this issue may be external to Resonite? It sounds like whatever image program you are copying it from treats it directly as image data rather than a LUT and is discarding needed information from the data to properly parse the image as a LUT. I'm not certain if there's anything that can be done here- specifically because either directly importing a LUT file, or importing it while directly copied to the clipboard both work as expected.

If the LUT data that is copied to your clipboard is malformed / missing, I don't think we'd have any way to correct that without the original file / information.

Dusty-Sprinkles commented 1 month ago

Yeah strangely using the Copy Image function on firefox seemed to work properly, though since chrome is the most popular browser I'm not sure what the solution would be in that case?

At the very least they both import looking the same when they come in as images so maybe it would be worth looking into some importer for LUTs that doesn't require this information that gets randomly stripped if you're using the wrong browser? Image

shiftyscales commented 1 month ago

I do not know if that would even be possible. Seeking input from @Frooxius.

But if there are some applications that properly preserve the full data, it does sound like issues specific to that software / not something we should need to account for / spend time developing on our end.

Dusty-Sprinkles commented 1 month ago

I personally think it would be worthwhile, since a solution to that problem would also allow LUTs to be imported from more sources than they can be via clipboard right now, since I can't really even find an image program that lets you copy a valid LUT as a lut without having to save it directly, so its much more common to run into this problem with the current solution than have a working LUT.

To be more clear the things I've tested so far with what would be a valid LUT if just saved as is with no changes and had it fail are:

  1. Chromium-Based Applications (Discord, Edge, Chrome)
  2. Gimp
  3. Krita
  4. Paint.Net

The one thing I had not fail was Firefox.

This also applies to images copied and pasted into and from Resonite (e.g: the rendered picture of a camera at a resolution of 1024x32) of the correct proportions, but that may be a separate issue

Dusty-Sprinkles commented 1 month ago

by the way I would like some feedback on whether or not the fact that this applies to images made in Resonite counts as a separate issue @shiftyscales

shiftyscales commented 1 month ago

I'm not certain I understand what you mean, @Dusty-Sprinkles - what do you mean by " This also applies to images copied and pasted into and from Resonite (e.g: the rendered picture of a camera at a resolution of 1024x32) of the correct proportions, but that may be a separate issue" - are you trying to create your own LUTs from within Resonite?

Dusty-Sprinkles commented 1 month ago

I'm not certain I understand what you mean, @Dusty-Sprinkles - what do you mean by " This also applies to images copied and pasted into and from Resonite (e.g: the rendered picture of a camera at a resolution of 1024x32) of the correct proportions, but that may be a separate issue" - are you trying to create your own LUTs from within Resonite?

Yeah, since a LUT is also valid as up to a 32x32x32 grid represented in 1024x32 (32 cells wide) strip

I figured I should at least be able to copy and paste those into the game as LUTs if I produced them here but I can't do that either

this is using information from the wiki

resrec:///U-Venport/R-61ddb093-8439-4a9a-9367-bf84fa7e4139 is what I used to make strips ingame, but its a very basic object that just makes screenshots of the approperiate resolution since you can't use them directly ingame because of this bug

shiftyscales commented 1 month ago

I would consider creating LUTs from within Resonite itself to be a separate issue / feature request, yes.