Точность алгоритма Ray Casting(OpenGL)

216
18 сентября 2017, 04:14

Пытаюсь сделать выбор обьектов с помощью Ray Casting. Когда жму мышкой в окне создается луч который показывает куда направляется вектор.

Так вот, проблема заключается что луч как-то идет неправильным путём. Очень редко попадает туда куда нажал мышью.

Пример:

Код:

void onClick() {
    double viewportX, viewportY;
    glfwGetCursorPos(window, &viewportX, &viewportY);//get screen x,y
    float x = (2.0f * viewportX) / SCR_WIDTH - 1.0f;
    float y = 1.0f - (2.0f * viewportY) / SCR_HEIGHT;
    float z = 1.0f;
    vec3 rayNds = vec3(x, y, z);
    vec4 rayClip = vec4(rayNds.x, rayNds.y, rayNds.z, 1.0);
    vec4 rayEye = glm::inverse(projection)*rayClip;
    vec3 rayWorld = (inverse(view) * rayEye);
    rayWorld = glm::normalize(rayWorld);

    glm::vec3 cameraPos = camera.position;
    glm::vec3 currPos;
    for (int a = 1; a <= 200; ++a) {
        currPos = (cameraPos)+(rayWorld*vec3(a, a, a));
    }
}

Как повысить точность? или я делаю что-то не так?

READ ALSO
Проблема с классами

Проблема с классами

Допустим у меня есть класс TTable с конструктором TTable (TRow это другой класс, с ним все работает)

211
Mysql быстрая сортировка по ФИО

Mysql быстрая сортировка по ФИО

Есть табличка - 1млн человек, есть разные данные, внешние ключи и тдНеобходимо быстро (насколько это возможно) выбрать из таблички данные,...

383
Как вытащить данные из запроса к БД в node.js?

Как вытащить данные из запроса к БД в node.js?

Привет! Как вытащить данные из запроса к БД функцией connectionquery в node

463