Процедурная генерация меша в юнити. Часть 1

preview_player
Показать описание
Как сгенерировать собственный меш? Что такое вершины, полигоны, uv и нормали? Как использовать тангенсы с картами нормалей? В этом видео мы будем во всем этом разбираться.

#unity #meshgeneration #вершины #нормаль
Рекомендации по теме
Комментарии
Автор

Если ваш мэш блестит - то добавьте строчку mesh.RecalculateNormals(); на видео она есть, но я делал не по видео и долго не мог понять, что с моим материалом

Mnticore
Автор

лайк за трек unreal tournament 99 на фоне

mr.croller
Автор

Зачет! Именно по этому видео нашел канал. Интересная идея для видео, это рисование по текстуре на 3д объекте, уборка территории(собирать лужи тряпкой или ездить на уборочной машине, или шлифовать паркет), следы от шин на асфальте и прочее.

paviga
Автор

Очень нравится ваша подача информации. Ничего лишнего. Все понятно. Год назад реализовал алгоритм marching cubes на unity. Добавил возможность деформации поверхности, но не добавлял оптимизацию октодеревом, т.к студент, а сдавать курсовую нужно было =) Было бы интересно увидеть вашу реализацию октодерева (но квадратного) например для алгоритма марширующих квадратов.

ЕгорДемьяненко-що
Автор

Воу, отличные уроки! подписка, и монтаж приятный, и голос не бесящий)
Буду рад если снимите урок по создания DLC для свои игр)

firerun
Автор

Для 1й, 4й и 5й вершины видимо ошибка в индексах +1 и + 2 это вершины на строчку выше, но смещенные на одну в право. Не квадрат.
А вообще вот:
var ti = 0;
for (var z = 0; z < SizeZ - 1; z++)
{
for (var x = 0; x < SizeX - 1; x++)
{
var first = z * SizeX + x;
triangles[ti + 0] = first;
triangles[ti + 1] = triangles[ti + 4] = first + SizeX;
triangles[ti + 2] = triangles[ti + 3] = first + 1;
triangles[ti + 5] = first + SizeX + 1;

ti += 6;
}
}

DmitryTimofeev_general
Автор

Ты очень крутой! Круто когда делают туторы по сложным темам которые никто не объянит нормально! А ты ещё на русском!

necho
Автор

Почему, если задать размерность _xSize или _ySize более 250 происходят ошибки в генерации?

azbuka
Автор

Здравствуйте) как сделать UV коориднату так, чтобы текстура у цилиндра была зациклена? у меня цилиндр состоит из 6 квадов. Координата по Х находится по 1f / 6 * номер вершины. Но выходит так, что одна и таже вершина должна хранить координаты начала текстуры и хранить координаты конца текстуры.. Как такое сделать? Ничего кроме как создать дополнительные вершины в голову не лезет.. а создам дополнительные вершины, то слетит сглаживание
UPD: Решил добавлением 7й вершины поверх первой.. грань жесткой не стала и сглаживание на месте

rayankrimmer
Автор

Unity 17.4.4 e у меня onDrawGizmos() не вызывается вообще. скрипт висит на пустышке. всё работает кроме этого метода. в чем может быть проблема?

MoronicSoul
Автор

Слушай а как таким же образом генерировать тела вращения, например трубы

ESTERA
Автор

плоскость фигня, больше куб интересует, там больше uv чем вершин

Абвгд-мю
Автор

Для определения касательного пространства нужно как минимум 2 вектора. Обычно это нормаль и тангент. Бинормаль вычисляется уже в шейдере и строится уже касательное пространство. Правильный тангент из UV-координат нужно считать.

slavalopalo
Автор

Это точно для новичков? Я так думаю это для уже начавших обучение, я некоторых слов не понимаю вообще.

_justadam_
Автор

объясните пожалуйста
triangles [0] = _xSize + 1
зачем добавлять _xSize?

olegkulbits
Автор

Почему номер элемента в массиве Int указывается с нуля?

NickProkhorenko
Автор

Спасибо! Интересно, но как то очень по верхам.

konstantinbondarenko
Автор

Очень интересно! Но не понятно, где это можно применять? Я увидел лишь как делать отрисовку этого самого меша. Какая в этом практическая польза?

sallttwo
Автор

Отличный канал, жаль, что нашел его только сегодня
Вопрос к автору, вы, часом, не знаете про catlikecoding?

СтасЧернов-жб
Автор

Будде так любезны по медленнее, я записываю!

igorboyko