Generates an axis-aligned unit cube with volume 1 centered on the origin.
geometry "mib_geo_cube" ()
There are no parameters.
Generates a polygonal sphere with a given number of U and V subdivisions, centered on the origin. The sphere is subdivided with v_subdiv subdivisions in the Z axis (longitude) and u_subdiv subdivisions in the XY plane (latitude).
geometry "mib_geo_sphere" ( integer "u_subdiv", integer "v_subdiv")
Generates a polygonal cone centered on the Z axis with the apex at Z=0 and the base at Z=-1. The cone has a radius of 1 at the bottom and a height of 1. The cone bottom disc is subdivided into u_subdiv subdivisions, the cone side in v_subdiv subdivisions in the Z axis direction. A parameter controls whether the cone base is capped.
geometry "mib_geo_cone" ( integer "u_subdiv", integer "v_subdiv", boolean "capped")
The shader uses default values for the subdivisions if u_subdiv is less than 3 or v_subdiv is less than 0.
Generates a polygonal cylinder centered on the Z axis with the bottom at Z=-1 and the top at Z=0. The cylinder has a radius of 1 and a height of 1. The two cylinder discs are subdivided in u_subdiv subdivisions, the sides in v_subdiv subdivisions in the Z axis direction. A parameter controls whether the bottom or top is capped.
geometry "mib_geo_cylinder" ( integer "u_subdiv", integer "v_subdiv", boolean "bottom_capped", boolean "top_capped")
The shader uses default values for the subdivisions if u_subdiv is less than 3 or v_subdiv is less than 0.
Generates a polygonal torus lying in the XY plane, centered at the origin. The torus is defined by two circles: the smaller one revolves around the center of the larger circle.
geometry "mib_geo_torus" ( scalar "radius", scalar "thickness", integer "uSpans", integer "vSpans")
If omitted (set to 0), parameters default to the following values: radius 2.0, thickness 1.0, uSpans 32, vSpans 32.
Generates a square with area 1 centered on the origin, with the normal pointing up the positive Z axis.
geometry "mib_geo_square" ()
There are no parameters.
Given one of the geometry shaders above, construct an instance that translates, scales, and rotates the geometry, and return a group with the instance of the source geometry as its only member. If the result was nonzero because the base shader is part of a list, do not create a new group but add the instance to the result group (this is normal geometry shader behavior).
geometry "mib_geo_instance" ( geometry "object", miMatrix "matrix", material "material")
This instance shader is the same as the previous but accepts a material array, which is converted into a material list in the new instance if the array has more than one member. Material lists are useful if the instanced object is tagged, meaning its polygons or surfaces carry integers that index into the material array.
geometry "mib_geo_instance_mlist" ( geometry "object", miMatrix "matrix", array material "material")
This shader returns a copy of the input object, which must be of freeform-surface type. It loops over all faces and adds a Bézier texture surface of degree 1 to each face as the last texture surface. The parameters and control points of the texture surfaces are chosen in such a way that there is an exact mapping of the parametric uv coordinates of the geometric approximation to the texture vertex coordinates, i.e. the texture coordinates of the triangle vertices are the uv coordinates of the triangle vertex positions. The Bézier basis is always added to the copy of the object.
geometry "mib_geo_add_uv_texsurf" ( geometry "object") end declare
Copyright (©) 1986-2008 by mental images GmbH