public static void BeginCollectingVertData(this LeapGraphicRenderer renderer) { Camera targetCamera = renderer.GetComponentInChildren <Camera>(); var renderingMethod = renderer.groups[0].renderingMethod as LeapMesherBase; var material = renderingMethod.material; var graphic = renderer.groups[0].graphics[0] as LeapMeshGraphicBase; graphic.RefreshMeshData(); var mesh = graphic.mesh; _buffer = new ComputeBuffer(mesh.vertexCount, sizeof(float) * 3); material.SetBuffer("_FinalVertexPositions", _buffer); Graphics.ClearRandomWriteTargets(); Graphics.SetRandomWriteTarget(1, _buffer); targetCamera.allowMSAA = false; targetCamera.enabled = true; }
public static Vector3[] FinishCollectingVertData(this LeapGraphicRenderer renderer) { Camera targetCamera = renderer.GetComponentInChildren <Camera>(); var renderingMethod = renderer.groups[0].renderingMethod as LeapMesherBase; var material = renderingMethod.material; var graphic = renderer.groups[0].graphics[0] as LeapMeshGraphicBase; graphic.RefreshMeshData(); var mesh = graphic.mesh; Vector3[] array = new Vector3[mesh.vertexCount]; _buffer.GetData(array); Graphics.ClearRandomWriteTargets(); _buffer.Release(); targetCamera.enabled = false; return(array); }
private void OnTriggerExit(Collider other) { if (other.gameObject.layer == layerMask) { LeapGraphicRenderer rendererCandidate = other.GetComponent <LeapGraphicRenderer>(); if (rendererCandidate != null && rendererCandidate != GlobalSpace.Instance.GraphicRenderer) { changer.ChangeSpaces(GlobalSpace.Instance.GraphicRenderer); //transform.SetParent(GlobalSpace.Instance.GraphicRenderer.transform); //currentRenderer = GlobalSpace.Instance.GraphicRenderer; //for (int i = 0; i < allGraphics.Length; i++) //{ // // find the render group by name // LeapGraphicGroup group = GlobalSpace.Instance.GraphicRenderer.FindGroup(allGraphicsInfo[i].favoriteGroupName); // allGraphics[i].TryDetach(); // group.TryAddGraphic(allGraphics[i]); //} } } }