Die Verwendung von Shader-Modifikatoren zum Animieren von Texturen in SceneKit führt im Laufe der Zeit zu nervösen Texturen.

Ich schreibe eine Szene in SceneKit für iOS.

Ich versuche, mit einem Sprite-Sheet eine Textur auf ein Objekt anzuwenden. Ich durchlaufe die Bilder in diesem Blatt mit folgendem Code:

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);" };

Alles ist gut. Außer im Laufe der Zeit fängt die Textur an, willkürlich zu zittern, insbesondere entlang der x-Achse.

Jemand hat erwähnt, dass dies an "Gleitkommapräzisionsproblemen" liegen könnte, aber ich weiß nicht, wie ich das diagnostizieren oder beheben soll.

Also: Ich bin mir nicht sicher, wie ich Daten aus dem Shader-Code protokollieren soll. Es wäre fantastisch, in Variablen wie "u_time" nachzuschauen und genau zu sehen, was los ist.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage