Comment puis-je créer un matériau de fromage à pizza extensible et cassant?

21

Je veux créer une pizza réaliste et permettre à l'utilisateur d'interagir avec elle.

Ce que je veux:

photographie de pizza avec une tranche en cours de levage

Ce que j'ai créé:

capture d'écran d'une pizza rendue, avec une tranche manquante

J'ai créé le modèle de la pizza (8 pièces) dans Blender, puis je l'ai importé dans Unity. Le morceau de pizza semble très artificiel, principalement parce qu'il s'agit d'un "triangle rigide".

Comment puis-je faire étirer et casser le fromage lorsque l'utilisateur déplace un morceau?

Peter Burenkov
la source
1
De meilleurs modèles, de meilleures textures et de meilleurs shaders. Aussi simple que cela.
API-Beast du
Voulez-vous réellement que le fromage s'étire et se casse? Si vous pouviez être plus précis sur quel aspect vous voulez être plus réaliste, cela aiderait à réduire la portée de la question.
MichaelHouse
2
@ Byte56, je comprends que je peux améliorer la qualité de la pizza en améliorant le modèle, les textures et les shaders, mais je m'intéresse au fromage. Oui, je veux qu'il soit extensible et cassable. Comme du vrai fromage.
Peter Burenkov
6
Personnellement, je voudrais jeter un œil à la simulation de tissu en temps réel et voir jusqu'où vous pouvez aller du tissu au fromage en modifiant les paramètres. Je manipulerais la couche de fromage de la pizza comme un maillage séparé et utiliserais un modèle ressort / masse pour calculer les déformations. J'ai également vu des systèmes de tissu auparavant, qui vous permettent de déchirer le tissu, ce que vous voudriez également pour votre fromage. Combinez cela avec un shader qui se mélange d'une texture de fromage solide à une texture de fromage étirée / déchirée en fonction de la force appliquée aux nœuds du modèle ressort / masse, et cela devrait vous donner un résultat assez soigné.
Invor
Juste pour jouer l'avocat du diable ici, êtes-vous sûr d' avoir besoin de ce genre d'animation? Je sais que cela semble étrange de demander, mais vous devriez voir d'après les réponses déjà données, c'est un effet assez complexe que vous visez. Évidemment, cela dépend du jeu (je ne sais pas si vous faites un simulateur de fabrication de pizza [je connais des gens qui paieraient beaucoup pour un]), mais vous devriez vous demander si le travail que vous allez y mettre ajoute vraiment assez pour justifier votre effort. Même si vous avez beaucoup de temps, le consacrer ailleurs pourrait être plus rentable à long terme ...
Selali Adobor

Réponses:

28

La voie simple

Ajoutez un quad qui relie les tranches adjacentes les unes aux autres. Texture ceci avec une belle texture de fromage fondu, avec des trous. Au fur et à mesure que la tranche est éloignée, le quad est naturellement étiré et ainsi étire et biaise la texture.

Cela devrait sembler raisonnable, mais il n'y aura pas de pause. Que faire ici est de rendre cette texture animée. Parcourez l'animation en fonction de la zone des quads (ou simplement de la distance entre les tranches) au lieu du temps. À mesure qu'il s'éloigne, plus de trous apparaîtront en raison de la progression de l'animation.

Finalement, lorsqu'un seuil de distance est atteint, divisez le quad en deux, rétrécissez par programme les deux quads dans le sens de leurs tranches attachées pour les rétrécir un peu et continuez à jouer l'animation qui montre l'accrochage. Gèle l'animation à la fin.

Pour un peu plus de dynamique, vous pouvez attacher le quadruple aux deux tranches à l'aide d'un joint dans un moteur physique.

À la dure

Utilisez un moteur physique du corps mou ou écrivez-en un. Définissez une section de tissu entre les tranches et texturez-la avec du fromage. Permettre au moteur physique de modéliser la dynamique de l'étirement et de l'accrochage des matériaux.

Il s'agit d'une méthode beaucoup plus intensive, mais plus généralement applicable. Il peut également être très incontrôlable mais pourrait être un effet global plus convaincant.

