OpenGL в Delphi

       

Фонтан точек, точки полупрозрачны




Окно снабжено всплывающим меню, один из пунктов которого позволяет отключить режим смешения. Можете сравнить результат
Режим смешения часто используется для сглаживания краев объектов. Проект из подкаталога Ех45 демонстрирует эту возможность на примере точек, которые выводятся со сглаженными, нерезкими, краями.
Помимо собственно режима сглаживания точек, в программе также включается режим смешения цветов:

glEnable (GL_POINT_SMOOTH);
glEnable (GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glHint (GL_POINT_SMOOTH_HINT, GL_DONT_CARE);
glPointSize (3.0);

Замечание
Команда glHint используется для уточнения режимов отработки некоторых операций, например, если нужно выполнить операцию максимально быстро или добиться наилучшего результата. В данном случае не задается определенного предпочтения.

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

glGetFloatv (GL_LINE_WIDTH_GRANULARITY, Svalues);
ShowMessage(Format ('GL_LINE_WIDTH_GRANULARITY value is %3.lf,
[values[0]]));
glGetFloatv (GL_LINE_WIDTH_RANGE, @values);
ShowMessage(Format ('GL_LINE_WIDTH_RANGE values are %3.1f %3.lf,
[values[0], values[1]])); glEnable (GL_LINE_SMOOTH);
glEnable (GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glHint (GL_LINE_SMOOTH_HINT, GL_DONT_CARE);
glLineWidth (1.5);

Теперь решим несколько несложных задач по теме альфа-смешивания. Рисунок 4. 30 показывает картинку работы приложения, полученного после компиляции проекта из подкаталога Ex48, где полупрозрачная сфера вращается вокруг непрозрачного конуса.



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