Modification Mesh, affichage d'ombre bizarre

Questions à propos du scripting Shader.
Lorion
Messages : 4
Inscription : 16 Mai 2017 14:31

Modification Mesh, affichage d'ombre bizarre

Message par Lorion » 16 Mai 2017 14:47

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 ).

Image

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.

Image

En vous remerciant d'avance :)

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Modification Mesh, affichage d'ombre bizarre

Message par boubouk50 » 16 Mai 2017 15:05

Recalcules-tu les normales après déformation?
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

Lorion
Messages : 4
Inscription : 16 Mai 2017 14:31

Re: Modification Mesh, affichage d'ombre bizarre

Message par Lorion » 16 Mai 2017 15:25

Effectivement j'avais oublié de le faire, c'est un peu mieux mais j'ai toujours cette ombre bizarre.
Image
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;
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 :/
Image

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Modification Mesh, affichage d'ombre bizarre

Message par boubouk50 » 16 Mai 2017 15:52

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.
"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

Lorion
Messages : 4
Inscription : 16 Mai 2017 14:31

Re: Modification Mesh, affichage d'ombre bizarre

Message par Lorion » 16 Mai 2017 16:58

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.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Modification Mesh, affichage d'ombre bizarre

Message par boubouk50 » 16 Mai 2017 17:37

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.
"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

Lorion
Messages : 4
Inscription : 16 Mai 2017 14:31

Re: Modification Mesh, affichage d'ombre bizarre

Message par Lorion » 17 Mai 2017 09:11

D'accord, je vais me renseigner la dessus :)

Je te remercie pour ton aide :)

Avatar de l’utilisateur
VaultGuy
Messages : 16
Inscription : 23 Avr 2016 21:54

Re: Modification Mesh, affichage d'ombre bizarre

Message par VaultGuy » 21 Juin 2017 23:42

https://www.youtube.com/watch?v=V1vL9yRA_eM

Tu as des explications dans ce tuto.

Répondre

Revenir vers « les Shaders »