¿Qué es mejor, un modelo de nivel grande o varios modelos de nivel más pequeños?

8

Estoy escribiendo un juego en XNA 4 y quiero tener algo así como un corredor. ¿Crees que es mejor usar un modelo grande y sólido, o usar múltiples piezas pequeñas (ventanas, escaleras, puertas ...)?

Vodáček
fuente

Respuestas:

8

En términos de representación gráfica, una malla grande es más rápida de dibujar que varias mallas más pequeñas.

Si está hablando de algo así como un corredor, probablemente no será tan intenso para la GPU si lo envía como una puerta, un piso y algunas paredes. Las mallas más pequeñas también le permiten jugar con el posicionamiento más fácilmente.

Si su dibujo se convierte en un cuello de botella, considérelo.

El pato comunista
fuente
1
No tiene que ser más rápido. Tome el mundo de Oblivion, convirtiéndolo en uno solo sería estúpido y muy lento, ya que no puede elegir qué secciones son visibles para el jugador. Terminarás desperdiciando una tonelada de recursos
Peter Ølsted
1
Su ejemplo fue un corredor. Si hubiera dicho "el mundo entero", lo habría mencionado. : P
El pato comunista
Bien dicho, mi mal
Peter Ølsted
sí, mi escena de nivel es el enlace del
Vodáček
Con esa escena, definitivamente varios elementos. Sería un verdadero dolor cambiar la escena en 3DMax, Blender o lo que sea. Y como "El pato comunista", si se convierte en un cuello de botella y está seguro de que es el modelo y no otra cosa, tal vez (si el rendimiento es realmente tan importante) puede hacerlo.
Peter Ølsted
5

Sugeriría mantener la puerta como un modelo separado, a menos que esté seguro de que nunca querrá poder abrirla.

Windows, si son transparentes, también quieren ser modelos separados para que se puedan clasificar en profundidad de manera adecuada para el renderizado.

Probablemente, todo lo demás debería ser un modelo y una textura únicos para un mejor rendimiento y para eliminar cualquier grieta en la que se unen.

Adán
fuente
3

Si su nivel tiene demasiados detalles, debe dividirlo en partes y aplicar un poco de eliminación selectiva para dibujar solo las mallas actualmente visibles.

r2d2rigo
fuente
Ya he usado este método, pero creo que funciona solo para todo el modelo (no para mallas), pero es posible que dependa de mi código de dibujo.
Vodáček
Si depende de todo el modelo o de las mallas depende de su renderizador o de cómo ha implementado el descarte. Los vértices son vértices.
deceleratedcaviar
1

en la mayoría de los casos, vale la pena usar piezas pequeñas porque le da flexibilidad y reutilización a su código; y en el caso de un corredor o algo similar que no incluye MUCHAS (muchas significarían un número como al menos 40) partes más pequeñas, la ganancia de rendimiento del uso de modelos grandes y sólidos es insignificante (excepto si está dibujando el objeto muchas veces por cuadro).

Si le importa el rendimiento, le recomiendo precalcular la iluminación o usar algún tipo de matriz de vértices (¿búferes de vértices?) que realmente marcarían la diferencia. (si esas cosas son posibles en XNA, no sé mucho sobre XNA)

ps: el primer párrafo de esta publicación es correcto solo sobre el dibujo (no sobre, por ejemplo, el uso de modelos de física separados para partes del corredor)

V_shr
fuente