private void SetCameraAndSkybox(int index)
    {
        RT_MainShader.SetMatrix("_CameraToWorld", MainCamera.cameraToWorldMatrix);
        RT_MainShader.SetMatrix("_CameraInverseProjection", MainCamera.projectionMatrix.inverse);
        RT_MainShader.SetTexture(index, "_SkyboxTexture", SkyboxTexture);

        RT_MainShader.SetInt("_MaxGeneration", MaxRayGeneration);

        if (sampleOffset.Count == SamplesPerPixel)
        {
            return;
        }

        sampleOffset.Clear();
        for (int i = 0; i < SamplesPerPixel; i++)
        {
            sampleOffset.Add(Random.value);
        }

        loadBuffer(sampleOffset, ref SampleBuffer, sizeof(float));
        SetGlobalBuffer("_SamplesPerPixel", SampleBuffer);

        int castShadow;

        if (enableShadow == true)
        {
            castShadow = 1;
        }
        else
        {
            castShadow = 0;
        }

        RT_MainShader.SetInt("_CastShadow", castShadow);
    }