Quale è meglio, un modello di livello superiore o più modelli di livello inferiore?


8

Sto scrivendo un gioco in XNA 4 e voglio avere qualcosa come un corridoio. Pensi che sia meglio usare un modello grande e solido o utilizzare più parti piccole (finestre, scale, porte ...)?

Risposte:


8

In termini di rendering grafico, una mesh di grandi dimensioni è più veloce da disegnare rispetto a diverse mesh più piccole.

Se stai parlando di qualcosa come un corridoio, probabilmente non sarà così intenso per la GPU se lo invii come una porta, un pavimento e alcuni muri. Le maglie più piccole consentono anche di giocherellare con il posizionamento più facilmente.

Se il tuo disegno diventa un collo di bottiglia, consideralo.


1
Non deve essere più veloce. Prendi il mondo di Oblivion, rendendolo come uno sarebbe semplicemente stupido e molto lento poiché non puoi scegliere quali sezioni sono visibili al giocatore.
Finirai

1
Il suo esempio era un corridoio. Se avesse detto "il mondo intero", lo avrei menzionato. : P
L'anatra comunista

Ben detto, mio ​​cattivo
Peter Ølsted

sì, la mia scena di livello è il collegamento del
Vodáček,

Con quella scena, sicuramente diversi elementi. Sarebbe un vero dolore cambiare la scena in 3DMax, Blender o altro. E come "L'anatra comunista", se diventa un collo di bottiglia e sei sicuro che sia il modello e non altro, che forse (se la performance è davvero così importante) puoi farlo.
Peter Ølsted,

5

Suggerirei di mantenere la porta come modello separato, a meno che tu non sia sicuro di non voler mai aprirla.

Le finestre se sono trasparenti vogliono anche essere modelli separati in modo che possano essere ordinate in profondità in modo appropriato per il rendering.

Tutto il resto dovrebbe probabilmente essere un singolo modello e una trama per le migliori prestazioni e per eliminare eventuali crepe in cui si uniscono.


3

Se il tuo livello ha troppi dettagli, dovresti dividerlo in parti e applicare un po 'di abbattimento del frustum per disegnare solo le mesh attualmente visibili.


Ho già usato questo metodo, ma penso che funzioni solo per l'intero modello (non per le mesh), ma è possibile che dipendiamo dal mio codice di disegno.
Vodáček,

Se dipende dall'intero modello o dalle mesh dipende dal tuo renderer o da come hai implementato l'abbattimento. I vertici sono vertici.
deceleratedcaviar

1

nella maggior parte dei casi vale la pena usare piccole parti perché offre riusabilità e flessibilità al codice; e nel caso di un corridoio o qualcosa di simile che non includa MOLTE (molte significherebbero un numero come almeno 40) parti più piccole, il guadagno in termini di prestazioni dell'uso di modelli grandi e solidi è trascurabile (tranne se si sta disegnando l'oggetto molte volte per frame).

se ti preoccupi delle prestazioni, ti consiglio di pre-calcolare l'illuminazione o usare una sorta di array di vertici (buffer di vertici?) che farebbero davvero la differenza. (se queste cose sono possibili in XNA - non so molto su XNA)

ps: il primo paragrafo di questo post è corretto solo sul disegno (non sull'uso ad esempio di modelli fisici separati per parti del corridoio)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.