Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод текста в OpenGL. Какие функции есть? 
:(
    Опции темы
Malloc
Дата 13.12.2005, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 16.8.2005
Где: Челябинск, ЧМЗ

Репутация: нет
Всего: нет



Каким образом я могу вывести текст на экран, используя OpenGL. Везде пишут (в книгах), как выводить точки, линии, сферы и т.д. Но про текст ничего не говорят. Может, кто-нибудь знает, как это сделать?
PM MAIL   Вверх
Darhazer
Дата 13.12.2005, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: нет
Всего: 29



Насчет текст я делаю так:
Делаю картинку, которая содержить все букви и цифри. Потом пользую как текстуру ту част картинке, которая мне нужна
В сам OpenGL нет функции для вивода текста, но в библиотеках, которые обично пользуют с OpenGL (wgl наприер) есть таких...


--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
Malloc
Дата 14.12.2005, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 16.8.2005
Где: Челябинск, ЧМЗ

Репутация: нет
Всего: нет



Вчера скачал книжку по OpenGL хтмльную, и правда, придется все шрифты рисовать самому. А есть ли способ импортировать обычные шрифры Windows (*.ttf) и использовать их?
PM MAIL   Вверх
Darhazer
Дата 15.12.2005, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: нет
Всего: 29



Можно через wgl. Читай здесь
К стате библиотека для рендеринга текстов- http://www.forexseek.com/glf/


--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
Xerx
Дата 25.1.2006, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 28.5.2005
Где: Калуга

Репутация: нет
Всего: нет



Еще стоит почитать Краснова, у него несколько примеров на вывод текста: что-то с bitmap'ами, 3D-текстом через ttf, дисплейные списки по каждому символу и ;) GDI(даже не читай!!!)
PM MAIL ICQ   Вверх
Andreyexe
Дата 23.4.2006, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.4.2006

Репутация: нет
Всего: нет



http://pmg.org.ru/nehe/index.html
Здесь есть и вывод текста и вобще всё чё надо.И под разные языки. 
PM MAIL   Вверх
Artiom
Дата 24.4.2006, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: нет
Всего: 17



Код

GLvoid buildFont(GLvoid)    
{    
    XFontStruct *font;    
     
    base = glGenLists(96);      /* storage for 96 characters */    
    /* load a font with a specific name in "Host Portable Character Encoding" */    
    font = XLoadQueryFont(GLWin.dpy,    
        "-*-helvetica-bold-r-normal--24-*-*-*-p-*-iso8859-1");    
    if (font == NULL)    
    {    
        /* this really *should* be available on every X Window System...*/    
        font = XLoadQueryFont(GLWin.dpy, "fixed");    
        if (font == NULL)    
        {    
            printf("Problems loading fonts :-(\n");    
            exit(1);    
        }    
    }    
    /* build 96 display lists out of our font starting at char 32 */    
    glXUseXFont(font->fid, 32, 96, base);    
    /* free our XFontStruct since we have our display lists */    
    XFreeFont(GLWin.dpy, font);    
}    
///////////////////////////////////////////////////////////////////////////////////    
GLvoid printGLf(const char *fmt, ...)    
{    
    va_list ap;     /* our argument pointer */    
    char text[256];    
    if (fmt == NULL)    /* if there is no string to draw do nothing */    
        return;    
    va_start(ap, fmt);  /* make ap point to first unnamed arg */    
    /* FIXME: we *should* do boundschecking or something to prevent buffer    
    * overflows/segmentations faults    
    */    
    vsprintf(text, fmt, ap);    
    va_end(ap);    
    glPushAttrib(GL_LIST_BIT);    
    glListBase(base - 32);    
    glCallLists(strlen(text), GL_UNSIGNED_BYTE, text);    
    glPopAttrib();    
}

Вот когда-то так делал. TTF тоже можно юзать  


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.1158 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.