A
computer graphics system is described in which a new type of entity, referred to as a “phenomenon,” can be created, instantiated and used in rendering an image of a scene. A phenomenon is an encapsulated
shader DAG comprising one or more nodes each comprising a
shader, or an encapsulated set of such DAGs which are interconnected so as to cooperate, which are instantiated and attached to entities in the scene which are created during the scene definition process to define diverse types of features of a scene, including color and textural features of surfaces of objects in the scene, characteristics of volumes and geometries in the scene, features of light sources illuminating the scene, features of simulated cameras will be simulated during rendering, and numerous other features which are useful in rendering. Phenomena selected for use by an operator in connection with a scene may be predefined, or they may be constructed from base
shader nodes by an operator using a phenomenon creator. The phenomenon creator ensures that phenomena are constructed so that the shaders in the DAG or cooperating DAGs can correctly cooperate during rendering of an image of the scene. Prior to being attached to a scene, a phenomenon is instantiated by providing values, or functions which are used to define the values, for each of the phenomenon's parameters, using a phenomenon editor. The phenomenon editor allows the operator to view the effects produced by various settings for the parameter values which are selected. During scene
image generation, a scene image generator operates in a series of phases, including a including a preprocessing phase, a rendering phase and a post-
processing phase. During a pre-
processing phase, the scene image generator can perform pre-
processing operations, such as shadow and
photon mapping, multiple inheritance resolution, and the like. The scene image generator may perform pre-processing operations if, for example, a phenomenon attached to the scene includes a
geometry shader to generate geometry defined thereby for the scene. During the rendering phase, the scene image generator renders the image. During the post-processing phase, the scene image generator may perform post-processing operations if, for example, a phenomenon attached to the scene includes a shader that defines post-processing operations.