Комментарии 10
Сам недавно столкнулся с похожей проблемой, и реализовал свой MeshEditor, но у меня треугольник хранит в себе по три вершины, вместо Ваших трех сторон, почему именно хранить стороны, а не вершины?
-1
Для реализации некоторых алгоритмов проще работать именно с ребрами как отдельными сущностями, а не с парами вершин. Примеры сможете посмотреть в следующих статьях данного цикла. Из тех же соображений удобства в коде Triangle у нас также есть properties для прямого доступа к вершинам.
0
> Из тех же соображений удобства в коде Triangle у нас также есть properties для прямого доступа к вершинам.
На последней схеме не заметил что бы был прямой доступ к вершинам, из под триангла.
> Примеры сможете посмотреть в следующих статьях данного цикла.
Тогда буду с нетерпением ждать следующей статьи :)
На последней схеме не заметил что бы был прямой доступ к вершинам, из под триангла.
> Примеры сможете посмотреть в следующих статьях данного цикла.
Тогда буду с нетерпением ждать следующей статьи :)
0
vertices = Mesh.vertices;
Данные из меша можно получать через Mesh.GetVertexes( list ) тогда аллокаций не будет, если лист достаточной длины.
Данные из меша можно получать через Mesh.GetVertexes( list ) тогда аллокаций не будет, если лист достаточной длины.
+1
Да, верно подмечено. Однако этот метод больше полезен, судя по всему, для обработки множества мешей подряд, используя один и тот же список. С точки зрения времени выполнения все равно лучше кешировать, если хватает памяти. Кроме того, мы используем PLINQ для параллельного выполнения некоторых операций по обработке геометрии, а LINQ более лоялен по производительности к Array, нежели к List (https://jacksondunstan.com/articles/3165). Еще Mesh.GetVertexes также обращается к ядру движка, чего мы по возможности избегали в собственной реализации.
0
А подскажите, уважаемые, не допилен-ли Unity за последний год до пригодности создания на нём простейших игрушек 3D паззлов? Уровня примерно такого:
![image](https://habrastorage.org/r/w780q1/getpro/habr/comment_images/538/036/d81/538036d81f66a7cb22e551c644cf3a3d.jpg)
![image](https://habrastorage.org/r/w780q1/getpro/habr/comment_images/8fc/4d6/f72/8fc4d6f72538c871a2d79681b50a6ba2.jpg)
Ранее точность детектора коллизий для таких сложных фигур была вопиюще неприемлемой.
Уж не говоря об отсутствии возможности сделать в меше несколько необходимых вырезов.
![image](https://habrastorage.org/getpro/habr/comment_images/538/036/d81/538036d81f66a7cb22e551c644cf3a3d.jpg)
![image](https://habrastorage.org/getpro/habr/comment_images/8fc/4d6/f72/8fc4d6f72538c871a2d79681b50a6ba2.jpg)
Ранее точность детектора коллизий для таких сложных фигур была вопиюще неприемлемой.
Уж не говоря об отсутствии возможности сделать в меше несколько необходимых вырезов.
0
Вычисления коллизий невыпуклых фигур — довольно трудоемкая задача.
Для расчетов физики 3D-объектов Unity использует PhysX от NVIDIA. В 2018.3 как раз было обновление с 3.3 до 3.4. По Вашему вопросу советуем смотреть, какие улучшения произошли при смене версии PhysX, а не самого Unity.
Для расчетов физики 3D-объектов Unity использует PhysX от NVIDIA. В 2018.3 как раз было обновление с 3.3 до 3.4. По Вашему вопросу советуем смотреть, какие улучшения произошли при смене версии PhysX, а не самого Unity.
0
Емнип, можно на один геймобжект навесить несколько коллайдеров примитивов, или при использовании rigidbody, в чайлд-объектах несколько коллайдеров. И будет норм работать.
Сам не пробовал, в интернете видел случайно.
Сам не пробовал, в интернете видел случайно.
0
Рассматривал такой вариант. По сумме причин мне не подошло.
Попилить на примитивы пять-семь фигурок еще бы ладно. А когда моделек не один десяток ( или как на заглавной картинке ) — все уже менее весело. Плюс склейка, настройка центров вращения и ещё несколько каких-то мелких ограничений ( сейчас уже точно не помню, на количество вершин что-ли ).
Попилить на примитивы пять-семь фигурок еще бы ладно. А когда моделек не один десяток ( или как на заглавной картинке ) — все уже менее весело. Плюс склейка, настройка центров вращения и ещё несколько каких-то мелких ограничений ( сейчас уже точно не помню, на количество вершин что-ли ).
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Особенности работы с Mesh в Unity