Truquer un objet 3D pour diminuer le nombre de polygones

20

Je fais un jeu dans l'unité et je construis une clôture dans un mélangeur mais je veux que ce soit le plus bas poly possible. Mon design original était trop poly, alors je me suis demandé si je pouvais simplement utiliser un cube avec des textures intelligemment arrangées. Ainsi:

entrez la description de l'image ici

entrez la description de l'image ici

Vous pouvez voir que les bords sont tous beaux, mais les sections intérieures ne le sont pas, c'est-à-dire qu'il n'y a rien là-bas ... tout le monde sait donc s'il est possible de simuler ces faces qui donneraient l'impression qu'il s'agissait d'un maillage complet. Voici ce que je cherche à réaliser:

entrez la description de l'image ici

mr-matt
la source
7
Je compte 52 sommets sur cette clôture. Ce n'est pas beaucoup.
Pharap du
1
@Pharap Mais gardez à l'esprit ce qui se passe lorsque vous placez des milliers de copies de ce maillage à votre niveau.
Philipp
5
@Philipp Si Unity utilise correctement les objets tampons Vertex et des techniques d'optimisation similaires, cela ne devrait pas poser de problème. Vous pouvez toujours utiliser un sprite d'affichage avec alpha si vous êtes si inquiet. Ou mieux encore, rendez un sprite d'affichage à distance et rendez le maillage approprié lorsque le joueur se rapproche suffisamment. Et je doute sincèrement que vous obtiendrez des milliers de clôtures qui seront dessinées en même temps. Même s'il y a plus de 9 000 clôtures placées dans le monde, je soupçonne qu'une grande partie de celles-ci seront abattues. Avez-vous réellement comparé ou faites-vous simplement des hypothèses sur les performances?
Pharap du
6
Développez-vous pour mobile ou pour PC / console? Au moins sur les GPU modernes (5 ans ou moins), le modèle à 52 sommets est probablement moins cher que de faire un mélange alpha / masquage alpha. Cela dépend de nombreux facteurs (couverture de l'écran, GPU, pixel shader ou goulot d'étranglement de la pixellisation, etc.), mais l'utilisation de masques alpha entraîne toujours un surmenage. Vous devriez probablement comparer cela avant d'optimiser.
Tobias B du
2
Un cas où vous ne voudrez peut-être pas faire cela, cependant, pourrait être si vous devez ignorer la détection de collision dans ces lacunes, comme si vous avez essayé de tirer à travers des lacunes dans certains objets (dans certains tireurs à la première personne) et une "balle" -hole "( décalcomanie ) est apparu sur" l'espace vide "( modèle ).
DoubleDouble

Réponses:

26

Si je comprends bien ce que vous voulez réaliser, vous recherchez le concept des "imposteurs". Ce sont précisément des représentations 2D d'objets 3D, utilisées pour diminuer la complexité géométrique du rendu de l'environnement 3D.

Vous pouvez les considérer comme des images d'objets 3D utilisés comme textures d'objets 2D. La référence canonique pour ceux-ci est probablement le chapitre 21 du livre GPU Gems 3, intitulé "True Impostors". Il est accessible au public ici . Une autre référence importante est le chapitre 5.7 du livre Game Programming Gems v.2, intitulé "Imposters: Adding Clutter", dans Game Programming Gems 2, Tom Forsyth ".

Et ils peuvent également être générés à la volée, pour faire face aux petits changements d'angle de vue ou au contenu généré au moment de l'exécution. Jetez un œil au grand article de Gamasutra sur le sujet, intitulé "Dynamic 2D Imposters: A Simple, Efficient DirectX 9 Implementation" . Un développement ultérieur du concept est apparu dans "Billboard Clouds for Extreme Model Simplification" .

Pour une douce grande explication du concept, voir cette entrée de blog: http://blog.wolfire.com/2010/10/Imposters

Enfin, lorsque vous utilisez Unity, j'ai entendu parler d'un plugin qui automatise un tel processus. Il s'agit du système Real Imposters LOD .

MISE À JOUR: pour terminer, j'ai pensé à ajouter deux choses dont je me souvenais récemment. La première est: il y a une excellente vidéo GDC où le directeur artistique de SimCity explique comment ils ont utilisé (lourdement) des imposteurs pour réaliser des réalisations graphiques de premier ordre de ce jeu: "GDC - Building SimCity: l'art au service de la simulation". . Deuxièmement, pour ceux qui s'intéressent à Unreal Engine, il a une fonction intégrée pour implémenter des imposteurs, comme on peut le voir dans la documentation

MAnd
la source
Donc, si je fais le modèle de clôture, le modèle complet et que j'utilise le système Real Imposters LOD, cela fonctionnerait-il?
mr-matt
5
@MatthewInglis Je ne peux pas vous parler exactement du plugin: cela fait un moment que je n'utilise pas Unity donc je ne peux pas vérifier. Mais en principe, oui, il devrait créer une version sprite 2D de votre objet 3D entièrement détaillé. Il faudrait cependant jouer avec les configurations. Si vous envisagez d'acheter le plug-in, pensez à lire d'abord les documents ( drive.google.com/file/d/0B3GMQtflbloSeHhvUGJmcjluX3M/view ) et à contacter l'auteur à l'avance avec des questions spécifiques que vous pourriez avoir sur leur produit.
Mand
0

Si vous n'avez besoin d'aucune interaction avec la clôture, je veux dire, par les lacunes, j'utiliserais un simple rectangle transparent avec une texture imprimée.

PRDeving
la source