Texture

Класс: GLTexture

Phantom3D хранит текстуры в объектах типа Texture. Для загрузки текстур из файлов используется библиотека DevIL (Developer's Image Library). DevIL отличается высокой скоростью работы и поддержкой огромного количества графических форматов: BMP, CUT, ICO, JPG, JFIF, LBM, PCD, PCX, PIC, PNG, PNM, SGI, TGA, TIF, CHEAD, RAW, MDL, WAL, LIF, MNG, JNG, DDS, DCX, PSD, EXIF, PSP, PIX, PXR, XPM, HDR.
Существует также возможность пропускать загруженные текстуры через фильтры и сохранять их. За это отвечает сопутствующая DevIL библиотека ILU.
Для использования функций DevIL необходимо скопировать файл DevIL.dll в директорию с проектом. Для использования функций ILU нужен еще и ILU.dll.

DevILInit

real = DevILInit( );
Инициализирует библиотеку DevIL.

DevILTextureCreate

real = DevILTextureCreate( filename as string );
Создает текстуру из файла и возвращает ее id.
filename - путь к файлу.

ILUInit

real = ILUInit( );
Инициализирует библиотеку ILU.

ILUTextureCreate

real = ILUTextureCreate( filename as string, list as real );
Загружает текстуру из файла, пропускает ее через фильтры и возвращает ее id. Фильтр - это графический эффект: например, размытие или усиление контраста. Фильтры можно встретить практически в любом современном графическом редакторе. Набор фильтров ILU, конечно, не сможет заменить вам графический редактор, но все же позволит производить некоторые полезные операции над изображением.
Поддерживаемые фильтры:
(
ilfNoFilter (0); 0; 0; 0) - "пустой" фильтр;
(ilfGaussianBlur (1); iterations; 0; 0) - размытие по Гауссу (itreations - количество циклов);
(ilfNegative (2); 0; 0; 0) - инвертирование цветов;
(ilfEmboss (3); 0; 0; 0) - рельеф;
(ilfAlien (4); 0; 0; 0) - эффект "Чужой";
(ilfPixelize (5); pixsize; 0; 0) - эффект "мозаики" (pixsize - размер клетки);
(ilfAvgBlur (6); iterations; 0; 0) - усреднение;
(ilfEdgeDetectE (7); 0; 0; 0) - выделение края по Лапласу;
(ilfEdgeDetectP (8); 0; 0; 0) - выделение края по Превитту;
(ilfEdgeDetectS (9); 0; 0; 0) - выделение края по Собелу;
(ilfSharpen (10); factor; iterations; 0) - повышение резкости (factor - сила, iterations - количество циклов);
(ilfMirror (11); 0; 0; 0) - зеркальное отображение по горизонтали;
(ilfContrast (12); contrast; 0; 0) - изменение контраста (contrast - контраст);
(ilfGammaCorrect (13); gamma; 0; 0) - коррекция гаммы (gamma - гамма);
(ilfRotate (14); angle; 0; 0) - поворот (angle - угол);
(ilfWave (15); seed; 0; 0) - эффект волн (seed - произвольное значение);
(ilfScale (16); width; height; depth) - изменение размера (width, height - ширина и высота в пикселях, depth - глубина цвета в битах);
(ilfEqualize (17); 0; 0; 0) - автоматическая корректировка цвета, яркости и контраста.
filename - путь к файлу
list - список, содержащий фильтры и параметры к ним. Вы можете использовать один и тот же список для нескольких текстур сразу.

ILUTextureCreateAndSave

real = ILUTextureCreateAndSave( filename as string, list as real, save_filename as string );
Загружает текстуру из файла, пропускает ее через фильтры, сохраняет в файл и возвращает ее id. Сохранение возможно в форматы BMP, JPG, PCX, PNG, TGA. Если указанный файл уже существует, перезаписи не происходит.
Эта функция может понадобиться, если необходимо применить к текстуре достаточно много ресурсоемких фильтров, чтобы затем сохранить результат для ускорения загрузки при дальнейшем использовании.

filename - путь к файлу
list - список, содержащий фильтры и параметры к ним. Вы можете использовать один и тот же список для нескольких текстур сразу
save_filename - путь к сохраняемому файлу.