Как реализовать функции glPushName и glPopName - PullRequest
1 голос
/ 25 августа 2011

Как я могу реализовать функции glPopName и glPopName в openGL 3.x?

1 Ответ

2 голосов
/ 25 августа 2011

OpenGL-3 больше не имеет режима ВЫБОР .Практически ни одна реализация OpenGL не делала режим выбора с аппаратным ускорением.Один из них всегда переходил в режим программной эмуляции.

Вместо этого вы можете реализовать один из них:

  • Рендеринг каждого объекта с другим цветом, используемый в качестве индекса.Затем прочитайте область интереса, и после этого заново визуализируйте сцену, как обычно.Это как можно ближе к режиму выделения.

  • Считать значения буфера глубины в интересующей области, спроецировать обратно в мировые позиции и определить по данным вашей сцены, какой объектв выбранной позиции.

Или полностью без OpenGL:

  • Реализация теста пересечения лучевой сцены.Для ускорения используйте пространственные структуры деления, такие как деревья Octree или Kd.
...