Я пытаюсь решить текущую проблему, используя возможности графического процессора: «с учетом облака точек P и ориентированной плоскости, описываемой точкой и нормалью (Pp, Np), возвращаются точки в облаке, которые лежат на расстоянии, равном или меньше, чем EPSILON от самолета ".
Разговаривая с моим коллегой, я подошел к следующему решению:
1) подготовить буфер вершин точек с прикрепленной текстурной координатой так, чтобы каждая точка имела разные координаты вершины
2) установить статус проекции на ортогональный
3) поверните сетку так, чтобы нормаль плоскости была выровнена с осью -z, и сместите ее так, чтобы x, y, z = 0 соответствовали Pp
4) установите плоскость z-отсечения так, чтобы z: [- EPSILON; + EPSILON]
5) отрендерить до текстуры
6) получить текстуру с графической карты
7) прочитайте текстуру с графической карты и посмотрите, какие точки были отрисованы (с точки зрения их индексов), какие точки находятся в пределах желаемого диапазона расстояний.
Теперь проблемы следующие:
q1) Нужно ли открывать оконную раму, чтобы можно было выполнить такую операцию? Я работаю в MATLAB и звоню MEX-C ++. По своему опыту я знаю, что как только вы открываете новую раму, весь костюм рушится с треском!
q2) какой примитив дает GLPoint текстурную координату?
q3) Мне не очень понятно, как будет реализован рендеринг в текстуру? любая ссылка, учебник было бы здорово ...
q4) Как бы вы получили эту текстуру с карты? Опять же, любая ссылка, учебник было бы здорово ...
У меня плотный график, поэтому было бы неплохо, если бы вы указали мне названия методов, о которых я должен узнать, а не документ спецификации GLSL и API OpenGL, как это сделал кто-то. Это слишком расплывчатые ответы на мой вопрос.
Большое спасибо за любой комментарий.
p.s.
Также обратите внимание, что я бы предпочел не использовать любой ресурс, такой как CUDA, если это возможно, таким образом, получая то, что использует
как можно больше элементов OpenGL, не требуя от меня написания нового шейдера.
Примечание: крестик размещен на
http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=245911#Post245911