private void Start()
    {
        _myBufferAKernel = cs.FindKernel("BufferA");
        _myBufferBKernel = cs.FindKernel("BufferB");
        _myBufferCKernel = cs.FindKernel("BufferC");
        _myResetKernel   = cs.FindKernel("Reset");
        _myRenderKernel  = cs.FindKernel("Render");
        _myNormalKernel  = cs.FindKernel("Normals");

        var mySetup = new CCTextureSetup(width, height)
        {
            format     = RenderTextureFormat.RFloat,
            filterMode = FilterMode.Bilinear
        };

        _bufferA = new CCDoubleBufferedTexture(mySetup);
        _bufferB = new CCDoubleBufferedTexture(mySetup);
        _bufferC = new CCDoubleBufferedTexture(mySetup);
        _render  = CCDoubleBufferedTexture.CreateTexture(mySetup);

        var myNormalSetup = new CCTextureSetup(width, height)
        {
            format     = RenderTextureFormat.ARGBFloat,
            filterMode = FilterMode.Bilinear
        };

        _normals = CCDoubleBufferedTexture.CreateTexture(myNormalSetup);
        Reset();
    }
Exemple #2
0
        private void Start()
        {
            _advect  = compute.FindKernel("Advect2D");
            _force   = compute.FindKernel("Force");
            _pSetup  = compute.FindKernel("PSetup");
            _pFinish = compute.FindKernel("PFinish");
            _jacobi1 = compute.FindKernel("Jacobi1D");
            _jacobi2 = compute.FindKernel("Jacobi2D");

            _add2D = compute.FindKernel("Add2D");

            _shaderSheet = new Material(shader);

            _velocityKeep = AllocateBuffer(2);

            var rSetup = new CCTextureSetup(ResolutionX, ResolutionY)
            {
                format = RenderTextureFormat.RHalf
            };
            var rgSetup = new CCTextureSetup(ResolutionX, ResolutionY)
            {
                format = RenderTextureFormat.RGHalf
            };
            var rgbSetup = new CCTextureSetup(ResolutionX, ResolutionY)
            {
                format = RenderTextureFormat.ARGBHalf
            };

            _velocityBuffer = new CCDoubleBufferedTexture(rgSetup);
            _pressureBuffer = new CCDoubleBufferedTexture(rSetup);
            _externalBuffer = new CCDoubleBufferedTexture(rgbSetup);

            _colorRT1 = AllocateBuffer(4, width, height);
            _colorRT2 = AllocateBuffer(4, width, height);

            Graphics.Blit(initial, _colorRT1);
        }