[SESI logo]

VEX Language Reference - Version 6.5

Side Effects Software Inc. 2003

VEX Language Reference

  • Changes since Houdini 6.1

  • Compiler and Language Information
  • The RunTime Function Library
  • Context Specific Information
  • Shading Contexts
  • Example Source Code
  • Function Quick Reference

  • With Houdini4.0 and above, there is a new high-performance expression language (VEX) which can be used in many places in the product. Expression evaluation is typically very efficient giving perfomance close to compiled C/C++ code. VEX was not designed as a replacement to the existing Houdini Expression Language, but rather an smaller, more efficient general purpose language.

    Because of its nature, VEX is only available in several select places in the Houdini package. These are currently:

  • COPs - The VEX Cop allows you to write complex custom COPs without writing any C/C++ code. The expressions evaluate very close to C/C++ speeds and run 1000's of times faster than the Pixel Expression COP.
  • POPs - The VEX Pop allows you to do almost anything that POPs can do themselves. It is possible to write one single VEX function which performs the task of many POPs. Because the VEX code is localized to one single operator, the VEX code will typically run faster than a network of POPs.
  • SOPs - VEX allows you to write any SOP which manipulates point attributes. This can move points around, adjust velocities, change colors. As well, you can group points or do many other useful tasks. VEX SOPs typically run 10 or more times faster than a point SOP.
  • CHOPs - VEX allows you to custom CHOPs. The CHOP functions can manipulate arbitrary numbers of input channels and process channel data in arbitrary ways. In some cases, the VEX code can run faster that compiled C++ code.
  • Rendering - The new renderer vmantra uses VEX for all shading computation. This includes light, surface, displacement and atmosphere shaders.


  • Copyright © 1999-2003 Side Effects Software Inc.
    477 Richmond Street West, Toronto, Ontario, Canada M5V 3E7