Fingir un objeto 3D para disminuir el número de polígonos

20

Estoy haciendo un juego en unidad y estoy construyendo una valla en la licuadora, pero quiero que sea lo más bajo posible. Mi diseño original era demasiado polivinílico, así que pensé, ¿y si simplemente pudiera usar un cubo con algunas texturas ingeniosamente organizadas? Al igual que:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Puede ver que todos los bordes se ven bien, pero las secciones interiores no lo son, es decir, no hay nada ... así que alguien sabe si es posible falsificar esas caras que lo harían ver como si fuera una malla completa. Esto es lo que estoy tratando de lograr:

ingrese la descripción de la imagen aquí

señor-mate
fuente
77
Cuento 52 vértices en esa cerca. Eso no es tanto.
Pharap
1
@Pharap Pero tenga en cuenta lo que sucede cuando coloca miles de copias de esta malla en su borde nivelado.
Philipp
55
@Philipp Si Unity está utilizando Vertex Buffer Objects y técnicas de optimización similares correctamente, eso no debería ser un problema. Siempre puedes usar un sprite de cartelera con alfa si estás tan preocupado. O mejor aún, renderice un sprite de cartelera a distancia y renderice la malla adecuada cuando el jugador se acerque lo suficiente. Y sinceramente dudo que consigas miles de cercas siendo arrastradas a la pantalla a la vez. Incluso si hay más de 9000 cercas colocadas en el mundo, sospecho que una gran cantidad de ellas serán eliminadas. ¿Realmente ha realizado una evaluación comparativa o solo está haciendo suposiciones sobre el rendimiento?
Pharap
66
¿Estás desarrollando para dispositivos móviles o para PC / consola? Al menos en las GPU modernas (de 5 años o menos), el modelo de 52 vértices es probablemente más barato que hacer algunas mezclas alfa / máscaras alfa. Depende de muchos factores (cobertura de pantalla, GPU, sombreador de píxeles o cuello de botella de rasterización, etc.), pero el uso de máscaras alfa siempre da como resultado un sobregiro. Probablemente debería compararlo antes de optimizar.
Tobias B
2
Sin embargo, una instancia en la que es posible que no desee hacer esto podría ser si necesita ignorar la detección de colisión en esos espacios, como si hubiera intentado disparar a través de espacios en ciertos objetos (en algunos tiradores en primera persona) y una "bala" -hole "( calcomanía ) apareció en el" espacio vacío "( modelo ).
DoubleDouble

Respuestas:

26

Si entiendo correctamente lo que quiere lograr, está buscando el concepto de "impostores". Estas son precisamente representaciones 2D de objetos 3D, utilizadas para disminuir la complejidad geométrica de renderizar el entorno 3D.

Puede pensar en ellos más o menos como imágenes de los objetos 3D que se utilizan como texturas de objetos 2D. La referencia canónica para ellos es probablemente el capítulo 21 del libro GPU Gems 3, llamado "True Impostors". Está disponible públicamente aquí . Otra referencia importante es el capítulo 5.7 del libro Game Programming Gems v.2, llamado "Imposters: Add Clutter”, en Game Programming Gems 2, Tom Forsyth ".

Y se pueden generar de manera uniforme sobre la marcha, para hacer frente a pequeños cambios en el ángulo de visión o con contenido generado en tiempo de ejecución. Eche un vistazo al gran artículo de Gamasutra sobre el tema, llamado "Impulsores dinámicos 2D: una implementación simple y eficiente de DirectX 9" . Un desarrollo adicional del concepto apareció en "Billboard Clouds for Extreme Model Simplification" .

Para una gran explicación del concepto, vea esta entrada del blog: http://blog.wolfire.com/2010/10/Imposters

Por último, mientras usa Unity, he oído hablar de un complemento que automatiza dicho proceso. Se llama Real Imposters LOD System .

ACTUALIZACIÓN: para completar, pensé en agregar dos cosas que recordaba recientemente. La primera es: hay un gran video de GDC en el que el director de arte de SimCity explica cómo han hecho uso (pesado) de impostores para lograr logros gráficos de primer nivel de ese juego: "GDC - Construyendo SimCity: Arte al servicio de la simulación". . En segundo lugar, para aquellos interesados ​​en Unreal Engine, tiene una característica incorporada para implementar impostores, como se puede ver en los documentos

Mand
fuente
Entonces, si hago el modelo de cerca, el completo y uso el Sistema Real Imposters LOD, ¿funcionaría?
Mr-Matt
55
@MatthewInglis No puedo contarte exactamente sobre el complemento: ha pasado un tiempo desde que no uso Unity, así que no puedo verificarlo. Pero, en principio, sí, debería crear una versión de sprite 2D de su objeto 3D completamente detallado. Sin embargo, tendrías que jugar con las configuraciones. Si planea comprar el complemento, considere leer primero los documentos ( drive.google.com/file/d/0B3GMQtflbloSeHhvUGJmcjluX3M/view ) y contacte al autor con preguntas específicas que pueda tener sobre su producto de antemano.
2016
0

Si no necesita ninguna interacción a través de la cerca, quiero decir, por los huecos, usaría un rectángulo transparente simple con una textura impresa.

PRDeving
fuente