• Исправить функцию броска луча?

    boulat5280
    @boulat5280 Автор вопроса
    Евгений Шатунов, если честно,я все эти статьи уже читал и не только эти
  • Исправить функцию броска луча?

    boulat5280
    @boulat5280 Автор вопроса
    Евгений Шатунов, я это знаю, там должна находиться камера а источник света на координате 0, 10, 0 и его направление должно быть 0, 45, 20. мне надо бросить луч в направлении 0, 0, 0 но нам известно что мы бросаем не один луч и у них есть определённое смещение по вертикали и горизонтали
  • Как изменить урл без перезагрузки страницы?

    Зачем вам изменять url если можно отобразить всё что должно появиться с помощью css?
  • Исправить функцию броска луча?

    boulat5280
    @boulat5280 Автор вопроса
    дело в том, что я решил перед тем что создавать луч из каждого пикселя(raycast volume) сделать только сам рейкаст, в нём мы испускаем луч из центра экрана влево и вправо верх и низ мы не затрагиваем то есть получается для начала мне нужно только 2 координаты. Задание на данный момент у меня это просто сделать рейкаст. это третий вопрос, потому что первый был создан тогда, когда я не понимал как это вообще можно сделать, вы дали мне очень хороший ответ, он мне не подошёл, потому что он использует именно проверку на пересечение луча с объектом, а я делаю функцию которая проверяет столкновение луча с клеткой на двумерном массиве. Я её написал сам и если честно я пытался сделать что-то наподобие Майнкрафт, я не знаю какой там метод используется но он очень похож на ray cast volume с использованием трёхмерного массива.

    Большое спасибо за примеры, почему нельзя сделать это моим способом? и я кстати похоже понял почему у меня не работает, но просто не успел исправить.

    Прости, я забыл его прочитать, я его увидел, но времени не было. Я хочу сделать 3д игру на основе ray cast volume но изменив некоторые вещи например создать трёхмерный массив и проверять столкновение лучей с ними если поподробнее то я распросраняю лучи из каждого пикселя экрана по трёхмерному массиву(пока ещё двухмерному) и закрашиваю пиксель экрана в цвет блока.
  • Как исправить ошибку out of memory?

    boulat5280
    @boulat5280 Автор вопроса
    спасибо, сейчас попробую я не знал причину out of memory)
  • Как бросить луч?

    boulat5280
    @boulat5280 Автор вопроса
    уже видел но мне надо сделать это без использования видеокарты так как на моём пк её вообще нет кстати я уже совсем забыл про этот вопрос и уже нашёл решение:
    sf::Color cast_ray(float x, float y, float angle, int max_dist) {
        float x_pos = x;
        float y_pos = y;
        float x_step = sin(angle);
        float y_step = cos(angle);
        for (int i = 0; i < max_dist; i++) {
            x_pos += x_step;
            y_pos += y_step;
            int x_ = x_pos / x_step;
            int y_ = y_pos / y_step;
            //printf("%f %f\n", x_pos, y_pos);
            try{
            if (map[x_][y_] == 1) {
                return sf::Color(255, 255, 255);
            }
            } catch(std::exception ex){
                
            }
        }
        return sf::Color(0, 0, 0, 0);
    }


    теперь у меня появилась проблема OUT OF MEMORY и я знаю что это значит теперь я ищу решение данной проблемы