private void Update() { if (!_tex || _tex.width != Resolution) { _tex = new Texture2D(Resolution, Resolution, TextureFormat.RGBA32, mipChain: false, linear: true); _tex.wrapMode = TextureWrapMode.Clamp; _tex.filterMode = FilterMode.Trilinear; QuadRenderer.material.mainTexture = _tex; } NativeArray <Color32> color = _tex.GetRawTextureData <Color32>(); SDFBehaviour sdfBehaviour = GetComponent <SDFBehaviour>(); var node = sdfBehaviour.GetNode(); if (node == null) { return; } NativeSDF sdf = node.Compile(Allocator.TempJob); Vector3 rectCorner = QuadRenderer.transform.TransformPoint(new Vector3(-0.5f, -0.5f) + new Vector3(0.5f, 0.5f) / Resolution); Vector3 rectXAxis = QuadRenderer.transform.TransformVector(Vector3.right) / Resolution; Vector3 rectYAxis = QuadRenderer.transform.TransformVector(Vector3.up) / Resolution; new BuildTextureJob() { SDF = sdf, Texture = color, TextureWidth = Resolution, RectCorner = rectCorner, RectXAxis = rectXAxis, RectYAxis = rectYAxis }.Schedule(color.Length, 32).Complete(); _tex.Apply(updateMipmaps: false, makeNoLongerReadable: false); sdf.Dispose(); }