Внимание!
Эта публикация перенесена в раздел уроков по адресу C#/Tao.framework. Простой способ отобразить текст в OpenGL.К ней прикреплена новая отдельная ветка комментариев форума, которую вы можетет найти после текста публикации.
Обсуждение публикации рекуомендуется вести по новому адресу, который указан выше.
C#/Tao.framework. Простой способ отобразить текст в OpenGL
Отрисовка текста в OpenGL, обычно нетривиальная задача, особенно для новичков. Стандартно эта задача сводится к рисованию прямоугольников с натянутой текстурой, на которой отображена та или иная буква. Располагая, которые, относительно друг, друга собираются в слова.
Когда-то, когда я еще учился в Академии, мы делали на ASP.NET капчу отрисовывая строки текста и линии в картинку. На C# это делается очень легко, встроенными методами класса Graphics. Им и воспользуемся для рисования нашего текста.
В этом посте я покажу очень примитивный и к сожалению не масштабируемый пример.=)[spoiler]
Я довольно долго не программировал на C#, так что чтобы не сильно долго вспоминать, как и что, я переделал пример рендера текста из документации . - это net привязка к различным инструментам, библиотекам таким OpenGL, OpenCL, OpenAL, также имеются различные вспомогательные классы для работы c математикой и вводом. Также есть дополнительная к OpenTK библиотека под названием , помогающая быстро и качественно отрисовать текст в OpenGL. Но здесь речь пойдет, о том как сделать это с помощью tao.framework.
Пример очень простой и соответственно о какой либо оптимизации в примере речи и быть не может=). Он лишь показывает, как можно сделать, но это не самый лучший способ это сделать. Так что не обижайтесь если, что не так)
Пример:
В примере все до жути примитивно, поэтому думаю разъяснять особо ничего не надо=). Пример хоть и простой, но на его основе можно построить какой нибудь кэш шрифтов с определенным набором символов, нужно лишь покопаться в MSDN и найти как получить информацию об отступах и размерах. Или же все таки просто выводить все строки сразу, но на отдельные примитивы.
Полезные ссылки:
Когда-то, когда я еще учился в Академии, мы делали на ASP.NET капчу отрисовывая строки текста и линии в картинку. На C# это делается очень легко, встроенными методами класса Graphics. Им и воспользуемся для рисования нашего текста.
В этом посте я покажу очень примитивный и к сожалению не масштабируемый пример.=)[spoiler]
Я довольно долго не программировал на C#, так что чтобы не сильно долго вспоминать, как и что, я переделал пример рендера текста из документации . - это net привязка к различным инструментам, библиотекам таким OpenGL, OpenCL, OpenAL, также имеются различные вспомогательные классы для работы c математикой и вводом. Также есть дополнительная к OpenTK библиотека под названием , помогающая быстро и качественно отрисовать текст в OpenGL. Но здесь речь пойдет, о том как сделать это с помощью tao.framework.
Пример очень простой и соответственно о какой либо оптимизации в примере речи и быть не может=). Он лишь показывает, как можно сделать, но это не самый лучший способ это сделать. Так что не обижайтесь если, что не так)
Пример:
|
В примере все до жути примитивно, поэтому думаю разъяснять особо ничего не надо=). Пример хоть и простой, но на его основе можно построить какой нибудь кэш шрифтов с определенным набором символов, нужно лишь покопаться в MSDN и найти как получить информацию об отступах и размерах. Или же все таки просто выводить все строки сразу, но на отдельные примитивы.
Полезные ссылки:
Внимание!
Эта публикация перенесена в раздел уроков по адресу C#/Tao.framework. Простой способ отобразить текст в OpenGL.К ней прикреплена новая отдельная ветка комментариев форума, которую вы можетет найти после текста публикации.
Обсуждение публикации рекуомендуется вести по новому адресу, который указан выше.
2970
06.08.2012
2



.
Они оба уже годами не поддерживаются. Какой лучше?
Что лучше, я сказать с точностью не могу, все зависит от задачи которую вы решаете. Но если выбирать, с чего начинать осваивать OpenGL, я бы посоветовал OpenTK, для старта.
Хотя если не выбирать из этих двух вариантов, мое мнение лучше начинать на С++ c freeglut, ИМХО.