создал сетку, но передняя и обратная стороны разные

#c# #unity3d #mesh

#c# #unity-игровой движок #сетка

Вопрос:

Я создал сетку в коде.

Сетка сделана хорошо. 4 вершины и 2 треугольника

Однако рендеринг стал другим. под картинками

Почему передняя и задняя части разные?

Видимая сторона прозрачна с другой стороны.

Какие параметры я должен добавить?

Я ввел значения только для вершин и точек треугольника.

введите описание изображения здесь

введите описание изображения здесь

Ответ №1:

После создания ваших сеток убедитесь, что вы применили эти:

 mesh.RecalculateBounds();
mesh.RecalculateNormals();
  

Каждый раз, когда вы изменяете или создаете сетку с нуля, вам приходится пересчитывать нормали и пересчитывать границы.

После изменения вершин часто бывает полезно обновить нормали, чтобы отразить изменение. Нормали вычисляются из всех совместно используемых вершин.

Ответ №2:

Вы могли бы добавить «Cull Off» в свой шейдер для рендеринга обеих сторон сетки. По умолчанию система отображает только лицевую сторону из соображений производительности, как упоминалось в этом сообщении https://answers.unity.com/questions/187252/display-both-sides.html

Причина в том, что графические системы всегда отбирают задние поверхности. Грани обычно определяются порядком наматывания, то есть порядком, в котором объявлены вершины треугольника. Обратные поверхности отбираются, потому что это простой способ сэкономить вычислительную мощность — обычно нет необходимости отображать грань, которая отворачивается от зрителя, например, другую сторону сетки объекта.

и пример кода: https://answers.unity.com/questions/209018/cutout-diffuse-shader-visible-from-both-sides-on-a.html