OpenGL в Delphi

       

Так разбивается фигура, если требуется нарисовать внутреннее отверстие




Если вы имеете опыт работы в графических редакторах, такой подход, возможно, вас несколько разочаровал. Конечно, было бы гораздо удобнее, если бы имелась, например, функция закраски замкнутой области, как это принято в большинстве графических редакторов. Но мы имеем дело с низкоуровневой библиотекой, и она не предоставляет подобных готовых функций.

Замечание
Как мы увидим дальше, есть несколько способов решения задачи построения сложных объектов - невыпуклых многоугольников или объектов, содержащих отверстия, - однако самый быстрый (в смысле скорости воспроизведения, а не кодирования) способ состоит в том, чтобы вы сами полностью расписали алгоритм построения на основе многоугольников, а в идеале - с использованием только треугольников.

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

glEnable (GL_POLYGON_SMOOTH);

то построение фигуры замедляется, что хорошо заметно при изменении размеров окна, когда происходит его перерисовка. Использование режимов, их включение и отключение, может сильно сказаться на скорости воспроизведения, о чем необходимо постоянно помнить.



Содержание раздела