Я пытаюсь получить низкополигональный шейдер для воды, работающий с графиком шейдеров.Я сталкиваюсь со странной проблемой, я могу заставить мой шейдер работать на плоскости, но он не будет работать на четырехугольнике или плоскости, сгенерированной во время выполнения.
Вот изображение того, как выглядят обе геометрии.
И вот мой код шейдерного графика.
Наконец, вот код, который я использую для генерации сетки во время выполнения:
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;
}
}
Большое спасибо за любые советы:)
[РЕДАКТИРОВАТЬ]
Вот результат с квадратом из единицы (это работает)