Você deve considerar que as GPUs ao buscar os dados para alimentar os sombreadores de vértice exigem muitas chamadas pequenas, porque elas podem armazenar apenas alguns triângulos ao mesmo tempo, e a busca de dados na VRAM é uma operação muito lenta. Portanto, suponho que se você usar metade dos bytes para os índices, a GPU poderá buscar duas vezes os índices para o cache renderizar triângulos.
4 MB Pode haver uma pequena quantidade de memória para espaço de armazenamento, mas se você precisar fazer uma chamada complexa para processar apenas alguns bytes, isso poderá afetar o desempenho de maneira perceptível. Atualmente, as placas de vídeo são poderosas o suficiente para torná-las irrelevantes em jogos que não precisam processar muita geometria, você ... poderia fazer alguns benchmarks para renderizar um modelo com os dois tamanhos de índice, se você realmente quiser saber.
Os tempos de carregamento também são mais rápidos com índices de 16 bits e, na verdade, toda gravação ou leitura, a menos que você possa controlar efetivamente o alinhamento da memória e a paginação adequada. Portanto, não se trata apenas da memória necessária, mas de quanto é preciso para lidar com isso. Se você estiver trabalhando com buffers dinâmicos que precisam ser movidos pelo barramento para a GPU em algum momento entre os quadros, use índices de 16 bits quando possível. Se estiver renderizando geometrias ainda menores, é possível agrupar muitos índices em um único buffer de índice de 16 bits para que todos sejam copiados para a GPU em uma única chamada.
Aqui você pode encontrar algumas informações sobre como as GPUs da ATI mais recentes funcionam:
Recursos de treinamento para desenvolvedores da ATI Stream
(desculpe por não encontrar o documento exato) Não li muito sobre os da NVidia, mas acho que eles funcionam mais ou menos com uma abordagem semelhante.