Bonjour,
M'aimerai mettre en place une méthode de modification de Mesh d'un objet, pour le script j'y arrive, cependant j'ai un petit soucis au niveau de l'affichage, au moment de la modification (qui dans ce cas est assez simple, je prend quelques vertex que je descend d'un en Y pour avoir une sorte de cuve) j'ai une ombre qui apparaît mais elle est assez moche (cf photo ).
J'ai chercher un peu sur le fait de la rendre "réaliste" (qu'elle colle bien avec les bord créer), mais je n'arrive à rien
Si quelqu'un aurait une solution à me proposer je suis preneur
J'aurait aussi une autre petite question si jamais quelqu'un (je suis sur que oui mais qui ai la gentillesse de m'expliquer comment faire ^^) connaîtrait un moyen (via Shader j'imagine mais je ne maîtrise pas encore bien) de bien afficher les "pliures" afin de bien différencié quand il y a un creux car la c'est assez difficile à voir, j'ai lu un truc sur l'ambiant occlusion mais je ne sais pas si je suis sur la bonne piste.
En vous remerciant d'avance
Modification Mesh, affichage d'ombre bizarre
- boubouk50
- ModoGenereux
- Messages : 6243
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Modification Mesh, affichage d'ombre bizarre
Recalcules-tu les normales après déformation?
On a l'impression qu'elles sont inchangées donc que le sol reste plat.
On a l'impression qu'elles sont inchangées donc que le sol reste plat.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Modification Mesh, affichage d'ombre bizarre
Effectivement j'avais oublié de le faire, c'est un peu mieux mais j'ai toujours cette ombre bizarre.
Voici mon code au cas ou j'aurais mis une grosse aberration dedans.
Et l'affichage semble faire smooth alors que lorsque je regarde l'objet dans la fenêtre scene, c'est bien franc, la on dirait la modification style terrain alors que j'aimerai bien faire un truc dans le low poly mais je n'y arrive pas
Voici mon code au cas ou j'aurais mis une grosse aberration dedans.
Code : Tout sélectionner
Mesh mesh = terrain.GetComponent<MeshFilter>().mesh;
MeshRenderer renderer = terrain.GetComponent<MeshRenderer>();
MeshCollider collider = terrain.GetComponent<MeshCollider>();
Vector3[] vertices = mesh.vertices;
//Petite boucle pour modifier les vertex.
int i = 0;
while (i < vertices.Length)
{
if (vertices[i].x>=0.1f && vertices[i].x <= 0.5f && vertices[i].z>=0.1f && vertices[i].z<=0.5f)
{
vertices[i] = new Vector3(vertices[i].x, vertices[i].y - 0.1f, vertices[i].z);
}
i++;
}
int[] triangles = mesh.triangles;
Vector3[] normals = mesh.normals;
mesh.Clear();
mesh.vertices = vertices;
mesh.triangles = triangles;
mesh.RecalculateBounds();
mesh.RecalculateNormals();
collider.sharedMesh = null;
collider.sharedMesh = mesh;
- boubouk50
- ModoGenereux
- Messages : 6243
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Modification Mesh, affichage d'ombre bizarre
Si tu veux du flat il te faut calculer la normale du triangle pas la normale moyenne au sommet.
Ton mesh de base est importé?
Si oui, n'utilise pas de SmoothGroup sur les faces pour pas que les sommets soient partagés (et donc leurs normales).
Peut-être aussi tu peux les ignorer à l'import ou les faire calculer par Unity avec un angle impossible. Evite aussi l'optimisation de mesh peut-être.
Ton mesh de base est importé?
Si oui, n'utilise pas de SmoothGroup sur les faces pour pas que les sommets soient partagés (et donc leurs normales).
Peut-être aussi tu peux les ignorer à l'import ou les faire calculer par Unity avec un angle impossible. Evite aussi l'optimisation de mesh peut-être.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Modification Mesh, affichage d'ombre bizarre
Tu aurais des pistes pour faire ce calcul ? Là je ne vois vraiment pas comment faire
Non ce n'est pas un Mesh importé, j'ai testé plusieurs système pour cela (soit en l'important avec Blender mais j'ai une chute de FPS monstrueux, de générer via un script perso une map de voxel, mais idem problème de performance) la je test avec le plugin "Mesh Terrain Editor" qui génère un Mesh dans l'éditor.
Non ce n'est pas un Mesh importé, j'ai testé plusieurs système pour cela (soit en l'important avec Blender mais j'ai une chute de FPS monstrueux, de générer via un script perso une map de voxel, mais idem problème de performance) la je test avec le plugin "Mesh Terrain Editor" qui génère un Mesh dans l'éditor.
- boubouk50
- ModoGenereux
- Messages : 6243
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Modification Mesh, affichage d'ombre bizarre
Je n'ai qu'une connaissance théorique des éditions de mesh.
Dans l'idée, je pense que les sommets sont partagés entre les faces donc ils ont une seule normale qui lisse le maillage. Il faut donc séparer chaque sommet par face. Tu auras donc plusieurs sommets au même endroit soit 6 pour ton mesh de base. Ainsi, chacun aura une normale différente puisque calculée depuis sa face et non depuis la moyenne des faces juxtaposées.
C'est ce qui est (était?) fait dans les logiciels 3D.
Dans l'idée, je pense que les sommets sont partagés entre les faces donc ils ont une seule normale qui lisse le maillage. Il faut donc séparer chaque sommet par face. Tu auras donc plusieurs sommets au même endroit soit 6 pour ton mesh de base. Ainsi, chacun aura une normale différente puisque calculée depuis sa face et non depuis la moyenne des faces juxtaposées.
C'est ce qui est (était?) fait dans les logiciels 3D.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Modification Mesh, affichage d'ombre bizarre
D'accord, je vais me renseigner la dessus
Je te remercie pour ton aide
Je te remercie pour ton aide