0 / 0 / 1
Регистрация: 08.10.2012
Сообщений: 40
|
|
1 | |
Какими способами лучше выводить текст в OpenGL?13.10.2012, 11:58. Показов 14579. Ответов 24
Метки нет Все метки)
(
Здравствуйте,хотелось бы узнать Ваше мнение по поводу вывода текста на экран приложения OpenGL. Насколько я понял возможны 2 способа вывода:
1. С помощью самого OpenGL (пример тут:http://pmg.org.ru/nehe/nehe13.htm) 2. С помощью MFC (точно не уверен в таком способе) Посоветуйте пожалусто начинающему,какой способ стоит использовать,если таковые вообще являются правильными?
0
|
|
13.10.2012, 11:58 | |
Ответы с готовыми решениями:
24
Какими способами можно вылечить пендинги? Какими способами можно создать Луч Wi-Fi!? Какими способами можно нарисовать таблицу в консоли? Какими способами можно реализовать перетаскивание окна? |
angstrom
|
|
13.10.2012, 13:22 | 2 |
На сайте hehe можно прочитать про два основных способа, системный шрифт и битмапы. У каждого есть свои преимущества и недостатки. Первый можно масштабировать, но невозможно добиться качественного отображения, второй даёт отличную картинку, но не масштабируется. Выбор только за вами, где и для чего нужно вывести текст.
|
angstrom
|
||||||
13.10.2012, 15:28 | 5 | |||||
Под системным я имел в виду шрифты ОС
|
0 / 0 / 1
Регистрация: 08.10.2012
Сообщений: 40
|
|
13.10.2012, 20:49 [ТС] | 6 |
Ну так а с помощью MFC есть вариант выводить сообщения в окно приложения OpenGL?
0
|
14.10.2012, 13:28 | 7 |
Хороший вопрос.
По сути и там и там отрисовывается заранее подготовленная картинка, но в случае с текстурного для хранения используется текстурная память(и соответственно становятся доступны все ф-ии текстуры, а также задаётся глубина цвета), а для растра - даже не знаю... по-моему там даже другая ветка конвейера задействуется. Для отрисовки растара идёт вызов glBitmap, которая только и может выводить картинки с глубиной цвета 1 бит. То есть качественно вывести шрифт не получится. Хотя последнее надо уточнить... Дык это и есть растровый. Этой функцией генерятся битмапы в листах.
0
|
Модератор
3371 / 2143 / 352
Регистрация: 13.01.2012
Сообщений: 8,331
|
|
14.10.2012, 13:40 | 8 |
тем что мы сами подкидываемся с монолитной картинкой выпиливая из нее символы вместо того что бы отдать отрисовку каждого символа по системным картинкам на плечи gl) принцип прироста скорости для этого способа не понял + как сказано масштабировать по человечески нельзя
100% есть еще способ кроме естественным путем масштабируемого но очень медленного вектора и достаточно быстрых но не масштабируемых растра и текстуры - например autocad немыслимым способом умудряется отрисовывать колоссальные объемы текста без потери производительности - программа на gl рисуя массив векторного текста 100 на 100 (даже шрифтом txt на самом грубом сглаживании и отрисовке тольк контуров) просто нереально троит. пытался нарыть как же это сделано в autocad - не нашел. подозреваю что они как то рисуют на стандартной не dx канве поверх окна графического вывода или перед выводом формируют для всех отображаемых на чертеже масштабов символов соответствующие битмапы и рисуют растровый текст. хз.
0
|
Модератор
3371 / 2143 / 352
Регистрация: 13.01.2012
Сообщений: 8,331
|
||||||
14.10.2012, 14:33 | 10 | |||||
0
|
Модератор
3371 / 2143 / 352
Регистрация: 13.01.2012
Сообщений: 8,331
|
|
15.10.2012, 00:20 | 15 |
lazybiz, "критикуя - предлагай" (с)
задача: вывод текста. на рисунке может быть текст разных размеров и шрифтов, под разными углами, отраженный в зеркале. если через вектор, то для каждого шрифта строится список, размер, угол и отражение выполняются штатными средствами без потери качества. если через растр, то нужно, как я понял, заводить список еще и для каждого размера. причем с самим размером при использовании wglUseFontBitmaps у меня вышло не все так гладко - нужно задавать его в виде целого числа (как в текстовых редакторах). поэтому вычислить высоту текста в пространстве модели весьма сложно, а зумирование идет прыжками. с функцией GetGlyphOutline не работал - может там по другому. поправьте если, что не так. насколько операция получения списка сложна в плане вычислений по сравнению с рисованием я не знаю - если зумировать списки будут строится в больших количествах и кто победит - хз... привожу пример для вектора - тупняки с массивом текста 100 на 100 заметны (мягко сказано, в заголовке отображается время на построение кадра - у меня оно достигало 360 мс) невооруженным глазом не говоря уже о протестующем жужжании вентилятора ноутбука (панорамирование - нажатие колеса, зумирование - вращение колеса, задать другое количество элементов массива можно указав число в параметрах запуска программы). не могли бы вы показать код решающий вопрос с размером текста и привести аналогичный тест производительности для вашего пути (из выложенного снимка я если честно не очень понял как оно там)?
1
|
Модератор
3371 / 2143 / 352
Регистрация: 13.01.2012
Сообщений: 8,331
|
|
15.10.2012, 10:05 | 17 |
lazybiz, про критику - это лишь пословица возникшая при громких словах "вопрос скорости, kids, меня не беспокоит", "увековечьте меня в золоте" и "бумагу не мараю". в чем метод, гуру? не пиши текст - покажи самокат.
0
|
81 / 40 / 22
Регистрация: 03.05.2013
Сообщений: 701
|
|
25.01.2015, 12:11 | 18 |
castaway расскажите поподробнее о вашем способе, вывод текста на экран. У меня вообще пока не получилось, ни одного. Интересует 2d обычный текст, размер, цвет, позиция на экране. Больше ни чего не надо.
0
|
140 / 84 / 23
Регистрация: 31.08.2016
Сообщений: 733
|
|
26.12.2019, 06:29 | 20 |
0
|
26.12.2019, 06:29 | |
Помогаю со студенческими работами здесь
20
Нужен совет!Какими способами можно соединить 2 подсети!
Какими способами можно получать отчеты с Windows Server 2008 r2 ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |