|
#1
|
|||
|
|||
Текст OpenGL
Всем привет. Сразу к делу: нужно средствами OpenGL вывести несколько слов, расположенных в разных точках пространства. Вообще, глобальная задача - 3D облако тегов на делфи. Но вот не знаю как можно вывести текст в OpenGL, и не в 2D, а именно 3D, чтобы каждая надпись имела свою глубину. Погуглив, видел что есть способ с наложением текстуры на плоскость. Но вот я не дружу с наложением текстур . У кого есть код, дайте пожалуста.
|
#3
|
|||
|
|||
Вся проблема в том - что программу надо завершить в сроки, и я не думаю что хватит времени на изучение. Если привести код - не проблема, так почему же не привести его?
|
#4
|
||||
|
||||
Потому, что существуют разные способы такого вывода:
1. Использование растровых шрифтов. 2. Использование графических примитивов. какой из них больше подходит для вашей задачи я не знаю. Второй способ подразумевает обычно картинку размером 256х256 со всеми символами. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
Походу подойдет только второй. На сайте NeHe нашел пример с выводом текста, но у меня вместо слов выводит кракозябры. Перебробовал все кодировки - результат один. Скриншот:
Вместо этого ужаса должно выводиться: "My Text" А можно ли при использовании второго способа обрабатывать z-координату? Это важно. Последний раз редактировалось Arvo, 03.07.2012 в 22:34. |
#6
|
||||
|
||||
Z-координата обрабатывается нормально. Какой урок использовался?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#8
|
||||
|
||||
Этот урок использует первый способ. Чтобы всё выводилось правильно, нужно в CreateFont к ANSI_CHARSET добавить RUSSIAN_CHARSET
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
Arvo (04.07.2012)
|
#9
|
|||
|
|||
angvelem, спасибо) не знаю про юникод. Буду теперь знать.
Английский буквы выводит нормально, но русские все равно кракозябрами. |
#10
|
||||
|
||||
Дополнительно, если нет желания париться с WinAPI, скачай книгу Краснова. Там большинство примеров приведено с использованием VCL. То есть, с привычными формами и кнопко-киданием.
Вместо фонта "Courier New" используй "Courier New CYR" или любой поддерживающий русские символы. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 03.07.2012 в 23:48. |
#11
|
|||
|
|||
Да мне не сложно с Win API разобраться..Краснова книга есть, в ней была такая же проблема, но она наполовину решена. Теперь бы еще разобратся с русскими буквами...Можно даже и на си примеры, разберусь.
|
#12
|
||||
|
||||
Смотри выше про фонт.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#13
|
|||
|
|||
Сделал фонт. А русские буквы отображаются кракозябрами, причем одними и теми же, что при использовании 'Arial' что при использовании 'Arial Cyr'
|
#14
|
||||
|
||||
Чтобы не мучаться с приколами XE2 и получить более качаственную картинку при выводе, лучше использовать следующий урок, использующий картинку фонта.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#15
|
|||
|
|||
В исходнике следующего урока оказалась подстава: неизвестный тип PTAUX_RGBImageRec и неизвестная функция auxDIBImageLoadA. они в библиотеке glaux.dll но при ее подключении выдает ошибку инициализации
|