protected override void Start() { base.Start(); positionMap = RTUtil.NewUAV(detector.KeypointCount, 1, 0, RenderTextureFormat.ARGBFloat); linePairMap = RTUtil.NewUAV(BlazePoseDefinition.BODY_LINE_NUM, 1, 0, RenderTextureFormat.ARGBFloat, GraphicsFormat.R32G32_SFloat); cs.SetInt("_LinePairCount", BlazePoseDefinition.BODY_LINE_NUM); cs.SetTexture(0, "_LinePairMap", linePairMap); cs.SetBuffer(0, "_WorldKeyPoints", detector.outputWorldBuffer); cs.SetVectorArray(Shader.PropertyToID("_LinePair"), BlazePoseDefinition.LinePairs.ToArray()); cs.DispatchThreads(0, 1, 1, 1); mirror = new RenderTexture(source.Texture.width, source.Texture.height, 0, source.Texture.graphicsFormat); mirror.enableRandomWrite = true; }
void LateUpdate() { cs.SetInt("_Width", w); cs.SetInt("_Height", h); cs.SetVector("_Threshold", ThresholdVector); if (horizontal) { cs.SetTexture(0, "_MaskTex", provider.MaskTexture); cs.SetTexture(0, "_SourceTex", provider.SourceTexture); cs.SetTexture(0, "_OutputTex", outputTex); cs.DispatchThreads(0, h, 1, 1); } else { cs.SetTexture(1, "_MaskTex", provider.MaskTexture); cs.SetTexture(1, "_SourceTex", provider.SourceTexture); cs.SetTexture(1, "_OutputTex", outputTex); cs.DispatchThreads(1, w, 1, 1); } previewUI.texture = outputTex; }
void AddForce() { if (_addColorHueAnim) { float h, s, v; Color.RGBToHSV(_addColor, out h, out s, out v); h += Time.deltaTime * 0.1f; _addColor = Color.HSVToRGB(h, s, v); } if (!Input.GetMouseButton(0)) { _lastMousePos = null; } else { Vector2 pos = Input.mousePosition; if (_lastMousePos.HasValue) { _addPos = Camera.main.ScreenToViewportPoint(pos); _addForceVelocity = pos - _lastMousePos.Value; var kernel = _cs.FindKernel(CSPARAM.KERNEL_ADD_FORCE); _cs.SetVector(CSPARAM.ADD_POS, _addPos); _cs.SetVector(CSPARAM.ADDFORCE_VELOCITY, _addForceVelocity); _cs.SetFloat(CSPARAM.ADD_RADIUS, _addRadius); _cs.SetVector(CSPARAM.ADD_COLOR, _addColor); _cs.SetTexture(kernel, CSPARAM.VELOCITY, _velocity); _cs.SetTexture(kernel, CSPARAM.COLOR, _color); _cs.DispatchThreads(kernel, _velocity.width, _velocity.height, 1); } _lastMousePos = pos; } }