Категория ЧаВо: VEX

VS Code для VEX

Чтобы удобно редактировать VEX-код в Visual Studio Code вам нужно будет поставить два расширения. Идите в пункт меню Extensions, сделайте поиск по фразе VEX и установите расширения VEX (Houdini Vex Support for VSCode), а также Houdini Vex Help. После этого vfl-файлы будут показываться с правильным синтаксисом. Кроме того, когда курсор находится над ключевым словом, то…
Read more

Внешний редактор для Vex

Чтобы открывать Векс-код из врангла в более удобном редакторе, щелкните правой кнопкой мыши по полю ввода кода и выберите Expression — Edit in external editor. Если вы до этого не устанавливали внешний редактор, нажмите Yes в появившемся окошке, после чего откроется окно выбора исполняемого файла вашего любимого редактора. Код из врангла сохраняется во временный файл,…
Read more

Как сделать интерполяцию?

Если у вас есть линейный и скучный рост какого-то параметра от нуля до одного, анимацию можно улучшить с помощью разных методов интерполяции. Вот вам шпаргалка.

Как создать Struct?

Struct — это структура данных, которая позволяет использовать инкапсуляцию, пусть и в ограниченном виде. Struct необходимо создавать во внешнем файле, а не в самом Врангле. Создайте внешний файл так, как это описано в этом вопросе: http://hipnc.club/ufaqs/custom-functions/ Struct может содержать как поля, так и методы (если пользоваться терминологией ООП). После этого во Врангле делаем #include с…
Read more

Как сохранить свои функции?

Создайте файл с расширением .h, например myvex.h. Этот файл необходимо поместить в папку, которая указана в переменной окружения HOUDINI_VEX_PATH или же в папку ДОКУМЕНТЫ/HoudiniXX.XX/vex/include. После этого вы сможете обращаться к указанным в этом файле функциям, добавив в начало кода во Врангле строку #include «myvex.h» Если же вам нужно передать проект кому-то другому и у вас…
Read more

Можно ли в Вексе прочитать список доступных атрибутов?

Допустим, вы не знаете точно названия атрибутов на геометрии. Как получить список их имен, чтобы выбрать нужный? Для этого существуют следующие интринсики на уровне детали: pointattributes, primitiveattributes, vertexattributes и detailattributes. Их можно прочитать в строковые массивы и уже дальше работать с ними, как с обычными строками. Например, можно сделать поиск по какому-то условию через re_find,…
Read more

Как получить одну из компонент вектора при чтении его через функции типа point()?

Поскольку функции point(), prim(), detail() и им подобные могут возвращать разные типы данных, то просто написать f@attr = point(1, «P», @ptnum).x; не получится, Врангл выдаст ошибку Ambiguous call to function… Чтобы подобная записать сработала, необходимо сказать Вексу, что мы читаем именно вектор. Это можно сделать двумя путями: создать векторную переменную и читать значение позиции в…
Read more

Как в SOP двигать точку по кривой?

В ноде Carve есть режим Extract — Extract Point(s). В нем от кривой останется одна или две точки (при включенном параметре Second U). Если нужно решение в вексе, то здесь понадобится функция Primuv.

Как преобразовать число в строку?

Если речь про целое число, то существует функция itoa(number), которая из числа типа 125 возвращает строку «125». Эта функция часто используется для работы с атрибутом name, мультипармами или инстансами. Если же нам нужно перевести в строку флоат или как-то отформатировать результат, то необходимо использовать функцию sprintf(). В ней задается произвольная строка, в которой встречаются служебные…
Read more

Может ли пользовательская функция возвращать массив?

Чтобы функция возвращала массив, нужно при ее объявлении использовать слово function, в противном случае выпадет ошибка.