appendixA.html, appendixF.html, index.html, section01.html, section02.html, section03.html, section04.html, section05.html, section06.html, section07.html, section08.html, section09.html, section10.html, section11.html, section12.html, section13.html, section14.html, section15.html, section16.html
RenderDrive does not convert image files into texture map files, neither does it allow image file names to be used directly in shading language texture calls. Calling one of the texture map utility functions does not invoke any external programme. Instead an internal mapping is created between the unique token "texturename" and the image file specified by "picturename".
In this way several different textures may be declared referring to the same image, each with a different wrap mode and filter characteristics. (N.B. that at present only RiMakeTexture and RiMakeLatLongEnvironment are supported, and the filter parameters in fact have no effect). Referring to a picture instead of a texture in a shader parameter list will result in an error, and one of the texture map utility functions must be called for each texture used in the scene.
In addition to the three standard wrap modes, RI_MIRROR is provided. This works in a similar way to RI_PERIODIC, however adjacent wraps are mirror-images of each other.
The standard image file formats that are understood by RenderDrive are TIFF, JPEG, Targa, RLA and PNG.
In all cases, the parameter texturename is restricted to 31 characters.
RiMakeTexture( picturename, texturename, swrap, twrap,
filterfunc, swidth, twidth, parameterlist )
char *picturename;
char *texturename;
RtToken swrap, twrap;
RtFloatFunc filterfunc;
RtFloat swidth, twidth;
OK, except that swidth, twidth and filterfunc are ignored.
When presented with a non-square texture, our behaviour differs from PRMan's (although it is similar to BMRT): we treat it as having texture co-ordinates [0,1]x[0,1], and hence stretch it, whereas PRMan either wraps the short axis, or fills it in with black depending on the setting of swrap or twrap.
PRMan also includes some sort of background recognition - it will set solid areas of color to black in some circumstances. We do not have any such behaviour
RiMakeBump( picturename, texturename, swrap, twrap,
filterfunc, swidth, twidth, parameterlist )
char *picturename;
char *texturename;
RtToken swrap, twrap;
RtFloatFunc filterfunc;
RtFloat swidth, twidth;
Not supported.
RiMakeLatLongEnvironment( picturename, texturename,
filterfunc, swidth, twidth, parameterlist );
char *picturename:
char *texturename:
RtFloatFunc filterfunc;
RtFloat swidth, twidth
OK, except that swidth, twidth and filterfunc are ignored.
RiMakeCubeFaceEnvironment( px, nx, py, ny, pz, nz, texturename, fov,
filterfunc, swidth, twidth, parameterlist );
char *px, *nx, *py, *ny, *pz, *nz;
char *texturefile;
RtFloat fov;
RtFloatFunc filterfunc;
RtFloat swidth, twidth;
Not supported.
RiMakeShadow( picturename, texturename, parameterlist )
char *picturename;
char *texturename;
Not supported.
RiErrorHandler( handler )
RtFunc handler;
OK.
RiArchiveRecord( type, format [, arg ...] )
RtToken type;
char *format;
OK.
RiReadArchive( filename, callbackfunc, parameterlist )
RtToken filename;
RtVoid *callback;
Inserts RIB from an archive file into the stream. Only works from RIB (ReadArchive "filename"), as the insertion is performed by the RIB-parsing library The C - binding RiReadArchive form is not supported.
Although these calls will work recursively, filename will always be interpreted relative to the directory of the parsing library.
Last modified: Wed Mar 22 13:38:59 GMT 2000