ПрограммированиеФорумГрафика

Пару вопросов по ОпенГЛ (17 стр)

Страницы: 116 17 18 1922 Следующая »
#240
21:03, 25 ноя 2014

gammaker
да я всё так и делаю, но ведь большая текстура всё равно выводится!

#241
9:56, 26 ноя 2014

У меня только один вопрос. Делаю 3д игру, хочу сделать вывод текста. Всю сцену рисую в текстуру, которую затем рисую с ортогональной проекцией. Нормально ли будет, если поверх этой текстуры рисовать прямоугольники с текстурами текста с альфа-смешиванием?

#242
10:47, 26 ноя 2014

Вроде так всегда текст и выводят. Главное одним куском все прямоугольники рисовать, а не по одной буковке.

#243
11:14, 26 ноя 2014

kipar, спасибо, так и сделаю.

#244
11:46, 26 ноя 2014

kipar
А откуда эти куски получать?

#245
12:28, 26 ноя 2014

Valorin
Ну, генерировать VBO состоящий из всех букв данного текста. Это если текст динамический конечно, типа fps или координат. А если статический, типа "New game" - можно один раз вывести всю надпись в текстуру и дальше один прямоугольник с ней рисовать.

#246
12:50, 26 ноя 2014

kipar
То есть динамический текст выводится по буковке но через VBO за один вызов. Вот это я и хотел услышать. А то пред. сообщение могло ввести в заблуждение.

#247
13:21, 26 ноя 2014

Valorin, вобщем нужно делать таким образом:
1) загрузить картинку с алфавитом, цифрами и другими знаками
2) написать функцию, которая принимает строку и по ней какбы вырезает из картинки нужные квадратики букв и из них создает картинку всей строки.
3) сделать из полученной картинки опенгл-текстуру.
4) прицепить эту текстуру к прямоугольному тетрагону.
5) рисовать тетрагон.

#248
13:27, 26 ноя 2014

Важно понимать, что картинка - это обычный динамический двумерный массив обьектов со структурой типа:
структура пиксель
{
  байт красный;
  байт зеленый;
  байт синий;
  байт альфа;
};

#249
13:37, 26 ноя 2014

programina
Пункт 3 лишний... и т.д.
Делай как писал kipar
> Ну, генерировать VBO состоящий из всех букв данного текста.

p.s. у меня проблем с текстом нет =)

#250
13:54, 26 ноя 2014

Valorin
>> 3) сделать из полученной картинки опенгл-текстуру.
> Пункт 3 лишний... и т.д.
Вы не понимаете, что картинка и текстура - это не одно и то же. Как я уже написала в предыдущем комменте: картинка - это обычный двумерный динамический массив "пикселей" в представлении языка программирования. Текстура же это указатель на обьект опенгл.

#251
14:04, 26 ноя 2014

programina
Смотри - если наша надпись все равно используется только один раз, а на следующий кадр генерируется заново - нет смысла делать для нее лишнюю текстуру. Можно просто рисовать квадратами буквы сразу на экране.
Просто т.к. букв в тексте может быть много, то главное - не выводить их по одной, иначе страница текста или сотня подписей хп у юнитов может нехило посадить производительность.

А если надпись фиксированная и не меняется - да, делать из нее текстуру как ты написала.

#252
17:33, 26 ноя 2014

programina
Производительность на динамическом тексте укатаешь. Одна буква - один квад (2 триса, 4 вертекса). На этот квад накладываешь текстуру шрифта по сгенерированным координатам. Квады потому уже группируй как хочешь, VAO, VBO, батчи, инстансы.

#253
23:02, 27 ноя 2014

почему, если в glDrawArrays индекс отсчёта изменять, то производительность сильно страдает(падает раз в несколько)? Что могло бы быть альтернативой?

#254
23:08, 27 ноя 2014

тоже, кстати, вопрос про текст. На каждую букву по одному прямоугольнику, так?

Страницы: 116 17 18 1922 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.