O uso de modificadores de shader para animar a textura no SceneKit leva a texturas instáveis ao longo do tempo
Estou escrevendo uma cena no SceneKit para iOS.
Estou tentando aplicar uma textura a um objeto usando uma folha de sprite. Eu percorro as imagens nessa planilha com 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);" };
Tudo está bem. Exceto com o tempo, a textura começa a ter um tremor aleatório, especialmente ao longo do eixo x.
Alguém mencionou que isso pode ocorrer por causa de "problemas de precisão de ponto flutuante", mas não tenho certeza de como diagnosticar ou corrigir isso.
Além disso: não sei como registrar dados do código do sombreador. Seria incrível poder analisar variáveis como "u_time" e ver exatamente o que está acontecendo.