Информация об изменениях

Сообщение Re[3]: Алгоритм определения координаты точки в mesh от 13.10.2019 9:07

Изменено 13.10.2019 11:41 ylem

Re[3]: Алгоритм определения координаты точки в mesh
DD>Да, вазы разные бывают, и даже в виде пивного бокала. Вариант с наливанием жидкости сложен, во первых для него времени нужно много, да и нужно будет проводить предварительную обработку точек для физического движка.

Движек и имулирование настоящего наливание не нужены. Нужно просто оценить объем. Для этого хватит построить "призмы" из фейсов вдоль предполагаемой оси. Строить до плоскости горлышка или до пересечения с плоскотью вазы.
Если у ваших ваз нет дырок в боку, то горлышко можно искать сверху. Если есть -- снизу.

UPD: походу, строить призмы и пускать лучи не нужно. Должно сработать опускать/поднимать горизонтальную (для текущего проверямого направления оси) плоскость, пока на ней есть замкнутая линия (внутренняя поверхность, в мем детстве была "ваза", где их будет несколько) внутри другой замкнутой линии (внешняя поверхность). Потом по этим срезам посчитать объем.
Если нормали гарантированно направлены наружу (не в материал вазы), можно обойтись и без двух линий.

Если у вас есть библиотека (надеюсь, что есть) которая умеет 1. построить выпуклую оболочку и 2. генерализовать поверхность (лучше пошагово), можно попробовать найти плоскости верха и низа. Но даже в этом случае придется научиться оценивать, где низ, а где верх: представье неглубокую пиалу с очень впуклым внурь дном.
И это, очевидно, не сработает с вазой, к которой есть плоские грани.

А еще, на всякий, стоит выяснить, точно ли ваши вазы -- сосуды. Если нет то все надо делать как-то совсем подругому, и тут идея с "самокомпенсирующимися" нормалями уже не кажется тупиком
http://ideas.vdolevke.ru/i/photos/full/jn755zU83XP3Z6j0T4OH.jpg
Re[3]: Алгоритм определения координаты точки в mesh
DD>Да, вазы разные бывают, и даже в виде пивного бокала. Вариант с наливанием жидкости сложен, во первых для него времени нужно много, да и нужно будет проводить предварительную обработку точек для физического движка.

Движек и имулирование настоящего наливание не нужены. Нужно просто оценить объем. Для этого хватит построить "призмы" из фейсов вдоль предполагаемой оси. Строить до плоскости горлышка или до пересечения с плоскотью вазы.
Если у ваших ваз нет дырок в боку, то горлышко можно искать сверху. Если есть -- снизу.

UPD: походу, строить призмы и пускать лучи не нужно. Должно сработать опускать/поднимать горизонтальную (для текущего проверямого направления оси) плоскость, пока на ней есть замкнутая линия (внутренняя поверхность, в моем детстве была "ваза", где их будет несколько) внутри другой замкнутой линии (внешняя поверхность). Пупутно по этим срезам посчитать объем.
Если нормали гарантированно направлены наружу (не в материал вазы), можно обойтись и без двух линий.

https://i0.wp.com/meowlogy.com/wp-content/uploads/2017/04/Terrarium-Decoration-Ideas-17.jpg?w=570&ssl=1
Если бывают и такие "вазы", то для них, видимо, придется усложнять перебор направлений. Типа, учитывать устойчивое и неутойчивое равновесие.

Если у вас есть библиотека (надеюсь, что есть) которая умеет 1. построить выпуклую оболочку и 2. генерализовать поверхность (лучше пошагово), можно попробовать найти плоскости верха и низа. Но даже в этом случае придется научиться оценивать, где низ, а где верх: представье неглубокую пиалу с очень впуклым внурь дном.
И это, очевидно, не сработает с вазой, к которой есть плоские грани.


А еще, на всякий, стоит выяснить, точно ли ваши вазы -- сосуды. Если нет то все надо делать как-то совсем подругому, и тут идея с "самокомпенсирующимися" нормалями уже не кажется тупиком
http://ideas.vdolevke.ru/i/photos/full/jn755zU83XP3Z6j0T4OH.jpg