Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.07.2012, 19:34
Arvo Arvo вне форума
Прохожий
 
Регистрация: 03.07.2012
Сообщения: 29
Версия Delphi: XE2
Репутация: 10
По умолчанию Текст OpenGL

Всем привет. Сразу к делу: нужно средствами OpenGL вывести несколько слов, расположенных в разных точках пространства. Вообще, глобальная задача - 3D облако тегов на делфи. Но вот не знаю как можно вывести текст в OpenGL, и не в 2D, а именно 3D, чтобы каждая надпись имела свою глубину. Погуглив, видел что есть способ с наложением текстуры на плоскость. Но вот я не дружу с наложением текстур . У кого есть код, дайте пожалуста.
Ответить с цитированием
  #2  
Старый 03.07.2012, 21:37
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Привести код не проблема, но лучше посетить этот сайт и посмотреть готовые уроки для начинающих.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 03.07.2012, 21:59
Arvo Arvo вне форума
Прохожий
 
Регистрация: 03.07.2012
Сообщения: 29
Версия Delphi: XE2
Репутация: 10
По умолчанию

Вся проблема в том - что программу надо завершить в сроки, и я не думаю что хватит времени на изучение. Если привести код - не проблема, так почему же не привести его?
Ответить с цитированием
  #4  
Старый 03.07.2012, 22:05
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Потому, что существуют разные способы такого вывода:
1. Использование растровых шрифтов.
2. Использование графических примитивов.
какой из них больше подходит для вашей задачи я не знаю. Второй способ подразумевает обычно картинку размером 256х256 со всеми символами.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 03.07.2012, 22:28
Arvo Arvo вне форума
Прохожий
 
Регистрация: 03.07.2012
Сообщения: 29
Версия Delphi: XE2
Репутация: 10
По умолчанию

Походу подойдет только второй. На сайте NeHe нашел пример с выводом текста, но у меня вместо слов выводит кракозябры. Перебробовал все кодировки - результат один. Скриншот:


Вместо этого ужаса должно выводиться: "My Text"

А можно ли при использовании второго способа обрабатывать z-координату? Это важно.

Последний раз редактировалось Arvo, 03.07.2012 в 22:34.
Ответить с цитированием
  #6  
Старый 03.07.2012, 22:42
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Z-координата обрабатывается нормально. Какой урок использовался?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #7  
Старый 03.07.2012, 22:55
Arvo Arvo вне форума
Прохожий
 
Регистрация: 03.07.2012
Сообщения: 29
Версия Delphi: XE2
Репутация: 10
По умолчанию

Этот
Ответить с цитированием
  #8  
Старый 03.07.2012, 23:13
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Этот урок использует первый способ. Чтобы всё выводилось правильно, нужно в CreateFont к ANSI_CHARSET добавить RUSSIAN_CHARSET
Цитата:
ANSI_CHARSET or RUSSIAN_CHARSET
в процедуре Print заменить входной параметр со String на AnsiString. В общем, меняем все String на AnsiString, все PChar на PAnsiChar. Это приколы XE2 (юникод по-умолчанию) и их нужно знать.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
Arvo (04.07.2012)
  #9  
Старый 03.07.2012, 23:35
Arvo Arvo вне форума
Прохожий
 
Регистрация: 03.07.2012
Сообщения: 29
Версия Delphi: XE2
Репутация: 10
По умолчанию

angvelem, спасибо) не знаю про юникод. Буду теперь знать.

Английский буквы выводит нормально, но русские все равно кракозябрами.
Ответить с цитированием
  #10  
Старый 03.07.2012, 23:44
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Дополнительно, если нет желания париться с WinAPI, скачай книгу Краснова. Там большинство примеров приведено с использованием VCL. То есть, с привычными формами и кнопко-киданием.

Вместо фонта "Courier New" используй "Courier New CYR" или любой поддерживающий русские символы.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 03.07.2012 в 23:48.
Ответить с цитированием
  #11  
Старый 03.07.2012, 23:48
Arvo Arvo вне форума
Прохожий
 
Регистрация: 03.07.2012
Сообщения: 29
Версия Delphi: XE2
Репутация: 10
По умолчанию

Да мне не сложно с Win API разобраться..Краснова книга есть, в ней была такая же проблема, но она наполовину решена. Теперь бы еще разобратся с русскими буквами...Можно даже и на си примеры, разберусь.
Ответить с цитированием
  #12  
Старый 03.07.2012, 23:50
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Смотри выше про фонт.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #13  
Старый 03.07.2012, 23:57
Arvo Arvo вне форума
Прохожий
 
Регистрация: 03.07.2012
Сообщения: 29
Версия Delphi: XE2
Репутация: 10
По умолчанию

Сделал фонт. А русские буквы отображаются кракозябрами, причем одними и теми же, что при использовании 'Arial' что при использовании 'Arial Cyr'
Ответить с цитированием
  #14  
Старый 04.07.2012, 00:31
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Чтобы не мучаться с приколами XE2 и получить более качаственную картинку при выводе, лучше использовать следующий урок, использующий картинку фонта.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #15  
Старый 04.07.2012, 00:52
Arvo Arvo вне форума
Прохожий
 
Регистрация: 03.07.2012
Сообщения: 29
Версия Delphi: XE2
Репутация: 10
По умолчанию

В исходнике следующего урока оказалась подстава: неизвестный тип PTAUX_RGBImageRec и неизвестная функция auxDIBImageLoadA. они в библиотеке glaux.dll но при ее подключении выдает ошибку инициализации
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:11.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter