|
enum | Flags {
INSTANCE_COMPILATION = 0 << 0
,
CLASS_COMPILATION = 1 << 0
,
NO_ARGUMENT_INLINE = 1 << 1
,
NO_RESOURCE_SHARING = 1 << 2
,
NO_TERNARY_ON_DF = 1 << 3
,
NO_DEAD_PARAMS = 1 << 4
,
NO_STRING_PARAMS = 1 << 5
,
NO_BOOL_PARAMS = 1 << 6
,
NO_ENUM_PARAMS = 1 << 7
,
NO_TRIVIAL_CUTOUT_OPACITY = 1 << 8
,
NO_TRANSPARENT_LAYERS = 1 << 9
,
IGNORE_NOINLINE = 1 << 10
,
TARGET_MATERIAL_MODEL = 1 << 11
,
DEFAULT_CLASS_COMPILATION
} |
| Instantiation flags. More...
|
|
enum | Slot {
MS_THIN_WALLED
,
MS_SURFACE_BSDF_SCATTERING
,
MS_SURFACE_EMISSION_EDF_EMISSION
,
MS_SURFACE_EMISSION_INTENSITY
,
MS_SURFACE_EMISSION_MODE
,
MS_BACKFACE_BSDF_SCATTERING
,
MS_BACKFACE_EMISSION_EDF_EMISSION
,
MS_BACKFACE_EMISSION_INTENSITY
,
MS_BACKFACE_EMISSION_MODE
,
MS_IOR
,
MS_VOLUME_VDF_SCATTERING
,
MS_VOLUME_ABSORPTION_COEFFICIENT
,
MS_VOLUME_SCATTERING_COEFFICIENT
,
MS_VOLUME_EMISSION_INTENSITY
,
MS_GEOMETRY_DISPLACEMENT
,
MS_GEOMETRY_CUTOUT_OPACITY
,
MS_GEOMETRY_NORMAL
,
MS_HAIR
,
MS_LAST = MS_HAIR
} |
| Material slots on which hashes are calculated. More...
|
|
enum | Property {
IP_DEPENDS_ON_TRANSFORM = 0x001
,
IP_DEPENDS_ON_OBJECT_ID = 0x002
,
IP_DEPENDS_ON_GLOBAL_DISTRIBUTION = 0x004
,
IP_USES_TERNARY_OPERATOR = 0x008
,
IP_USES_TERNARY_OPERATOR_ON_DF = 0x010
,
IP_CLASS_COMPILED = 0x020
,
IP_DISTILLED = 0x040
,
IP_DEPENDS_ON_UNIFORM_SCENE_DATA = 0x080
,
IP_TARGET_MATERIAL_MODEL = 0x100
} |
| Property flags of an instance. More...
|
|
enum | Opacity {
OPACITY_OPAQUE
,
OPACITY_TRANSPARENT
,
OPACITY_UNKNOWN
} |
| Opacity of an instance. More...
|
|
typedef Interface_declare< id1, ... > | Self |
| Own type. More...
|
|
typedef Uuid_t< id1, ... > | IID |
| Declares the interface ID (IID) of this interface. More...
|
|
|
virtual IType_factory * | get_type_factory ()=0 |
| Get the type factory of this instance. More...
|
|
virtual IValue_factory * | get_value_factory ()=0 |
| Get the value factory of this instance. More...
|
|
virtual DAG_constant const * | create_constant (IValue const *value)=0 |
| Create a constant node. More...
|
|
virtual DAG_node const * | create_call (char const *signature, IDefinition::Semantics sema, DAG_call::Call_argument const call_args[], int num_call_args, IType const *ret_type)=0 |
| Create a call node. More...
|
|
virtual DAG_parameter const * | create_parameter (IType const *type, int index)=0 |
| Create a parameter reference node. More...
|
|
virtual Error_code | initialize (ICall_name_resolver *resolver, IResource_modifier *resource_modifier, IGenerated_code_dag const *code_dag, size_t argc, DAG_node const *argv[], bool use_temporaries, unsigned flags, ICall_evaluator *evaluator, bool fold_meters_per_scene_unit, float mdl_meters_per_scene_unit, float wavelength_min, float wavelength_max, char const *const fold_params[], size_t num_fold_params)=0 |
| Initialize this material instance. More...
|
|
virtual DAG_call const * | get_constructor () const =0 |
| Return the material constructor of this instance. More...
|
|
virtual size_t | get_temporary_count () const =0 |
| Return the number of temporaries of this instance. More...
|
|
virtual DAG_node const * | get_temporary_value (size_t index) const =0 |
| Return the value of the temporary at index. More...
|
|
virtual size_t | get_parameter_count () const =0 |
| Return the number of parameters of this instance. More...
|
|
virtual IValue const * | get_parameter_default (size_t index) const =0 |
| Return the default value of a parameter of this instance. More...
|
|
virtual DAG_hash const * | get_hash () const =0 |
| Return the hash value of this material instance. More...
|
|
virtual DAG_hash const * | get_slot_hash (Slot slot) const =0 |
| Return the hash value of one material slot of this material instance. More...
|
|
virtual char const * | get_parameter_name (size_t index) const =0 |
| Return the canonical parameter name of the given parameter. More...
|
|
virtual bool | depends_on_transform () const =0 |
| Returns true if this instance depends on object transforms. More...
|
|
virtual bool | depends_on_object_id () const =0 |
| Returns true if this instance depends on the object id. More...
|
|
virtual bool | depends_on_global_distribution () const =0 |
| Returns true if this instance depends on the global distribution (edf). More...
|
|
virtual bool | depends_on_uniform_scene_data () const =0 |
| Returns true if this instance depends on uniform scene data. More...
|
|
virtual size_t | get_referenced_scene_data_count () const =0 |
| Returns the number of scene data attributes referenced by this instance. More...
|
|
virtual char const * | get_referenced_scene_data_name (size_t index) const =0 |
| Return the name of a scene data attribute referenced by this instance. More...
|
|
virtual Opacity | get_opacity () const =0 |
| Returns the opacity of this instance. More...
|
|
virtual Opacity | get_surface_opacity () const =0 |
| Returns the surface opacity of this instance. More...
|
|
virtual IValue_float const * | get_cutout_opacity () const =0 |
| Returns the cutout opacity of this instance if it is constant. More...
|
|
virtual Messages const & | access_messages () const =0 |
| Access messages. More...
|
|
virtual Properties | get_properties () const =0 |
| Get the instance properties. More...
|
|
virtual char const * | get_internal_space () const =0 |
| Get the internal space. More...
|
|
virtual void | set_resource_tag (IValue_resource const *res, int tag)=0 |
| Set a tag, version pair for a resource constant that might be reachable from this instance. More...
|
|
virtual size_t | get_resource_tag_map_entries_count () const =0 |
| Get the number of resource tag map entries. More...
|
|
virtual Resource_tag_tuple const * | get_resource_tag_map_entry (size_t index) const =0 |
| Get the i'th resource tag map entry or NULL if the index is out of bounds;. More...
|
|
virtual IResource_tagger * | get_resource_tagger () const =0 |
| Get the resource tagger for this material instance. More...
|
|
An instantiated material.
With an IGenerated_code_dag at hand, creating an instantiated material usually consists of these steps: