Перенос классов на CUDA

Я пишу 3д игровой движок и реализовал игровые объекты через классы, которые наследуются от базового. Движок на технологии raymarching, для него чтобы описать объект надо написать метод рассчета расстояния от точки до объекта и поэтому у меня в каждом классе был метод getDistance, который принимал самописный вектор с координатами точки и по формулам разным выдавал расстояние. Все это работало в 2 фпс и я понял что надо переносить лучи в CUDA. В raymarching для каждого пикселя пускается луч, который летит до объектов, поэтому 1920x1080 лучей выгоднее параллельно обработать, чем на даже нескольких потоках ЦП (а у меня их 4 всего). Проблема в том, что я не понимаю как правильно перенести это все на CUDA, чтобы можно было передать объекты методу, а он в GPU закинул их обрабатывать и выдал массив расстояний до объектов. Я даже создал такие же классы объектов и даже ошибок не показывало, но компилятор все равно код ошибки выдавал, не поясняя в чем она заключается, код ошибки ни к чему не привел. Неужели единственный способ это передавать название объекта и через switch искать подходящий метод, реализованный на CUDA уже?


Ответы (0 шт):