#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