Render.ru

Задавайте вопросы по Houdini!

Симфо

Пользователь сайта
Рейтинг
2
Сорь, торможу я :) Можно же просто стереть копию кнопкой delete :) Пора отдохнуть
 
Всем привет! Возникла така задачка, измерить объём объекта. Measure измерят и выводит в детеилз объёмы всех примитивов, а я хочу чтоб возвращалось одно общее значение, ну и чтоб в атрибут помещалось. Пока в vop копался, но ничё дельного не накрутил. Может через питон, через math проще?
 

sanchoflat

Активный участник
Рейтинг
11
можно попробовать суммировать все объемы по отдельности и заихнуть в detail например
 
Немного опечатался, measure выдаёт не сам объём а координаты. А каждого полигона он выдаёт площади. Хотя бы для начала сделать с площадью. Как мне представляется в вопе нужно просто посчитать сумму всех площадей полигонов через цикл и вывести в атрибут. Буду пробовать
 

виталий антоновас

Модератор форума
Команда форума
Рейтинг
329
выдержка из хелпа

This volume is signed and can be summed with those of other polygons to get the actual volume of a 3D object. This summation can be done with an Attribute Promote SOP.

Дословный перевод:

Этот объем (данного полигона)будет выписан и может быть суммирован с другими полигонами, чтобы получить фактический объем 3D-объекта. Это суммирование можно сделать с помощью Attribute Promote SOP
 

sanchoflat

Активный участник
Рейтинг
11
Хотел бы уточнить. В принципе понимаю, но все же.
Vop sop ну или любой другой - берет конкретную точку и производит операции с ней. А вот point cloud и все возможные операции аля iterate,close export.... - импортирует сразу все облако ( pc open ) и смотрит на атрибуты точек в сумме или как?
 

Vindichi

Активный участник
Рейтинг
5
Point Cloud в гудини это просто имплементация алгоритмов поиска ближайших соседей по типу kd-trees или R-trees например. Pcopen подгружает облако точек в память в виде особой структуры, результатом опроса которой всегда является handle. Handle это по сути массив индексов найденных точек, причем он отсортирован в порядке возрастания расстояния. PC Itеrate это просто метод итерации handle. То же самое можно сделать и через for loop по индексам, но будет медленнее. PC Close удаляет handle из памяти, потому что для следующей точки нужен уже другой handle. В принципе, VEX сам подчищает это дело, но после Iterate бывает не удаляет handle и тогда забивается память. Стоит заметить что pc filter возвращает не просто среднее арифметическое значение найденного атрибута, а дистанционно зависимый результат. То есть более близкие точки "весят" больше. Для средне арифметического используйте pc import.

P.S. pc open может грузить облако точек не целиком. Иногда очень полезно когда памяти не хватает. Хотя поиск в этом случае медленее...
 

sanchoflat

Активный участник
Рейтинг
11
Спасибо большое, вроде стало по-понятнее, осталось на практике закрепить))

Еще правда вопрос - volume .... - он так же берет volume на входе и точку ( точки ) и проделывает вычисления уже на основании вольюма и точек?
 

Vindichi

Активный участник
Рейтинг
5
Спасибо большое, вроде стало по-понятнее, осталось на практике закрепить))

Еще правда вопрос - volume .... - он так же берет volume на входе и точку ( точки ) и проделывает вычисления уже на основании вольюма и точек?

Не очень понял вопрос. Ты имел в виду, что перебирает в своем цикле volume Vop если не точки?
 

sanchoflat

Активный участник
Рейтинг
11
выразился скорее некорректно. Вот к примеру как я понял volume sample возвращает точки, которые лежат внутри вольюма, а что делают на таком языке ( возвращает тото, в зависимости от того-то), но есть еще всякие volume position, index,gredient......
 

Vindichi

Активный участник
Рейтинг
5
Volume Sample принимает на вход позицию в пространстве а выдает значение вокселя в этой позиции или -1 (по моему), если вокселя там нет. Volume index to position и обратно выдает номер вокселя по позиции или наоборот. А вот Gradient это интересная штука. Если обьем имеет SDF тип, то в нем записаны ближайшие расстояния до поверхности с которой он сгенерирован. Gradient принимает на вход позицию в пространстве и возвращает на основе SDF значений кратчайший вектор до поверхности. Получается что то навроде нормалей только для volume. Это очень полезно, потому что на основе таких нормалей можно дисплейсить volume через CVEX прямо во время рендера. То есть можно получить очень большую детализацию из обьемов в очень низкими разрешениями. Так делают облака в гудини...
 

Максим Поверинов

Пользователь сайта
Рейтинг
2
Скажите, кто может помочь? Подсказать некоторые моменты. В сети практически ничего нет на эту тему. Пару ригов собаки есть, и все. Не хотелось бы все это делать в другой программе. Спасибо.
 

berkut_

Активный участник
Рейтинг
14
Скажите пожалуйста, почему при попытке экструдировать полик, ось polyextrude добавляется с повернутой осью? ума не приложу(((
 

Вложения

Сверху