Bonjour,
Je cherche à rectrouver sur quel vertice je clicque sur mon image générée sur OpenGL.
J'affiche une liste de point avec une couleur différente et j'essaie de récupérer le vertice correspondant à la couleur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 .................... cv::Vec3f position_to_vec3f(int position) { cv::Vec3f item; item[0] = (float)(position % 256) / 256.0f; item[1] = (float)((position >> 8) % 256) / 256.0f; item[2] = (float)((position >> 16) % 256) / 256.0f; return item; } .................. std::vector<Vec3f> color_position(vertices_.size()); for_each(color_position.begin(), color_position.end(), [&](Vec3f &item) { item = position_to_vec3f(position_index); position_index++; }); position_color_buffer_.create(); position_color_buffer_.setUsagePattern(QOpenGLBuffer::StaticDraw); position_color_buffer_.bind(); position_color_buffer_.allocate( color_position.data(), (int)color_position.size() * sizeof(Vec3f));
Je ne sais pas si c'est la bonne facon de faire du pickup. J'ai l'impression que de temps en temps l'index n'est pas correcte par ce que mon point ne change pas de couleur.
Partager