These are highlights of major changes since the
4.1 release of houdini.
General Changes
Shading Context Changes
Derivative computation has been improved. There are now
optional
arguments on most functions which use derivatives to
control the computation of derivatives.
The extrapolation option also applies to the cinput()
functions in the COP/COP2 contexts.
The texture mapping code now takes an optional argument
(lerp) which can help to remove discontinuities when
different MIP levels of .rat files are accessed. Textures may
be slightly softer with this option turned on and render times
may increase. However, this should remove discontinuities or
visible jumps in texture mapping. Please see the filter options for
further information.
In the light and shadow contexts, there is a new function to
query whether the lighting computation is being used for shading
fog or surfaces. This allows users to optimize
lighting/shadow shading when ray-marching through fog.
Please see documentation for isfogray().
There are new functions in the shading contexts to query the
transform spaces of other objects. otransform(),
ltransform(), ftransform() allow access to the
world space transforms of geometry, light or fog objects.
There's a new function getlightname() which returns
the name of the current light inside illuminance loops. The
function will return an empty string outside of illuminance
loops.
There's a new function getobjectname() which returns
the name of the current light, geometry or fog object which
is being shaded.
There are new functions to perform ray-intersection tests.
The rayhittest function will send a ray and return the
distance to the first intersection. Optionally, it can also
return the position and surface normal of the surface
intersected.
All ray-tracing functions now take optional arguments which
can specify the scope of objects to perform intersection tests
against. These functions are:
reflectlight
refractlight
trace
fastshadow
filtershadow
rayhittest
All illumination functions now take optional arguments which
can specify the light mask of illuminating lights. The
illumination functions affected are:
The illuminance() loop
ambient()
blinn()
diffuse()
phong()
specular()
In the light/shadow contexts, the L variable is now correctly
initialized for Houdini lights with orthographic projections.
Please see here for
further information.
OP Context Changes
It is now possible to create arbitrarily named attributes in
Sop and Pop contexts using the addattribute()
function.
There is a new VEX context "cop2" to generate VEX code for
the new compositor.