Now unity 5.5 is out and it supports linear rendering on gles3.0, but not 2.0.
If i do a pow(2.2) after import a color texture, the content is in linear space right?
After lighting in linear space, i can do a gamma correction postprocess to make every pixel pow(1.0/2.2)
Theorectically, this is identical to gamma sampler in shader.
Did anyone did this before or i mistake something?
Not exactly the same. In the linear space rendering a color texture is converted using sRGB which is slightly more complex than just a “pow(2.2)”. However you are correct in that it is totally possible to get results that are very similar to linear space by doing what you suggested. If I remember correctly Unreal Engine just used a power of 2 (ie: just multiply the result by itself) and a sqrt() to approximate it for gles 2.0. The main problem with hardware that’s limited to gles 2.0 is it tends to be really slow, so every optimization helps, and x*x & sqrt(x) are actually a lot faster than pow(x, 2.2) & pow(x, 1/2.2).