private void Dispatch() { AssignStructs.AssignTransBuffer(transform, transValues, _transBuffer); // Setting up hand buffers int index = 0; AssignStructs.AssignHandStruct(handValues, index, out index, hand1, trigger1); AssignStructs.AssignHandStruct(handValues, index, out index, hand2, trigger2); AssignStructs.AssignHandStruct(handValues, index, out index, hand3, trigger3); AssignStructs.AssignHandStruct(handValues, index, out index, hand4, trigger4); _handBuffer.SetData(handValues); computeShader.SetInt("_NumberHands", 4); computeShader.SetFloat("_DeltaTime", Time.deltaTime); computeShader.SetFloat("_Time", Time.time); computeShader.SetInt("_RibbonWidth", ribbonWidth); computeShader.SetInt("_RibbonLength", ribbonLength); computeShader.SetBuffer(_kernel, "transBuffer", _transBuffer); computeShader.SetBuffer(_kernel, "vertBuffer", _vertBuffer); computeShader.SetBuffer(_kernel, "ogBuffer", _ogBuffer); computeShader.SetBuffer(_kernel, "handBuffer", _handBuffer); computeShader.Dispatch(_kernel, strideX, strideY, strideZ); }
private void Dispatch() { AssignStructs.AssignTransBuffer(transform, transValues, _transBuffer); AssignStructs.AssignDisformerBuffer(Disformers, disformValues, _disformBuffer); AssignStructs.AssignHandBuffer(Hands, handValues, _handBuffer); computeShader.SetInt("_NumDisformers", numDisformers); computeShader.SetInt("_NumberHands", Hands.Length); computeShader.SetFloat("_DeltaTime", Time.deltaTime); computeShader.SetFloat("_Time", Time.time); computeShader.SetInt("_RibbonWidth", ribbonWidth); computeShader.SetInt("_RibbonLength", ribbonLength); audioTexture = audioObj.GetComponent <audioSourceTexture>().AudioTexture; computeShader.SetTexture(_kernel, "_Audio", audioTexture); computeShader.SetBuffer(_kernel, "transBuffer", _transBuffer); computeShader.SetBuffer(_kernel, "vertBuffer", _vertBuffer); computeShader.SetBuffer(_kernel, "ogBuffer", _ogBuffer); computeShader.SetBuffer(_kernel, "disformBuffer", _disformBuffer); computeShader.SetBuffer(_kernel, "handBuffer", _handBuffer); computeShader.Dispatch(_kernel, strideX, strideY, strideZ); }
private void Dispatch() { //audioTexture = pedestal.GetComponent<audioSourceTexture>().AudioTexture; AssignStructs.AssignTransBuffer(transform, transValues, _transBuffer); //AssignStructs.AssignDisformerBuffer( Disformers , disformValues , _disformBuffer ); physics.SetInt("_NumberHands", handBufferInfo.GetComponent <HandBuffer>().numberHands); physics.SetFloat("_DeltaTime", Time.deltaTime); physics.SetFloat("_Time", Time.time); //physics.SetTexture(_kernel,"_Audio", audioTexture); physics.SetBuffer(_kernel, "transBuffer", _transBuffer); physics.SetBuffer(_kernel, "vertBuffer", _vertBuffer); //physics.SetBuffer( _kernel , "disformBuffer", _disformBuffer ); physics.SetBuffer(_kernel, "handBuffer", handBufferInfo.GetComponent <HandBuffer>()._handBuffer); physics.Dispatch(_kernel, strideX, strideY, strideZ); }
private void createBuffers() { _vertBuffer = new ComputeBuffer(vertexCount, AssignStructs.VertC4StructSize * sizeof(float)); _ogBuffer = new ComputeBuffer(vertexCount, 3 * sizeof(float)); _transBuffer = new ComputeBuffer(32, sizeof(float)); _handBuffer = new ComputeBuffer(4, AssignStructs.HandStructSize * sizeof(float)); inValues = new float[AssignStructs.VertC4StructSize * vertexCount]; float[] ogValues = new float[3 * vertexCount]; // Used for assigning to our buffer; int index = 0; int indexOG = 0; for (int z = 0; z < gridZ; z++) { for (int y = 0; y < gridY; y++) { for (int x = 0; x < gridX; x++) { int id = x + y * gridX + z * gridX * gridY; float col = (float)(id % ribbonWidth); float row = Mathf.Floor(((float)id + .01f) / ribbonWidth); float uvX = col / ribbonWidth; float uvY = row / ribbonLength; Vector3 fVec = getVertPosition(uvX, uvY); //pos ogValues[indexOG++] = fVec.x; ogValues[indexOG++] = fVec.y; ogValues[indexOG++] = fVec.z; AssignStructs.VertC4 vert = new AssignStructs.VertC4(); vert.pos = fVec * .9f; vert.vel = new Vector3(0, 0, 0); vert.nor = new Vector3(0, 1, 0); vert.uv = new Vector2(uvX, uvY); vert.ribbonID = 0; vert.life = -1; vert.debug = new Vector3(0, 1, 0); vert.row = row; vert.col = col; vert.lID = convertToID(col - 1, row + 0); vert.rID = convertToID(col + 1, row + 0); vert.uID = convertToID(col + 0, row + 1); vert.dID = convertToID(col + 0, row - 1); AssignStructs.AssignVertC4Struct(inValues, index, out index, vert); } } } _vertBuffer.SetData(inValues); _ogBuffer.SetData(ogValues); }
void Update() { AssignStructs.AssignHandBuffer(Hands, handValues, _handBuffer); }