void Start() { currentCamera = 0; cameraList = new List<Camera>(); Camera[] cameraArray = FindObjectsOfType<Camera>(); foreach (Camera camera in cameraArray) { if (camera.tag != "MainCamera") { cameraList.Add(camera); } } bufferTexture = FindObjectOfType<BufferTexture>(); }
void Start() { currentCamera = 0; cameraList = new List <Camera>(); Camera[] cameraArray = FindObjectsOfType <Camera>(); foreach (Camera camera in cameraArray) { if (camera.tag != "MainCamera") { cameraList.Add(camera); } } bufferTexture = FindObjectOfType <BufferTexture>(); }
public void UpdateBuffers() { if (mappingData == null | ColorData == null) { mappingData = new GPUBuffer(OpenTK.Graphics.OpenGL4.BufferTarget.TextureBuffer); ColorData = new BufferTexture(); } Vector4[] cols = new Vector4[Voxels.Count]; for (int i = 0; i < cols.Length; i++) { cols[i] = Voxels[i].Color; } mappingData.BufferData(0, cols, OpenTK.Graphics.OpenGL4.BufferUsageHint.StaticDraw); ColorData.SetStorage(mappingData, OpenTK.Graphics.OpenGL4.SizedInternalFormat.Rgba32f); }
void OnEnable() { kernelMat = CreateMaterial(kernel); shaderMat = CreateMaterial(shader); var height = numberOfDraw / 4096 + 1; var width = 4096; if (height == 1) { width = numberOfDraw % 4096; } translateBuff = new BufferTexture(width, height, kernelMat); rotationBuff = new BufferTexture(width, height, kernelMat); scaleBuff = new BufferTexture(width, height, kernelMat); velocityBuff = new BufferTexture(width, height, kernelMat); initBuff = new BufferTexture(width, height, kernelMat); shaderMat.SetVector("_Offset", translateBuff.Texture.texelSize); shaderMat.SetTexture("_TranslateBuff", translateBuff.Texture); shaderMat.SetTexture("_RotationBuff", rotationBuff.Texture); shaderMat.SetTexture("_ScaleBuff", scaleBuff.Texture); kernelMat.SetTexture("_TranslateBuff", translateBuff.Texture); kernelMat.SetTexture("_RotationBuff", rotationBuff.Texture); kernelMat.SetTexture("_ScaleBuff", scaleBuff.Texture); kernelMat.SetTexture("_VelocityBuff", velocityBuff.Texture); kernelMat.SetTexture("_InitBuff", initBuff.Texture); kernelMat.SetFloat("_DeltaTime", Time.deltaTime); kernelMat.SetVector("_Bounds", bounds); kernelMat.SetVector("_Offset", translateBuff.Texture.texelSize); initBuff.Blit(0); translateBuff.Blit(1); rotationBuff.Blit(2); scaleBuff.Blit(3); velocityBuff.Blit(4); initBuff.Blit(5); }