[SESI logo]

VEX Language Reference - Version 7.0

Side Effects Software Inc. 2004

Changes since Houdini 4.0

  • General Changes
  • Shading Context Changes
  • OP Context Changes

  • General Changes

  • It is now possible to write "plug-in" VEX functions. Please see $HFS/houdini/vex/dso for more information.

  • It is now possible to assign strings in VEX code. There are new operators and functions to deal with strings.
  • int strlen(string)
    Computes the length of a string.
  • int match(pattern, subject)
    Returns 1 if the subject matches the pattern specified. The standard Houdini pattern matching is used.
  • string sprintf(string format, ...)
    Formatted string generation similar to printf.
  • string concat(string s1, string s2, ...)
    Concatenate the string arguments to form a new string.
  • Strings may be added together to form a new string.
  • There are new spline evaluation functions which allow non-uniform spacing of keys: lkspline() and ckspline()

  • Texture/Color Map evaluation now takes variadic arguments. Additional arguments can be specified to control wrapping of textures, filtering etc. Many options are also valid for the cinput()/finput() functions in COPs.

  • There are now set()/assign() functions for matrices.

  • The printf() function has been improved and includes width specification.

  • There is an additional form of the atan() function which takes two arguments. This is identical to the atan2() function.


  • Shading Context Changes

  • There is a new function filterstep() in the shading contexts.

  • In the shading contexts, there are new functions to query the ray-tree. Please see documentation for getraylevel() and getrayweight().

  • There is a new function available for surface shaders to determine whether the shader is being evaluated for shadow opacity (vs. being evaluated for surface color). Please see documentation for isshadowray().

  • The angles specified in illuminance() constructs are now interpreted correctly.


  • OP Context Changes

  • The npoints() function is new for the SOP context.

  • The getbbox() function is new for the SOP/POP context.

  • The import() function in SOPs has been extended to take an optional point number. If the point number is not specified, then the function behaves as before (i.e. the value for the current point number is retrieved).

  • A new function (optransform()) can be used to evaluate the transform associated with an object in the OP contexts.

  • In the CHOP context, there are new functions to query units, and channel start and end times:
  • float chstartf(int) - Get channel start frame
  • float chendf(int) - Get channel end frame
  • int isframes()
  • int isseconds()
  • int issamples()


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