- Home /
How to import / use 16bit PER CHANNEL (ARGB64) texture in unity?
Hello,
I can't seem to find a way to import 16 bits (per channel, not per image) textures into unity and really need this for detailed displacement maps with heavy tessellation, am i missing something or is it not supported?
I've seen references to ARGBHalf but all i can find on the net relating to this in unity is for RenderTextures only, nothing about plain regular 16 bit per channel imported png or similar.
Thanks!
Answer by CHPedersen · Aug 02, 2013 at 11:28 AM
I'm sorry to say I don't think this is supported. :-/
The list of supported formats for normal Texture2Ds is available here and does not seem to include a 64 bit that has 16 bits per channel. I don't know why the RenderTextureFormat supports one and the Texture2D does not.
Well that's too bad as 8bit per channel is way way way way way (did i mention way?) too low for the use i have atm :( Can you think of any workarounds? I have a displacement texture and i get terraced areas which should be smooth because the smallest displacement unity is huge at this channel resolution. I'm going to Normalize the alpha channel but i can only help so much (maybe *3 or so the precision vs current image, but i could use *100). In any case this seems to be the answer so marking it as such.
Answer by yoonitee · Aug 20, 2016 at 08:23 PM
How about using two textures? One for the first 8 bits of accuracy and the second for the next 8 bits of accuracy. Then combine them as follows:
float posX = texture1[pixel].r + texture2[pixel].r /256;