VEX обычно очень эффективно исполняется, обеспечивая производительность, близкую к скомпилированному C / C ++ коду. VEX не является альтернативой скриптам, а скорее меньшим, более эффективным языком общего назначения для написания шейдеров и пользовательских нод.
VEX основан на языке C, но заимствует идеи как из C++, так и RenderMan shading language .
Места, в которых используется VEX в Houdini:
-
Рендеринг – Mantra использует VEX для всех шейдинг вычислений. Включая light, surface, displacement и fog шейдеры.
-
Композитинг – VEX Generator и VEX Filter COPs позволяют создавать сложные пользовательские COPs на VEX. Выражения очень близки к скоростям C/C++ и работают в 1000 раз быстрее, чем Pixel Expression COP.
-
Частицы – POP VOP позволяет делать почти все, что POPs могут делать сами. Возможно написать одну VEX функцию, которая выполнит задачу нескольких POPs. Так как VEX код находится в одном операторе, он, как правило, выполняется быстрее сети POPs.
-
Моделирование – VEX SOP позволяет написать пользовательскую ноду для контекста поверхностей, которая управляет атрибутами геометрии и других SOPs. Управление атрибутами позволяет перемещать точки, регулировать скорости, изменять цвета. Кроме того, можно работать с группами и делать множество других полезных задач. VEX SOPs обычно работают в 10 и более раз быстрее, чем Point SOP.
-
CHOPs – VEX CHOP позволяет настраивать CHOPs. CHOP функции могут манипулировать произвольным количеством входных каналов и данных и обрабатывать данные канала произвольными способами. В некоторых случаях код VEX может работать быстрее, чем скомпилированный код на C++.
-
Волосы и Шерсть – Процедурное поведение шерсти реализовано на VEX.
Subtopics
Язык
-
Сведения о синтаксисе VEX, типах данных и т.д.
-
Overview of how to use the VEX language compiler vcc and its pre-processor and pragma statements.
Следующие шаги
-
Работа с группами геометрии в VEX
Вы можете читать содержимое групп примитивов/точек/вершин в VEX, как будто это атрибуты.
-
Примеры и советы по программированию на VEX.
-
VEX имеет функции для работы с ребрами каждого полигона как с отдельными "полуребрами".
-
Использование утверждений в VEX
You can use the assert() macro to print information while you are debugging VEX code.
Справочная информация
-
Guide to the different contexts in which you can write VEX programs.