Search Issue Tracker
Fixed
Votes
1
Found in
5.3.1p3
Issue ID
764883
Regression
No
[ColorSpace][Mesh] Vertex colors aren't properly converted into linear color space
UI Canvas does vertex color conversion, as expected.
Everything outside of UI does not do color conversion, which makes the vertex colors not match between linear & gamma color spaces. Requiring custom shaders or some similar things.
Steps to reproduce:
1) open the project
2) play scene 'LinearColor..'
note: upper cube has canvas renderer which works as intended
Actual behavior: objects have different colors
Expected behavior: objects should have the same color
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- "IndexOutOfRangeException" and "NullReferenceException" are thrown and Element disappears from UI Builder when undoing rename of element in "Open Instance in Context" menu
- Select Scriptable Object window freezes and becomes unresponsive when currently opened UXML Template is selected for binding's Data Source
- [Linux] “ReleaseButton expects buttonId >= 0” error is thrown when importing Assets via drag and drop
- Asset gets unselected and added Subgraphs list item is not undone when performing Undo in Heatmap with Default Values asset Inspector
- Black square “shadow” artifacts visible when using Screen Space Reflections without maximum smoothing
Resolution Note:
When importing / bringing a mesh into unity the color channel can be used for a number of things (vertex displacement, flow vectors, color). This means that when we pass the vertex color to the shader we don't know the intent or how it's going to be used. It MAY be color, or it may not, we can't make an assumption about how the channel should be used.
In the UI system we can make this assumption as we are controlling the shaders and set up of the rendering. Because of this we can linearize the color when we built the batch.
If you know your mesh color is in fact a color you can linearize it in your vertex shader.