Estoy creando una aplicación usando javascript y webgl. Necesito pasar números grandes (por ejemplo 1647843999744 ) al sombreador, pero cuando obtengo este valor con este código gl.getUniform(this.shaderProgram, this.maxTimeLoc) , veo un valor diferente. 1647843999744 está cambiando a 1647844041000 .
este es mi codigo
createShaderProgram: function () { const { gl } = this var VertexShaderCode = ` precision lowp float; attribute vec4 vertexPos; uniform mat4 modelViewMatrix; uniform mat4 projectionMatrix; uniform vec3 transPos; uniform float maxPointSize; uniform float minPointSize; uniform float maxTime; uniform float minTime; varying float scale; void main(void) { scale = (vertexPos.w - minTime) / (maxTime - minTime); gl_Position = projectionMatrix * modelViewMatrix * vec4(vertexPos.xyz - transPos.xyz, 1.0); gl_PointSize = minPointSize + ((maxPointSize - minPointSize)*scale); } ` var vertexShader = gl.createShader(gl.VERTEX_SHADER) gl.shaderSource(vertexShader, VertexShaderCode) gl.compileShader(vertexShader) var FragmentShaderCode = ` precision lowp float; varying float scale; uniform vec3 startColor; uniform vec3 endColor; uniform bool applyOpacity; void main() { float r = 0.0; vec2 cxy = 2.0 * gl_PointCoord - 1.0; r = dot(cxy, cxy); if(r > 1.0 ){ discard;} vec3 factor = (endColor - startColor) * r; if(applyOpacity==true){ gl_FragColor = vec4(startColor + factor, scale * (1.0-r)); }else{ gl_FragColor = vec4(startColor + factor, 1.0 - r); } }` var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER) gl.shaderSource(fragmentShader, FragmentShaderCode) gl.compileShader(fragmentShader) this.shaderProgram = gl.createProgram() gl.attachShader(this.shaderProgram, vertexShader) gl.attachShader(this.shaderProgram, fragmentShader) gl.linkProgram(this.shaderProgram) }¿Alguna idea? ¿Qué debo hacer?