Can you please help with the function in shaders? tex2Dlod and texCUBElod work perfectly in the editor even Unity3D enabled emulation OpenGL ES 2.0, but on the mobile phone (Android) refuse to work. Is there any way to fix this situation? Thanks in advance.
Then you should explain all this in your first post which might mislead people trying to help you. You could have wrote your own shader. Anyway for such an issue try to reach Marmoset guy they will certainly have a clue as you are using their shaders. Cheers
Unfortunately most Android hardware does not support tex2Dlod or texCUBElod. Those functions require an openGL extension (called EXT_shader_texture_lod) that is not guaranteed support by GLES 2.0. Luckily all iOS devices support it anyway and iOS targets can use mipmapped reflection cubes. But you cannot rely on it for Android builds. It looks like GLES 3.0 will have a textureLod function: http://www.khronos.org/opengles/sdk/docs/man3/index.php Not sure what it would take to get access to it through Unity though.
monkeyscience, thank you very much, your answer is most useful! dirtybassett, tex2Dbias not suitable due to the many artifacts and textures in the editor and on the phones.
tex2Dbias isn't quite enough for mipmapped gloss (and believe me I've tried ). It can only shift which mip is selected for the fragment but distance and angle of the fragment are still in the equation, creating a lot of gloss map artifacts that change as you move the camera around. It's a shame really, EXT_shader_texture_lod is not some exotic new extension or concept...