La instancia mejora el rendimiento (significativamente) cuando se procesan varias copias (¿miles? ¿Miles?) De la misma malla a la vez. Pero, ¿cuánto sobrecarga tiene cuando se procesa exactamente una copia con una llamada de extracción? ¿Sería una buena o mala idea usar instancias para toda la geometría renderizada por el motor?
Editar: Digamos que estamos creando un juego FPS. La mayoría de los objetos tienen una sola instancia: un cuchillo, una pistola, una ametralladora, un edificio y una torre de radio. Pero también hay algunos objetos con múltiples instancias: árboles (por ejemplo, 3 tipos de árboles con cientos de instancias), hierba, etc. Lo que quiero decir es: en lugar de representar los objetos de una instancia de la manera "tradicional" y los árboles y hierba usando instancias, los renderizamos todos usando instancias. Entonces, nuestra torre de radio tiene solo una instancia (cuya información almacenamos en un búfer de datos de instancia) y representamos esa torre usando algún tipo de DrawInstanced()
llamada con el recuento de instancias igual 1
. Lo mismo con todos los demás objetos (por supuesto, los árboles y el césped tienen múltiples instancias).
Entonces mi pregunta es: ¿es una mala idea dibujar una sola instancia de un objeto usando instancing? ¿La creación de instancias tiene demasiada sobrecarga (en cuanto a memoria y rendimiento) o es de alguna manera no deseada para representar objetos de instancia única?