Не текстурируются сгенерированные стены

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

Не текстурируются сгенерированные стены

Сообщение Devane1488 16 июн 2019, 22:41

Господа знатоки! прошу вашему вниманию мою ошибку.
Я строю меши с нуля и появилась проблема, при которой текстура на стены ложится неправильно ~x(
дело в том что она вроде наложилась но она плавает словно она отразилась или это скайбокс
она ползает относительно камеры .
ниже прилагаю скриншоты для понимания сути дела:

https://drive.google.com/open?id=1qm5to ... UqbRP_jyru

Заранее спасибо всем откликнувшимся ! ;;)
Devane1488
UNец
 
Сообщения: 12
Зарегистрирован: 21 мар 2019, 20:47

Re: Не текстурируются сгенерированные стены

Сообщение AngryCat 17 июн 2019, 01:23

С разверткой все в порядке?
Здесь могла бы быть ваша реклама.
Аватара пользователя
AngryCat
Старожил
 
Сообщения: 716
Зарегистрирован: 20 июл 2018, 22:29
Skype: Дискорд - Флеш#4099

Re: Не текстурируются сгенерированные стены

Сообщение Devane1488 17 июн 2019, 11:05

AngryCat писал(а):С разверткой все в порядке?

вроде обычные полигоны
Devane1488
UNец
 
Сообщения: 12
Зарегистрирован: 21 мар 2019, 20:47

Re: Не текстурируются сгенерированные стены

Сообщение Devane1488 17 июн 2019, 12:25

AngryCat писал(а):С разверткой все в порядке?

Вот код который рисует стены
Синтаксис:
Используется csharp
void CreateWallMesh()
    {

        MeshCollider currentCollider = GetComponent<MeshCollider>();
        Destroy(currentCollider);

        CalculateMeshOutlines();

        List<Vector3> wallVertices = new List<Vector3>();
        List<int> wallTriangles = new List<int>();
        Mesh wallMesh = new Mesh();
        //float wallHeight = 5;

        foreach (List<int> outline in outlines)
        {
            for (int i = 0; i < outline.Count - 1; i++)
            {
                int startIndex = wallVertices.Count;
                wallVertices.Add(vertices[outline[i]]); // left
                wallVertices.Add(vertices[outline[i + 1]]); // right
                wallVertices.Add(vertices[outline[i]] - Vector3.up * wallHeight); // bottom left
                wallVertices.Add(vertices[outline[i + 1]] - Vector3.up * wallHeight); // bottom right

                wallTriangles.Add(startIndex + 0);
                wallTriangles.Add(startIndex + 2);
                wallTriangles.Add(startIndex + 3);

                wallTriangles.Add(startIndex + 3);
                wallTriangles.Add(startIndex + 1);
                wallTriangles.Add(startIndex + 0);

            }
        }

        wallMesh.vertices = wallVertices.ToArray();
        wallMesh.triangles = wallTriangles.ToArray();
        wallMesh.RecalculateNormals();
        walls.mesh = wallMesh;

        MeshCollider wallCollider = gameObject.AddComponent<MeshCollider>();
        wallCollider.sharedMesh = wallMesh;
    }
 
Devane1488
UNец
 
Сообщения: 12
Зарегистрирован: 21 мар 2019, 20:47

Re: Не текстурируются сгенерированные стены

Сообщение IDoNotExist 17 июн 2019, 12:29

Devane1488 писал(а):
AngryCat писал(а):С разверткой все в порядке?

Вот код который рисует стены
Синтаксис:
Используется csharp
void CreateWallMesh()
    {

        MeshCollider currentCollider = GetComponent<MeshCollider>();
        Destroy(currentCollider);

        CalculateMeshOutlines();

        List<Vector3> wallVertices = new List<Vector3>();
        List<int> wallTriangles = new List<int>();
        Mesh wallMesh = new Mesh();
        //float wallHeight = 5;

        foreach (List<int> outline in outlines)
        {
            for (int i = 0; i < outline.Count - 1; i++)
            {
                int startIndex = wallVertices.Count;
                wallVertices.Add(vertices[outline[i]]); // left
                wallVertices.Add(vertices[outline[i + 1]]); // right
                wallVertices.Add(vertices[outline[i]] - Vector3.up * wallHeight); // bottom left
                wallVertices.Add(vertices[outline[i + 1]] - Vector3.up * wallHeight); // bottom right

                wallTriangles.Add(startIndex + 0);
                wallTriangles.Add(startIndex + 2);
                wallTriangles.Add(startIndex + 3);

                wallTriangles.Add(startIndex + 3);
                wallTriangles.Add(startIndex + 1);
                wallTriangles.Add(startIndex + 0);

            }
        }

        wallMesh.vertices = wallVertices.ToArray();
        wallMesh.triangles = wallTriangles.ToArray();
        wallMesh.RecalculateNormals();
        walls.mesh = wallMesh;

        MeshCollider wallCollider = gameObject.AddComponent<MeshCollider>();
        wallCollider.sharedMesh = wallMesh;
    }
 

Для текстур нужны UV координаты, которые в этом меше не установлены.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Не текстурируются сгенерированные стены

Сообщение Devane1488 17 июн 2019, 12:37

[/syntax][/quote]
Для текстур нужны UV координаты, которые в этом меше не установлены.[/quote]
Вы можете подсказать как их задать?
Devane1488
UNец
 
Сообщения: 12
Зарегистрирован: 21 мар 2019, 20:47

Re: Не текстурируются сгенерированные стены

Сообщение AngryCat 17 июн 2019, 14:34

Devane1488 писал(а):Для текстур нужны UV координаты, которые в этом меше не установлены.
Вы можете подсказать как их задать?

Можно в программе для 3D моделирования, но я предпочитаю UV Layout =)
Здесь могла бы быть ваша реклама.
Аватара пользователя
AngryCat
Старожил
 
Сообщения: 716
Зарегистрирован: 20 июл 2018, 22:29
Skype: Дискорд - Флеш#4099

Re: Не текстурируются сгенерированные стены

Сообщение Devane1488 17 июн 2019, 16:54

AngryCat писал(а):
Devane1488 писал(а):Для текстур нужны UV координаты, которые в этом меше не установлены.
Вы можете подсказать как их задать?

Можно в программе для 3D моделирования, но я предпочитаю UV Layout =)

но мои меши генерируются процедурно
Devane1488
UNец
 
Сообщения: 12
Зарегистрирован: 21 мар 2019, 20:47

Re: Не текстурируются сгенерированные стены

Сообщение waruiyume 17 июн 2019, 17:05

По нормали треугольника выбрать одну из трёх плоскостей
Скопировать мировые координаты из двух компонентов позиции
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Не текстурируются сгенерированные стены

Сообщение Devane1488 17 июн 2019, 17:06

waruiyume писал(а):По нормали треугольника выбрать одну из трёх плоскостей
Скопировать мировые координаты из двух компонентов позиции

как это реализовать в виде кода ?
Devane1488
UNец
 
Сообщения: 12
Зарегистрирован: 21 мар 2019, 20:47


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2