OriginalDaemon
la source
3
Je suggérerais totalement la première approche.
jhocking
6
À tout le moins, passez quelques heures à essayer la première approche (vous pouvez facilement utiliser plusieurs quads) avant de passer quelques ... euh ... mois à écrire un moteur physique ...
corsiKa
3
Tellement faim de voir le résultat! Veuillez nous mettre à jour lorsque vous l'avez terminé.
John Moses
2
Pendant un moment là-bas, j'ai pensé que je lis "Utilisez un moteur à fromage à pâte molle" et j'ai pensé, wow, les gens vont écrire des moteurs pour n'importe quoi.
Thomas
2
Unity dispose d'un moteur de physique des tissus intégré qui prend en charge l'étirement et la déchirure, de sorte que la méthode difficile ne sera peut-être pas si difficile. Bien que ce soit beaucoup plus cher en termes de calcul.
Ethan Worley
2

Utilisation d'une animation prédéfinie:

Créez donc une animation prédéfinie dans un logiciel de modélisation 3D comme Maya / Blender qui a des fonctionnalités telles que des corps souples et un tissu qui peuvent faire un bon travail en simulant le déchirement de la pizza. Exportez à la fois la texture de la pizza ET l'animation du modèle vers Unity (probablement sous la forme d'un ensemble de modèles .obj ou autres).

L'animation du modèle représente le fromage étiré et déchiré à l'aide de nombreux triangles, que vous pouvez charger sous forme d'un ensemble de tri-mailles dans Unity. Ils sont une collection de nombreux états de maille, chacun représentant la pizza au fromage à différentes positions d'étirement. Selon l'endroit où l'utilisateur positionne la tranche de pizza, vous passerez à cet «état de maillage» et afficherez ces triangles.

Il y a bien sûr quelques problèmes. L'interaction utilisateur est un peu restreinte. Si le fromage est déjà un peu déchiré, vous ne pouvez pas revenir à l'état «non déchiré» pour cette zone de fromage. Si l'animation prédéfinie supprime la tranche 1 puis la tranche 2, l'utilisateur sera obligé de supprimer les tranches dans cet ordre. La taille des données exportées peut devenir assez importante, en fonction de la granularité du maillage et de la durée de l'animation de déchirement.

Mais cela peut sembler très réaliste, si l'artiste modèle fait du bon travail lors de la création de l'animation prédéfinie. Et vous n'avez pas besoin d'implémenter un simulateur de corps mou.

Utiliser Unity:

Mais si vous êtes intéressé, Unity implémente son propre tissu Skinned et Interactive Fabric composants . Le tissu interactif supporte le déchirement. Mais leur support est limité à quelques plates-formes, la dernière fois que j'ai vérifié.

En utilisant vous:

En fin de compte, vous pouvez toujours implémenter votre propre simulateur de corps mou. Voici un exemple de document de recherche qui est assez populaire. C'est tres amusant :). Bonne chance.

Arun R
la source
1

Les réponses de @ originalDaemon sont bonnes! Je pense qu'il y a une voie médiane qui peut obtenir de meilleurs résultats que la première approche et nécessitera un effort raisonnable (peut-être contrairement à l'approche "The Hard Way").

Ce que je suggère, c'est trop de modeler la "toile" du fromage, ça me ressemble beaucoup aux stalactites. Modelez quelques morceaux de fromage extensible. Positionnez-les au hasard sur les bords du triangle de la gourmandise et redimensionnez-les à 0 y-axiset lorsque le triangle est retiré de ses compadres, redimensionnez-les lentement sur l'axe des y jusqu'à la taille requise.

Vous devrez peut-être choisir un autre axe au lieu de ysi vous prévoyez de retirer légèrement le triangle. Quoi qu'il en soit, je pense que même si une texture plate serait beaucoup plus facile et rentable, la modélisation du fromage pourrait se révéler plus réaliste pour le gros plan, bien qu'une texture puisse également fonctionner. Si vous choisissez une texture, utilisez peut-être plusieurs couches pour obtenir une sensation plus réaliste. N'oubliez pas non plus d'ajouter un peu de vapeur pour souligner la chaleur de la pizza dans le cliché.

Une autre chose que j'ai remarquée, c'est qu'il semble que le pepperoni n'est qu'une texture en ce moment. J'envisagerais certainement de le modéliser ou d'ajouter des détails dans ce domaine au modèle existant. Vous pouvez le faire glisser avec le fromage extensible pour plus de réalisme.

Wolfdawn
la source