El uso de modificadores de sombreado para animar la textura en SceneKit conduce a texturas nerviosas con el tiempo

Estoy escribiendo una escena en SceneKit para iOS.

Estoy tratando de aplicar una textura a un objeto usando una hoja de sprite. Recorro las imágenes en esa hoja con este código:

happyMaterial = [SCNMaterial new];
happyMaterial.diffuse.contents = happyImage;
happyMaterial.diffuse.wrapS = SCNWrapModeRepeat;
happyMaterial.diffuse.wrapT = SCNWrapModeRepeat;
happyMaterial.shaderModifiers = @{ SCNShaderModifierEntryPointGeometry : @"_geometry.texcoords[0] = vec2((_geometry.texcoords[0].x+floor(u_time*30.0))/10.0, (_geometry.texcoords[0].y+floor(u_time*30.0/10.0))/7.0);" };

Todo es bueno. Excepto con el tiempo, la textura comienza a tener nerviosismo aleatorio, especialmente a lo largo del eje x.

Alguien mencionó que podría deberse a "problemas de precisión de punto flotante", pero no estoy seguro de cómo diagnosticarlo o solucionarlo.

Además: no estoy seguro de cómo registrar datos desde el código del sombreador. Sería increíble poder analizar variables como "u_time" y ver exactamente lo que está sucediendo.