Я должен написать реализацию OpenCL Marching Cubes.Динамическая структура данных OpenCL
Алгоритм Marching Cubes берет объемные данные и создает из него изоповерхность. Этот процесс занимает очень много времени, поэтому я должен написать его в OpenCL с n потоками для повышения производительности.
У меня уже есть код, но моя проблема в том, чтобы хранить вершины. Насколько я понимаю, мне нужно знать, сколько вершин будет создано алгоритмом для выделения достаточной памяти, но это число неизвестно. Есть ли способ создать динамическую структуру данных, такую как вектор или numpy.array с функцией добавления или что-то в этом роде.
Я пишу код python для загрузки OpenCL __kernel и должен сделать некоторые другие вещи с вершинами, чтобы он был доступен для чтения с помощью python. Идея заключается в создании плагина blender.
Я не знаю, на какой платформе вы находитесь, но если я правильно помню, CUDA SDK уже содержит пример Marching Cubes (и реализацию OpenCL). Возможно, вы можете использовать это, чтобы получить вдохновение для вашей реализации. – Bart
Спасибо - это действительно помогло мне! – glethien