| home | << prev | next >> | contents |
This section only describes the representation of phenomena in the .mi language. The declaration of a phenomenon is very similar to the declaration of a shader, except that the keyword shader is replaced with phenomenon, and the addition of new optional statements in the declaration block:
| declare phenomenon | |||
| [ type] " phenomenon_name " ( | |||
| type " parameter_name ", | |||
| type " parameter_name ", | |||
| ... | |||
| type " parameter_name " | |||
| ) | |||
| [ version versionint ] | |||
| [ shader " name " ... | |||
| [ material " name " ... end material | |||
| [ light " name " ... end light | |||
| [ instance " name " ... end instance | |||
| [ roots ] | |||
| [ options ] | |||
| end declare |
For a description of version, shader, material, light, and instance definitions, see the corresponding section above; the syntax is identical to the one described there. The order of shaders, materials, lights, and instances is arbitrary, as long as a name is not used before it was defined. The options are identical to the options described in the shader declaration section above. The roots are described below.
The phenomenon phenomenon_name declared with this statement is available for the definition of shaders just like a shader declared with a declare shader statement. Named and anonymous shader definitions can be derived from either type of declaration. Phenomena were designed to extend the concept of shaders, not to replace it.
| home | << prev | next >> | contents |