[SESI logo]

VEX Language Reference - Version 7.0

Side Effects Software Inc. 2004

Changes since Houdini 6.1

These are highlights of major changes since the 6.1 release of houdini.

  • Function Additions/Modifications
  • Custom VEX Ops
  • Compiler

  • Function Additions/Modifications

  • The shading contexts now have a function to query some information about the render state. Please see help for the renderstate() function.

  • The addattribute() function now takes additional arguments to specify type qualifiers for the attribute.

  • There are now functions which compute the BRDFs for the different lighting models. These can be used in illuminance loops to replicate the same lighting as the specular(), blinn(), phong(), etc. functions.
  • float specularBRDF(vector L, N, V; float rough)
  • float phongBRDF(vector L, N, V; float rough)
  • float blinnBRDF(vector L, N, V; float rough)
  • float diffuseBRDF(vector L, N, V; float rough)
  • float diffuseBRDF(vector L, N)
  • The last (diffuseBRDF) is equivalent to dot(L, N)

  • There are new functions to deal with Point Cloud Textures.

  • The shimport() function can now be used to import values from the shadow shader for surface and fog shaders.

  • There are new versions of the maketransform functions similar to the lookat functions, but with slightly different symantics.


  • Custom VEX OPs

  • The optimization levels in specified in the custom VEX Ops (i.e. VEX plug-ins) have changed slightly. The new meanings of the optimization levels are:
  • VEX_OPTIMIZE_0
    The plug-in function will never be optimized out by the run-time optimizer. This allows users to write functions like printf() which don't have any actual bearing in the results of the VEX execution, but shouldn't be optimized out.
  • VEX_OPTIMIZE_1
    Minimal optimization is performed. If the results of the computation performed by the plug-in function aren't used, then the function will be optimized out. However, the optimizer assumes that the result of the plug-in function is not solely dependent on the inputs to the function.
  • VEX_OPTIMIZE_2
    Full optimization. The optimizer will attempt to minimize the number of calls to the plug-in in order to produce more efficient run-time code.
  • The constructor for plug-in's has changed to allow for hints to be passed to the compiler about signature construction. When a function modifies more than 1 argument, it is now possible to force the first argument to be a return code rather than having a void type as the return code. Please see the header file (VEX_VexOp.h) for more details.

  • Compiler

  • There is a new #pragma to define arbitrary tags for a parameter. This new #pragma is explained in the compiler reference.
  • #pragma hint param invisible
    This new pragma hint type will create the new parameter but remain invisible from the user interface.

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