     float *imageR;
     float *imageG;
     float *imageB;
+    
+    float *d_imageR;
+    float *d_imageG;
+    float *d_imageB;
+    
+    
     float *distance;
 
 

    if(y >= height)
        return;

    float widthF = (float)width;
    float heightF = (float)heightF;

    float uvx = (tan(3.14159265 / 4.0)) * (2.0 * x - widthF) /  widthF;
    float uvy = (tan(3.14159265 / 4.0)) * ( heightF /  widthF) * (2.0 * y- heightF) /  heightF;
    uvxArr[(y*width)+x] = uvx;
    uvyArr[(y*width)+x] = uvy;
}

    dim3 threadsTrace;
    dim3 blocksTrace;

    threadsTrace.x = 8;
    threadsTrace.y = 8;

    blocksTrace.x = 1 + (widthScale/threadsTrace.x);
    blocksTrace.y = 1 + (heightScale/threadsTrace.y);

    getErrorCuda((trace<<<blocksTrace, threadsTrace>>>(heightScale, widthScale, uvxArr, uvyArr, distance, lookDirection, camUp, camRight, cameraLocation)));

    Vec3 backgroundColor = {0.3f};


    // shade
