Я знаю, что могу использовать этот код для получения максимального размера текстуры графического процессора:
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &size, 0);
Я также могу получить максимальный размер буфера текстуры с помощью:
glGetIntegerv(GL_MAX_TEXTURE_BUFFER_SIZE, &size, 0);
проблема заключается в том, что я хочу создать атлас для упаковки символов шрифта, а двухмерный атлас более сложен, и пространство в атласе можно потерять, заполнив их без планирования места для каждого символа.Итак, я использую 1-мерный атлас для хранения текстовых символов:
https://drive.google.com/open?id=1py9l2hEk3-fJzqyMeF6P2ajrNs3CFDFj
Могу ли я превысить GL_MAX_TEXTURE_SIZE
, если размер буфера текстуры меньше, чем GL_MAX_TEXTURE_BUFFER_SIZE
?Текстуры NPOT, поэтому я задал этот вопрос (поскольку максимальный размер текстуры GL_MAX_TEXTURE_SIZE
в квадрате, а текстуры не достигают GL_MAX_TEXTURE_SIZE
по оси Y).
РЕДАКТИРОВАТЬ
Чтобы прояснить вопрос, могу ли я создать текстуру, ширина которой> 1022 *, но не высота, а буфер текстур не превышает GL_MAX_TEXTURE_BUFFER_SIZE
.Пример:
, если GL_MAX_TEXTURE_SIZE
равно 8192, создавая текстуру с размерами 10000 x 40. Она не превышает GL_MAX_TEXTURE_BUFFER_SIZE
, что составляет 8192 в квадрате, но превышает боковой максимум.