Open GL
Кондитерская "NewTort" - дешевые торты на заказ, 890 руб за кг. Любой дизайн торта. de301fb4

Трафарет I


Зачем это может понадобиться, я не очень представляю. Рисовать прерывистую линию вы уже умеете. Трафарет - это то же самое, только для многоугольников. Вы разрешаете тест трафарета командой glEnable(GL_POLYGON_STIPPLE). Аналогично, как и в случае с линями, нужно загружать массив, который задает битовую маску. Размер трафарета строго оговорен - 32х32 пикселя. 32х32 равняется 1024. 1024 делим на восемь бит, получаем 128 байт, т.е., чтобы закодировать трафарет, нужен массив из 128-ми байт. Тут уже, как в случае с линиями, калькулятором не посчитаешь. Поэтому я написал утилиту - , которая конвертирует pcx-файл в формате два бита на пиксель в массив на языке Си. Запускается она так:

>pcx_2bpp filename.pcx >array.c

Утилиту можете взять на моем сервере в архиве с исходными текстами программ(см. приложения А). Знак "больше" означает перенаправление стандартного вывода в файл array.c. Эта утилита абсолютно переносима. Нарисовав в каком-нибудь графическом пакете рисунок в формате 32х32х2bpp, сохраните его и обработайте моей утилитой. Получите массив, который вставьте в свою программу. В фунции main добавьте следующий код:

glEnable(GL_POLYGON_STIPPLE); glPolygonStipple(array);



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