I have a lot of experience with UE3 and CRYENGINE, but I am finding it difficult to make things look good in UE4. I know I am doing something wrong because I have seen what UE4 can do and it is beautiful.
Here is my problem:
My textures always import excessively bright. I know PBR–I reread the UE docs about it many times, and it is said that no diffuse texture should ever go below a median value of 50. So, as I understand it, 50 is the darkest texture one can import, but when I do it comes into the engine as light gray, almost white in some areas. I am not sure why it does this–are there sample source textures (not the .uassets) around somewhere?
Also, I cannot figure out why building lighting does not have any effect sometimes. Reflection Captures do not perform any visual change, and my shadows are pitch black. This is similar to what happens when I turn off static lighting in the level, but even when I turn it on this still happens. Strangely enough, the only thing I can get to work is Light Propagation Volumes and those aren’t even finished.
I want to make it very clear that I am not complaining about the engine. I want to figure out what I am doing wrong and any help is greatly appreciated, thank you.
I’m not sure where you got that idea (I can’t find it in this PBR doc and don’t recall seeing it), and apologies if I misinterpreted what you are saying, but “no diffuse texture should have a median value below 50” does not mean the darkest pixel you can import has a value of 50. Median value is not the minimum value, it’s the point where there are as many pixels in the texture that are brighter as there are pixels that are darker. If you are making your textures brighter in order to raise the darkest pixel above 50, then obviously they will come in brighter than they should. (The same thing will happen if you are just trying to raise the median above 50, but not as badly)
A value of 50 is ~19.5% grey (i.e. dark grey), or 0.195 on a 0 to 1 range. Note that I’m assuming here that you were referring to 50 on the 0-255 scale, rather than a percentage. If you were changing the texture to a minimum value of 50 percent, then your textures would be skewed even brighter, as you are essentially ignoring the entire lower half of the brightness range.
The page linked above lists several non-metallic materials with lower intensity than that: charcoal, asphalt, and bare soil. Green grass is barely above it, and desert sand only a little higher. I also can’t find any reference to median in that page.
The upshot is, if the material you are trying to represent is as dark as, for example, charcoal, then there’s no reason a single pixel in that texture would be brighter than RGB 5, 5, 5 or so (that’s the intensity given for charcoal in the page above, multiplied by 256 in each channel)
Edit: it occurred to me that you might be referring to linear workflow, attempting to offset gamma. If so, perhaps that link will be of use.
Thanks for the reply. My info came from this blog: DONTNOD Physically based rendering chart for Unreal Engine 4 | Sébastien Lagarde
“…the base color (the one use by the non-metallic) must be in the range of the first gradient 50-243.”
I took that quote to mean that no texture should have an average value less than 50 RGB.
Since making the above post, I have completely reinstalled the engine and started a fresh map, which seems to have eliminated a lot of problems. That and I realized the default brightness for a directional light (10) is very high and overly brightens everything. I notice on some of Epic’s work they use 3.1415 (pi?). Is there a reason for this? Is this a physically accurate default value?
EDIT: Ok, apparently, using 16-bit PSDs was causing the engine to brighten the textures on import. Using good old TGAs solved that.