Qual é o melhor, um modelo de grande nível ou vários modelos de menor nível?

8

Estou escrevendo um jogo no XNA 4 e quero ter algo como um corredor. Você acha que é melhor usar um modelo grande e sólido ou usar várias peças pequenas (janela, escada, porta ...)?

Vodáček
fonte

Respostas:

8

Em termos de renderização gráfica, uma malha grande é mais rápida de desenhar do que várias malhas menores.

Se você está falando de algo como um corredor, provavelmente não será tão intenso para a GPU se você a enviar como uma porta, um piso e algumas paredes. As malhas menores também permitem mexer no posicionamento mais facilmente.

Se o seu desenho se tornar um gargalo, considere-o.

O Pato Comunista
fonte
11
Não precisa ser mais rápido. Pegue o mundo de Oblivion, tornar isso como um seria apenas estúpido e muito lento, pois você não pode escolher quais seções são visíveis para o jogador. Você vai acabar perdendo uma tonelada de recursos
Peter Ølsted
11
O exemplo dele foi um corredor. Se ele tivesse dito 'o mundo inteiro', eu teria mencionado isso. : P
O pato comunista
Bem falado, meu mal
Peter Ølsted
sim, minha cena nível é corredor de ligação
Vodáček
Com essa cena, definitivamente vários elementos. Seria uma grande dor para mudar a cena no 3DMax, liquidificador ou o que quer. E como "O Pato Comunista", se ele se tornar um gargalo e você tiver certeza de que é o modelo e nada mais, do que talvez (se o desempenho for realmente tão importante), você poderá fazê-lo.
Peter Ølsted 23/05
5

Sugiro manter a porta como um modelo separado, a menos que você tenha certeza de que nunca será capaz de abri-la.

O Windows, se transparente, também deseja ser modelos separados, para que possam ser classificados em profundidade adequadamente para renderização.

Todo o resto provavelmente deve ter um único modelo e textura para obter o melhor desempenho e eliminar as rachaduras onde se juntam.

Adão
fonte
3

Se o seu nível possui muitos detalhes, você deve dividi-lo em partes e aplicar um pouco de seleção de frustum para desenhar apenas malhas atualmente visíveis.

r2d2rigo
fonte
Eu já usei esse método, mas acho que funciona apenas para todo o modelo (não para malhas), mas é possível que nós dependamos do meu código de desenho.
Vodáček 23/05
Se isso depende de todo o modelo ou das malhas, depende do seu renderizador ou de como você implementou a seleção. Vértices são vértices.
Deceleratedcaviar
1

na maioria dos casos, o uso de peças pequenas vale a pena, pois oferece reutilização e flexibilidade ao seu código; e no caso de um corredor ou algo semelhante que não inclua MUITAS (muitas significariam um número como pelo menos 40) partes menores, o ganho de desempenho ao usar modelos grandes e sólidos é desprezível (exceto se você estiver desenhando o objeto várias vezes por quadro).

se você se preocupa com o desempenho, recomendo pré-computar a iluminação ou usar algum tipo de matriz de vértice (buffers de vértice?) que realmente faria a diferença. (se essas coisas são possíveis no XNA - eu não sei muito sobre o XNA)

ps: o primeiro parágrafo deste post está correto apenas sobre o desenho (não sobre, por exemplo, o uso de modelos de física separados para partes do corredor)

V_shr
fonte