创建光线跟踪器的最佳方法是什么?

时间:2014-11-04 20:27:08

标签: optimization raytracing

目前,我正在使用光线跟踪器,它采用迭代方法来开发场景。我的目标是将其变成递归光线跟踪器。

目前,我已定义了一个光线跟踪器,可以执行以下操作来创建存储在其中的位图:

int WIDTH = 640;
int HEIGHT = 640;
BMP Image(WIDTH, HEIGHT); // create new bitmap

// Slightly shoot rays left of right camera direction
    double xAMT, yAMT;
    */

    Color blue(0.1, 0.61, 0.76, 0);
    for (int x = 0; x < WIDTH; x++) {
        for (int y = 0; y < HEIGHT; y++) {

            if (WIDTH > HEIGHT) {
                xAMT = ((x + 0.5) / WIDTH) * aspectRatio - (((WIDTH - HEIGHT) / (double)HEIGHT) / 2);
                yAMT = ((HEIGHT - y) + 0.5) / HEIGHT;
            }
            else if (HEIGHT > WIDTH) {
                xAMT = (x + 0.5) / WIDTH;
                yAMT = (((HEIGHT - y) + 0.5) / HEIGHT) / aspectRatio - (((HEIGHT - WIDTH) / (double)WIDTH) / 2);
            }
            else {
                xAMT = (x + 0.5) / WIDTH;
                yAMT = ((HEIGHT - y) + 0.5) / HEIGHT;
            }
            ..... // calculate intersections, shading, reflectiveness.... etc
           Image.setPixel(x, y, blue); // this is here just as an example
      }
}

是否有另一种计算双重for-loop外反射和折射儿童射线的方法? for循环是否必要? //是的,因为位图? 可以采取哪些方法来最小化/优化迭代光线跟踪器?

0 个答案:

没有答案