Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: VEX Исполнение кода в каждой точке
Форум .:3DCenter.ru:. > Пакеты 3D моделирования > Houdini
VUX
В VEX только вникаю и не могу спалить один момент.
Ясно что VEX код испольняется для каждой точки (например Wrangle Point SOP) каждый раз.
Но, например в коде перед, непосредственно, добавлением значения точке ( @P += @P1 ) мне нужно узнавать баунды (bbox) объектов со входов и все ето в разветвленнх условиях.
Вопрос: Для каждой точки весь код будет исполнятся каждый раз или есть какието нюансы?
Может лучшее одноразовые операции выносить в spare параметры c обычными гудиньскими выражениями ( bbox(" ... ) ?
По замерам вычисления баундов и чтения всяких каналов не влияет (перед установлением самой точки) не влияют на скорость.
Проясните...
Evgen
Баунды со входов стопудов лучше узнавать экспрешенами, а в вранглере просто собирать значения с параметров
vector bb=chv("bbox");
Это проще, быстрее и удобнее.
VUX
Цитата(Evgen @ 02/02/2014, 14:39) *
Баунды со входов стопудов лучше узнавать экспрешенами, а в вранглере просто собирать значения с параметров
vector bb=chv("bbox");
Это проще, быстрее и удобнее.


А как нащет множественных if-ов со множественными проверками параметров (ch("")) в коде. Сильно оно влияет на скорость? Или тоже лучше в spare-ах вычислять?
На одфорсе говорили что если много spare параметров в wrangle ноде то сорость ниже чем собранный аналогичный VOP-нетворк. huh.gif
VUX
Цитата(Evgen @ 02/02/2014, 14:39) *
vector bb=chv("bbox");

может ветаки все присвоения переменным значений из каналов исполняется только раз на кадр? вот этот момент я не могу уловить )
Evgen
Есть возможность исполнять код один раз. Это очень просто.
Attrib Wrangle -> details
Тогда код исполняется один раз только.
Правда в случае пробега по точкам нужно будет писать цикл внутри. но это очень просто, а главное, контроль полный.
А вообще код во вранглерах исполняется по скорости чуть ли не также как нативный с++
VUX
Цитата
А вообще код во вранглерах исполняется по скорости чуть ли не также как нативный с++


Вот поэтому я решил перевести все опрации (по трансформу пока) на врангл. На тяжелой геометрии скорость поражает
Evgen
Правильное решение.
3-5 строчек кода экономят тонны времени на элементарных задачах
VUX
Цитата(Evgen @ 02/02/2014, 16:40) *
Правильное решение.
3-5 строчек кода экономят тонны времени на элементарных задачах


Получается обычные експешены теряют актуальность для тех кому скорость кука очень важна. Можна ведь в аттриб врангл делать все тоже.
Скорость векса всеравно выше чем у обычных експрешенов.

ПС говорят что настоящие дядьки все через векс делают wink.gif
VUX
Походу выяснилось что обработка поинтов циклом в AttribWrangle SOP (details) быстрее ohmy.gif чем в PointWrangle SOP.
Вот такой код в AttribWrangle SOP работает в ~2 раза быстрее:
Код
for( int i=0; i<npoints(0); i++ )
setpointattrib( 0, "P", i, point(0,"P",i)+{0,1,0} );

чем в PointWrangle SOP:
Код
@P += {0,1,0};

по крайней мере у меня с шариком в 1.8 млн. треугольников.
Как так ?
Evgen
Вполне может быть. не проверял. Мож гляну на досуге
Zipper
Цитата(VUX @ 02/02/2014, 22:07) *
Походу выяснилось что обработка поинтов циклом в AttribWrangle SOP (details) быстрее ohmy.gif чем в PointWrangle SOP.
Вот такой код в AttribWrangle SOP работает в ~2 раза быстрее:
Код
for( int i=0; i<npoints(0); i++ )
setpointattrib( 0, "P", i, point(0,"P",i)+{0,1,0} );

чем в PointWrangle SOP:
Код
@P += {0,1,0};

по крайней мере у меня с шариком в 1.8 млн. треугольников.
Как так ?


А ты как скорость замерял? Субъективно или цифры? MMB на вранглерах врёт, нужно внуть прыгать, смотреть на VOP. happy.gif
А вообще конечно интересный результат, я не делал тестов, хз, может и правда. Но как-то это подозрительно....
VUX
Цитата
MMB на вранглерах врёт, нужно внуть прыгать, смотреть на VOP

не подумал - действительно если измерять изнутри то PointWrangle быстрее smile.gif
VUX
Цитата(VUX @ 02/02/2014, 23:15) *
Цитата
MMB на вранглерах врёт, нужно внуть прыгать, смотреть на VOP

не подумал - действительно если измерять изнутри то PointWrangle быстрее smile.gif


Теперь у меня получается что и Transform нода нифига не медленне чем PointWrangle sad.gif
Zipper
Цитата(VUX @ 02/02/2014, 23:25) *
Цитата(VUX @ 02/02/2014, 23:15) *
Цитата
MMB на вранглерах врёт, нужно внуть прыгать, смотреть на VOP

не подумал - действительно если измерять изнутри то PointWrangle быстрее smile.gif


Теперь у меня получается что и Transform нода нифига не медленне чем PointWrangle sad.gif


biggrin.gif

Я тут тоже недавно удивился.. Раньше чтобы создать аттрибут на миллионе поинтов, делали это в vopsop, ибо attrib create sop был медленный. А теперь он быстрее чем vopsop создает аттрибут. Ну естесственно при условии что без экспрешенов, чисто константа ))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2019 IPS, Inc.