Недавно я добавил в свой проект упаковщик текстур, который будет упаковывать определенное количество текстур в одну, например:
Так, например, этот размер составляет 582x1023 пикселей. Целью добавления этих упакованных текстур, очевидно, было повышение производительности, поэтому я хотел найти оптимальный размер текстур для текстур OpenGL (используя LWJGL). Я обнаружил, что максимально поддерживаемый максимальный размер текстуры составляет 1024x1024, в соответствии с этим, например. Это кажется мне странным, потому что очевидно, что многие текстуры сами по себе будут больше, так что же будет с ними? Я уверен, что большинство видеокарт поддерживают текстуры больше, чем это. Могу ли я разумно ожидать, что большинство видеокарт будут обрабатывать, например, текстуры 4096x4096 (или, может быть, даже больше)?
Подходя ко второму пункту (я надеюсь, что это все еще считается одним вопросом, но это сводится к одной и той же проблеме): должны ли размеры текстур иметь степень 2 (256x256, 512x512, 1024x1024, 2048x2048, ..) и должны Я набил упакованные текстуры меньше, чем до следующей степени 2? Согласно этому вопросу от 2011 года, это не является обязательным требованием, но может улучшить производительность и избежать незначительных ошибок, и этот вопрос от 2012 года говорит о том, что вам определенно следует дополнять текстуры. Таким образом, я понимаю, что эти вопросы задавались ранее, но они имеют разумную дату, чтобы ответы изменились, и, кроме того, каждый из них лишь частично отвечает на мой вопрос. Как другие проекты / справиться с этим?
TL; DR: Какие размеры текстур я могу ожидать от большинства видеокарт? Каковы оптимальные размеры текстуры (или есть)? Должен ли я увеличить ширину текстур до следующей степени 2?