It doesn’t look like the manual float input field supports that degree of precision. This may be a bug.
You could certainly route it into the shader using a different sort of input than the numerical entry fields in the vectors (ie: using a float32 texture, or a CHOP).
Why does it need to be a uniform instead of a constant? Does it change? What is the source of the data?
As you can see in the screenshot, the constant approach successfully gets the value into the shader.
I don’t believe that the value you specified requires more than 32-bits of precision for accurate representation. Maybe there are other values that you need to send via OSC that have greater required precision.
You’re right about the field truncating very small values though. It would be good to have a moderator or developer cite info about at what point parameter fields round very small values to zero.
The problem here is that our parameters clamp really small values to 0 to avoid roundoff errors resulting in ugly UI behavior, especially when you are using the value ladder to move from 0 and back.
One way to get the values as-is into the GLSL nodes is to keep the data in DATs and CHOPs, and use the ‘Arrays’ page to pass the CHOP arrays into the shader as-is, without going through our parameter UI workflow.
You need to specify a CHOP in the CHOP parameter. float means 32-bits in this case. CHOPs are also 32-bit floats. There is currently no pathway to get 64-bit doubles into GLSL, sorry.
Since @sdtouchdd is already considering processing 64-bit values in exponential notation as osc strings, they could pass in the exponent component and base separately and integrate them in the shader, ie:
The values would still be 32-bit floats in the shader, and any 64-bit precision would be lost, but it would allow you to integrate with that data to see if working with the 32-bit value space is feasible.