Пример #1
0
    public void OnRenderImage(RenderTexture source, RenderTexture destination)
    {
        if (mPostMaterial == null)
        {
            mPostMaterial = new Material(Shader.Find("Custom/PostHandle"));
        }



        if (!mIsRendered)
        {
            ComputeController computeController = new ComputeController(shader);
            computeController.RunShader();

            mPostMaterial.SetFloat("_Sample", mCurrentSample);
            mScreenTexture = Util.RenderTextureToTexture2D(source, mScreenWidth, mScreenHeight);
            mRayTraceRender.Init(ref mTexture, mScreenWidth, mScreenHeight, ref mLightList, mScreenTexture);
            mRayTraceRender.Render();
            mTexture.Apply();
            mIsRendered = true;
            // Render();
        }


        Graphics.Blit(mTexture, destination, mPostMaterial);
        mCurrentSample++;
    }