Niedawno dodałem do mojego projektu program do pakowania tekstur, który spakuje pewną liczbę tekstur do jednego, w następujący sposób:
Na przykład ten ma rozmiar 582x1023 pikseli. Celem dodania tych spakowanych tekstur było oczywiście zwiększenie wydajności, dlatego chciałem znaleźć optymalny rozmiar tekstury dla tekstur OpenGL (przy użyciu LWJGL). Odkryłem, że zgodnie z tym na przykład szeroko obsługiwany maksymalny rozmiar tekstury to 1024x1024 . Dziwi mnie to, ponieważ oczywiście wiele tekstur byłoby większych, więc co się z nimi dzieje? Jestem pewien, że większość kart graficznych obsługuje większe tekstury. Czy mogę oczekiwać, że większość kart graficznych będzie obsługiwać np. Tekstury 4096 x 4096 (a może nawet większe)?
Przechodząc do drugiego punktu (mam nadzieję, że nadal liczy się to jako jedno pytanie, ale zasadniczo sprowadza się do tego samego problemu): czy tekstury powinny mieć wielkość 2 (256 x 256, 512 x 512, 1024 x 1024, 2048 x 2048, ..) i powinny Padam spakowane tekstury mniejsze niż to do następnej potęgi 2? Zgodnie z tym pytaniem z 2011 roku nie jest to wymóg, ale może poprawić wydajność i uniknąć drobnych błędów, a ten z 2012 roku mówi, że zdecydowanie powinieneś uzupełnić tekstury. Zdaję sobie więc sprawę, że pytania te zostały zadane wcześniej, ale są rozsądnie datowane, aby odpowiedzi uległy zmianie, a ponadto każde z nich tylko częściowo odpowiada na moje pytanie. Jak inne projekty / radzą sobie z tym?
TL; DR: Jakich rozmiarów tekstur mogę się spodziewać w przypadku większości kart graficznych? Jakie są optymalne rozmiary tekstur (lub są)? Czy należy uzupełnić szerokość tekstur do następnej potęgi 2?