Смещение вершин графа Unity Shader не работает на сетке, созданной во время выполнения - PullRequest
0 голосов
/ 29 июня 2019

Я пытаюсь получить низкополигональный шейдер для воды, работающий с графиком шейдеров.Я сталкиваюсь со странной проблемой, я могу заставить мой шейдер работать на плоскости, но он не будет работать на четырехугольнике или плоскости, сгенерированной во время выполнения.

Вот изображение того, как выглядят обе геометрии.

И вот мой код шейдерного графика.

Наконец, вот код, который я использую для генерации сетки во время выполнения:

public class test : MonoBehaviour
{
    void Start()
    {
        MeshFilter mf = GetComponent< MeshFilter > ();
        var mesh = new Mesh();
        mf.mesh = mesh;

        float width = 10;
        float height = 10;

        Vector3[] vertices = new Vector3[4];

        vertices[0] = new Vector3(0, 0, 0);
        vertices[1] = new Vector3(width, 0, 0);
        vertices[2] = new Vector3(0, 0, height);
        vertices[3] = new Vector3(width, 0, height);

        mesh.vertices = vertices;

        int[] tri = new int[6];

        tri[0] = 0;
        tri[1] = 2;
        tri[2] = 1;

        tri[3] = 2;
        tri[4] = 3;
        tri[5] = 1;

        mesh.triangles = tri;

        Vector3[] normals = new Vector3[4];

        normals[0] = -Vector3.forward;
        normals[1] = -Vector3.forward;
        normals[2] = -Vector3.forward;
        normals[3] = -Vector3.forward;

        mesh.normals = normals;
    }
}

Большое спасибо за любые советы:)

[РЕДАКТИРОВАТЬ]

Вот результат с квадратом из единицы (это работает)

Ответы [ 2 ]

0 голосов
/ 30 июня 2019

Я узнал!Похоже, мне нужно было uvs в сетку.Я не очень понимаю, как это связано с положением вершины, но почему бы и нет.

0 голосов
/ 30 июня 2019

Похоже, ваш нормальный вектор неправильный, потому что вы создаете плоскую сетку на плоскости xz, а нормальная - вперед? это должно быть вверх или вниз, я думаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...