c - Repercussions of storing a 5 digit integer as a 16bit float -


i working data can have large number values , data important.

the highest number seen "89,482". going use unsigned int.

however using these numbers in usigned int format causing headaches, namely manipulating them in opengl shaders.

basically things lot simpler if use float instead.

however don't understand repercussions of storing number floating point. in opengl case don't have choice of storing single channel 32 bit floating point texture, 16bit.

for 16bit float wikipedia states:

precision limitations on integer values
integers between 0 , 2048 can represented
integers between 2049 , 4096 round multiple of 2 (even number)
integers between 4097 , 8192 round multiple of 4
integers between 8193 , 16384 round multiple of 8
integers between 16385 , 32768 round multiple of 16
integers between 32769 , 65519 round multiple of 32
integers equal or above 65520 rounded "infinity".

so quite mean in case of number "89,482", trying store in 16bit opengl texture rounded infinity? if options? stick unsigned int? when need normalize it, can cast float?

--edit---

i need value un-normalised in shader


Comments

Popular posts from this blog

java - Plugin org.apache.maven.plugins:maven-install-plugin:2.4 or one of its dependencies could not be resolved -

Round ImageView Android -

How can I utilize Yahoo Weather API in android -