Getting textures to look like the source image.

I’m going to admit we’ve been doing virtual production using Unreal (directly, with Pixotope, with Zero Density) for 5 or 6 years, and I’ve never gotten to the bottom of this problem or how to solve it, and people working for those companies typically consider this an Unreal issue and haven’t been any help. The images below are taken from Unreal 5.3, not a commercial product based on Unreal.

I cannot figure out how to get a texture to appear as it does in the source. Here is a basic example:

This image shows the texture, and the resulting material. Despite being unlit (both in shading model and the fact I’m ONLY using emissive), the lows and highs get totally blown; the dark area in the upper left you should be able to see the shelf; the dark area with cat is just totally NOT what is in the picture. The bottom of the cat “house,” and the lighter colors in the top right are way too hot.

The next test is using the “MF_IgnoreExposure” function, which brings us a lot closer to what the resulting material should look like:

This brings the highs in line, you can actually see the fur texture on the little cat house, and the upper right wood floor looks better (but not completely correct); the darks get totally crushed - you cannot make out that upper left part is a wooden book case, and most of the cat disappear.

Finally, if I take that one and tell the material render to use unlit, we can get a lot closer:

This is the closest look I can get (in the material editor, anyway), but it’s still not right. First of all, it’s an unlit, emissive only material - why would lighting affect it, and how can I make it not?

Secondly, the colors are actually still off. If you compare the lighter color fur of the house and the carpet, it’s not perfect - the cat inside, too, if you look carefully, you can see more leg on the right than in the original texture.

Ideally we can get the EXACT image to appear in live renders; failing that, what I’m seeing in the “unlit” Material Editor rendering would be the next best thing, but there is lighting in our scene we don’t want to affect the image.

It may seem nitpicky, as it’s very close, but this is for live broadcast TV, and people/athletes/actors and the companies that represent them do not take it kindly if the images and logos are not correct, and producers and directors are not very forgiving.

Compounding the problem is that these are loaded live (import file texture), as the project is often running while we’re on the air, and we get assets at the last minute, we cannot stop the project to import a texture.

We also have this problem when doing “virtual monitors” with live SDI input, but I figure if I can solve one, I can apply it to the other.

All that said, we’ve tried adding power nodes (affecting contrast), desaturate nodes, brightness adjustments, etc., but not only do these not get us an exact image, they just make live work more complicated, as each source (image or live video) needs tweaks and adjustments when it should simply look like the source.

Any help would be appreciated.

2 Likes

The normal recommendation from the color scientists here when people are looking for “I have an input value that I want to be the output value” is to set the Tone Curve Amount to 0, Expand Gamut to 0, and Blue Correction to 0.

Thanks, I will test it out. Is there a way to affect only media inputs, and not 3D assets? IOW, can I do this with a material, maybe?

1 Like

I tried the Tone Curve amount from the console and it seemed to help; where do I set the other options?

1 Like

In the project prefs or in the Post Process Volume.

1 Like

Have you seen this? https://youtu.be/faNnWlc4gPo?si=zUFg7-0lE6YWBddx

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.