Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2008, 17:37   #1
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
Вопрос Текст в OpenGl (Delphi)

Здравствуйте!!!
Подскажите, как вывести любой (шрифт, размер, цвет) текст в OpenGl (Delphi).
Levsha100 вне форума Ответить с цитированием
Старый 08.12.2008, 19:42   #2
in*tEr
 
Аватар для in*tEr
 
Регистрация: 07.12.2008
Сообщений: 8
По умолчанию

Рах уж у тебя Delphi, вот код на Builder C++ - перевести в делфи будет легче

Это двумерный текст:

HFONT Font;
int Font_Base;

Font_Base = 1000;
Font=CreateFont(
14, // logical height of font
8, // logical average character width
60, // angle of escapement
0, // base-line orientation angle
FW_NORMAL, // font weight
0, // italic attribute flag
0, // underline attribute flag
0, // strikeout attribute flag
ANSI_CHARSET, // character set identifier
OUT_DEFAULT_PRECIS, // output precision
CLIP_DEFAULT_PRECIS, // clipping precision
PROOF_QUALITY, // output quality
DEFAULT_PITCH, // pitch and family
"Courier New" // pointer to typeface name string
);
SelectObject(hdc,Font);
wglUseFontBitmaps(hdc, 0, 256, Font_Base);

// Не забудь сатем их удалить
glDeleteLists(Font_Base,256);

---------------------------------------------------------------------
Это текст 3D
Именно его можно наблюдать в винде - Трехмерный текст - скрин

HFONT Font2;
int Font_Base2;

void __fastcall TFormMain::InitText3D() {
Font_Base2 = 2000;
Font2=CreateFont(
14, // logical height of font
7, // logical average character width
0, // angle of escapement
0, // base-line orientation angle
FW_NORMAL, // font weight
1, // italic attribute flag
0, // underline attribute flag
0, // strikeout attribute flag
ANSI_CHARSET, // character set identifier
OUT_DEFAULT_PRECIS, // output precision
CLIP_DEFAULT_PRECIS, // clipping precision
PROOF_QUALITY, // output quality
DEFAULT_PITCH, // pitch and family
"Times New Roman" // pointer to typeface name string
);
SelectObject(hdc,Font2);
wglUseFontOutlines (hdc, 0, 255, Font_Base2, 0.0, 0.20,
WGL_FONT_LINES,NULL);
}

glDeleteLists(Font_Base2,256); // Удалим список на выходе

------------------------------------------------------------------------
Ну и вывод 2D текст

glPushAttrib(GL_ALL_ATTRIB_BITS);
glListBase(Font_Base);
glRasterPos3f(0,0,0);
glCallLists(9, GL_UNSIGNED_BYTE, "Levsha100");
glPopAttrib;

--------------- 3D
glPushMatrix();
glTranslatef(0,0,0);
glListBase(Font_Base2);
glCallLists(9, GL_UNSIGNED_BYTE, "Levsha100");
glPopMatrix();

з.ы. Советую все же использовать текстурные шрифты - таких прог в инете лежит много - из шрифта сделать текстуру, или сам напиши. Потом загруз текстуру и сделай 2D шрифты, а в 3D - думай сам, либо в 3D Максе наделай надписи, либо через wglUseFontOutlines();
Тут уж все зависит от задачи.

Еще, почаще нажимай F1 - для справки, ставишь курсор на оператор и жми F1 - много интересного можно почитать в справках
in*tEr вне форума Ответить с цитированием
Старый 08.12.2008, 22:36   #3
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

ГРОМАДНОЕ СПАСИБО!!!
Levsha100 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenGL в Delphi 10 Sergeu Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 24.09.2008 19:18
Поверхность по массиву точек на OpenGL в Delphi Mixasik Помощь студентам 1 21.07.2008 16:41
Срочно подскажыте пожайлуста (OpenGL, Delphi) Nadjuha Помощь студентам 4 10.06.2008 08:12
Работа с текстурами. OpenGL в Delphi. Gambler Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 21.04.2008 01:19
OpenGl+Delphi,при загрузке текстуру сильно корежит Skif Помощь студентам 1 27.11.2007 08:40