r3matprp
real/code/r3matprp.h
r3code
Material shader base class.
real/frio/r3cha.h real/frio/r3channe.h real/frio/r3chasc.h real/frio/r3chbnor.h real/frio/r3chbump.h real/frio/r3chcol.h real/frio/r3chfade.h real/frio/r3chflt.h real/frio/r3chhor.h real/frio/r3chid.h real/frio/r3chilm.h real/frio/r3chlsc.h real/frio/r3chmnor.h real/frio/r3chmsc.h real/frio/r3chnorm.h real/frio/r3chothi.h real/frio/r3chray.h real/frio/r3chrecd.h real/frio/r3chrefc.h real/frio/r3chrefl.h real/frio/r3chrefr.h real/frio/r3chrn.h real/frio/r3chscop.h real/frio/r3chshor.h real/frio/r3chsig.h real/frio/r3chspot.h real/frio/r3chsver.h real/frio/r3chtime.h real/frio/r3chtmp.h real/frio/r3chtran.h real/frio/r3chturb.h real/frio/r3chvec.h real/frio/r3chver.h real/frio/r3chvols.h real/frio/r3chz.h
r3Ttag
R3CLID_TTAG
r3Matprop
R3CLID_MATPROP - 45
SETINPUTS, RENAMEPROP, SETOUTPUT, GETCHANNELNAME, GETSYMBOLICINPUTNA, GETSYMBOLICOUTPUTN, SETINPUTSUBINDEX, MAKEUNIQUEIDS, GETUNIQUEID, MARKUNIQUEID, SETUNIQUEID,
OutputType, OutputChannel, OutputIdentifier, InputChannelCount, InputTypes, InputChannels, InputIdentifiers, AlsoChanges, AlsoChangesTag, Phase, Operation, AntiAliasing, TotalFrames, CurrentFrame, NormalizeChannel, TransformToMatSpac, NumTags, Parent, RenderLibraryBaseC, Name, HasOutput, ShaderChangedMetho, USamples, VSamples, AntiAliasingTresho, OutputName, InputNames, SymbolicInputNames, SymbolicOutputName, AlsoChangesAnimMth, ShaderID, HasCustomName, AlsoChangesPrepAni, OutputSubIndex, InputSubIndices, Disabled, Tip, UniqueTag,
int R3RegisterMatpropClass(R3APP *app);
built-in channels
R3MATPRPM_SETINPUTS
SETINPUTS
R3MATPRPM_SETINPUTS
R3TAG*, tag list containing R3MATPRPA_InputTypes R3INT *, array of input types R3MATPRPA_InputChannels R3INT*, array of input class ids R3MATPRPA_InputIdentifiers R3INT *, array of input identifiers R3MATPRPA_InputNames char **, array of input names
obj.SETINPUTS(p3);
Sets the input types, clids, and identifiers
R3MATPRPM_RENAMEPROP
RENAMEPROP
R3MATPRPM_RENAMEPROP
obj.RENAMEPROP();
notifies that the prop's name has changed.
R3MATPRPM_SETOUTPUT
SETOUTPUT
R3MATPRPM_SETOUTPUT
R3TAG*, tag list containing R3MATPRPA_OutputType R3INT, output type R3MATPRPA_OutputChannel R3INT, output class id R3MATPRPA_OutputIdentifier R3INT, output identifier R3MATPRPA_OutputName char *, output identifier
obj.SETOUTPUT(p3);
Sets the output type, clid, and identifier
R3MATPRPM_GETCHANNELNAME
GETCHANNELNAME
R3MATPRPM_GETCHANNELNAME
R3INT, NULL unable to copy the name
char*, buffer
R3TAG*, tag list
rc = obj.GETCHANNELNAME(p1, p3);
Copies the name of the channel (raysmp, local, param or void) whose type, clid and identifier are given to the given buffer
R3MATPRPM_GETSYMBOLICINPUTNA
GETSYMBOLICINPUTNA
R3MATPRPM_GETSYMBOLICINPUTNA
char*, buffer where the name will be written
R3INT, index of the requested symbolic input name
obj.GETSYMBOLICINPUTNA(p1, p3);
Gets a symbolic name for a shader's input
R3MATPRPM_GETSYMBOLICOUTPUTN
GETSYMBOLICOUTPUTN
R3MATPRPM_GETSYMBOLICOUTPUTN
char*, buffer where the name will be written
obj.GETSYMBOLICOUTPUTN(p3);
Gets a symbolic name for a shader's output
R3MATPRPM_SETINPUTSUBINDEX
SETINPUTSUBINDEX
R3MATPRPM_SETINPUTSUBINDEX
R3INT, index of input parameter
R3INT, sub channel selector. 0=input from all sub channels, 1-3 slects single sub channel
obj.SETINPUTSUBINDEX(0, p2, p3);
Selects sub channel of a single input channel
R3MATPRPM_MAKEUNIQUEIDS
MAKEUNIQUEIDS
R3MATPRPM_MAKEUNIQUEIDS
R3OBJ*, prop
obj.MAKEUNIQUEIDS(p3);
Set R3MATPRPA_UniqueTag for prop (param p3) and its descendants to be unique in the hierarchy starting from obj.
R3MATPRPM_GETUNIQUEID
GETUNIQUEID
R3MATPRPM_GETUNIQUEID
R3OBJ*, prop
obj.GETUNIQUEID(p3);
Returns the smallest unused value of R3MATPRPA_UniqueTag in the hierarchy starting from obj. The prop (param p3) and its descendants are excluded from the search.
R3MATPRPM_MARKUNIQUEID
MARKUNIQUEID
R3MATPRPM_MARKUNIQUEID
obj.MARKUNIQUEID();
R3MATPRPM_SETUNIQUEID
SETUNIQUEID
R3MATPRPM_SETUNIQUEID
obj.SETUNIQUEID();
OutputType
OutputType
R3MATPRPA_OutputType
Integer
R3INT
set with R3MATPRPM_SETOUTPUT
jsobj.SetOutputType(value);
value = jsobj.GetOutputType();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_OutputType, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_OutputType, &value, R3TAG_END);
OutputChannel
OutputChannel
R3MATPRPA_OutputChannel
Integer
R3INT
class id
jsobj.SetOutputChannel(value);
value = jsobj.GetOutputChannel();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_OutputChannel, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_OutputChannel, &value, R3TAG_END);
OutputIdentifier
OutputIdentifier
R3MATPRPA_OutputIdentifier
Integer
R3INT
set with R3MATPRPM_SETOUTPUT
jsobj.SetOutputIdentifier(value);
value = jsobj.GetOutputIdentifier();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_OutputIdentifier, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_OutputIdentifier, &value, R3TAG_END);
InputChannelCount
InputChannelCount
R3MATPRPA_InputChannelCount
Integer
R3INT
number of input channels, see R3MATPRPA_InputChannels
jsobj.SetInputChannelCount(value);
value = jsobj.GetInputChannelCount();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_InputChannelCount, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_InputChannelCount, &value, R3TAG_END);
InputTypes
InputTypes
R3MATPRPA_InputTypes
Integer
R3INT*
Read-only, array of input types, set with R3MATPRPM_SETINPUTS
jsobj.SetInputTypes(value);
value = jsobj.GetInputTypes();
R3INT* value = ...;
R3SetAttrs(r3obj, R3MATPRPA_InputTypes, value, R3TAG_END);
R3INT* value;
R3GetAttrs(r3obj, R3MATPRPA_InputTypes, &value, R3TAG_END);
InputChannels
InputChannels
R3MATPRPA_InputChannels
Integer
R3INT*
Read-only, table of class ids, see R3MATPRPA_InputChannelCount, set with R3MATPRPM_SETINPUTS
jsobj.SetInputChannels(value);
value = jsobj.GetInputChannels();
R3INT* value = ...;
R3SetAttrs(r3obj, R3MATPRPA_InputChannels, value, R3TAG_END);
R3INT* value;
R3GetAttrs(r3obj, R3MATPRPA_InputChannels, &value, R3TAG_END);
InputIdentifiers
InputIdentifiers
R3MATPRPA_InputIdentifiers
Integer
R3INT*
Read-only, array of input identifiers, set with R3MATPRPM_SETINPUTS
jsobj.SetInputIdentifiers(value);
value = jsobj.GetInputIdentifiers();
R3INT* value = ...;
R3SetAttrs(r3obj, R3MATPRPA_InputIdentifiers, value, R3TAG_END);
R3INT* value;
R3GetAttrs(r3obj, R3MATPRPA_InputIdentifiers, &value, R3TAG_END);
AlsoChanges
AlsoChanges
R3MATPRPA_AlsoChanges
Object
R3OBJ*
material which own this object
jsobj.SetAlsoChanges(value);
value = jsobj.GetAlsoChanges();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3MATPRPA_AlsoChanges, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3MATPRPA_AlsoChanges, &value, R3TAG_END);
AlsoChangesTag
AlsoChangesTag
R3MATPRPA_AlsoChangesTag
Integer
R3INT
affects this tag in the material
jsobj.SetAlsoChangesTag(value);
value = jsobj.GetAlsoChangesTag();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_AlsoChangesTag, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_AlsoChangesTag, &value, R3TAG_END);
Phase
Phase
R3MATPRPA_Phase
Integer
R3CLID
class identifier of the rendering phase class
jsobj.SetPhase(value);
value = jsobj.GetPhase();
R3CLID value = ...;
R3SetAttrs(r3obj, R3MATPRPA_Phase, value, R3TAG_END);
R3CLID value;
R3GetAttrs(r3obj, R3MATPRPA_Phase, &value, R3TAG_END);
Operation
Operation
R3MATPRPA_Operation
Integer
R3INT
see operation codes below
jsobj.SetOperation(value);
value = jsobj.GetOperation();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_Operation, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_Operation, &value, R3TAG_END);
AntiAliasing
AntiAliasing
R3MATPRPA_AntiAliasing
Number
R3FLOAT
texture anti-aliasing, value 0.0 ...
jsobj.SetAntiAliasing(value);
value = jsobj.GetAntiAliasing();
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_AntiAliasing, value, R3TAG_END);
R3FLOAT value;
R3GetAttrs(r3obj, R3MATPRPA_AntiAliasing, &value, R3TAG_END);
TotalFrames
TotalFrames
R3MATPRPA_TotalFrames
Integer
R3INT
frames in animation
jsobj.SetTotalFrames(value);
value = jsobj.GetTotalFrames();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_TotalFrames, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_TotalFrames, &value, R3TAG_END);
CurrentFrame
CurrentFrame
R3MATPRPA_CurrentFrame
Integer
R3INT
current frame of animation
jsobj.SetCurrentFrame(value);
value = jsobj.GetCurrentFrame();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_CurrentFrame, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_CurrentFrame, &value, R3TAG_END);
NormalizeChannel
NormalizeChannel
R3MATPRPA_NormalizeChannel
Boolean
R3BOOL
if true, normalizes channel to unit
jsobj.SetNormalizeChannel(value);
value = jsobj.GetNormalizeChannel();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3MATPRPA_NormalizeChannel, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3MATPRPA_NormalizeChannel, &value, R3TAG_END);
TransformToMatSpac
TransformToMatSpac
R3MATPRPA_TransformToMatSpac
Boolean
R3BOOL
valid only for vector channels
jsobj.SetTransformToMatSpac(value);
value = jsobj.GetTransformToMatSpac();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3MATPRPA_TransformToMatSpace, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3MATPRPA_TransformToMatSpace, &value, R3TAG_END);
NumTags
NumTags
R3MATPRPA_NumTags
Integer
R3INT
number of attribute tags is matprop
jsobj.SetNumTags(value);
value = jsobj.GetNumTags();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_NumTags, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_NumTags, &value, R3TAG_END);
Parent
Parent
R3MATPRPA_Parent
Object
R3OBJ*
parent
jsobj.SetParent(value);
value = jsobj.GetParent();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3MATPRPA_Parent, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3MATPRPA_Parent, &value, R3TAG_END);
RenderLibraryBaseC
RenderLibraryBaseC
R3MATPRPA_RenderLibraryBaseC
Integer
R3INT
defines the render library to which a root level object is inserted used e.g. by procedures
value = jsobj.GetRenderLibraryBaseC();
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_RenderLibraryBaseClid, &value, R3TAG_END);
Name
Name
R3MATPRPA_Name
String
char*
name of the shader
value = jsobj.GetName();
char* value;
R3GetAttrs(r3obj, R3MATPRPA_Name, &value, R3TAG_END);
HasOutput
HasOutput
R3MATPRPA_HasOutput
Boolean
R3BOOL
True if shader has output
jsobj.SetHasOutput(value);
value = jsobj.GetHasOutput();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3MATPRPA_HasOutput, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3MATPRPA_HasOutput, &value, R3TAG_END);
ShaderChangedMetho
ShaderChangedMetho
R3MATPRPA_ShaderChangedMetho
Integer
R3INT
notify material using this tag
jsobj.SetShaderChangedMetho(value);
value = jsobj.GetShaderChangedMetho();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_ShaderChangedMethod, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_ShaderChangedMethod, &value, R3TAG_END);
USamples
USamples
R3MATPRPA_USamples
Integer
R3INT
sample rate in u direction
jsobj.SetUSamples(value);
value = jsobj.GetUSamples();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_USamples, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_USamples, &value, R3TAG_END);
VSamples
VSamples
R3MATPRPA_VSamples
Integer
R3INT
sample rate in v direction
jsobj.SetVSamples(value);
value = jsobj.GetVSamples();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_VSamples, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_VSamples, &value, R3TAG_END);
AntiAliasingTresho
AntiAliasingTresho
R3MATPRPA_AntiAliasingTresho
Number
R3FLOAT
defines a treshold value that trigggers antialiasing
jsobj.SetAntiAliasingTresho(value);
value = jsobj.GetAntiAliasingTresho();
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_AntiAliasingTreshold, value, R3TAG_END);
R3FLOAT value;
R3GetAttrs(r3obj, R3MATPRPA_AntiAliasingTreshold, &value, R3TAG_END);
OutputName
OutputName
R3MATPRPA_OutputName
String
char*
output identifier
jsobj.SetOutputName(value);
value = jsobj.GetOutputName();
char* value = ...;
R3SetAttrs(r3obj, R3MATPRPA_OutputName, value, R3TAG_END);
char* value;
R3GetAttrs(r3obj, R3MATPRPA_OutputName, &value, R3TAG_END);
InputNames
InputNames
R3MATPRPA_InputNames
String
char**
array of input names SETINPUTNAMES
jsobj.SetInputNames(value);
value = jsobj.GetInputNames();
char** value = ...;
R3SetAttrs(r3obj, R3MATPRPA_InputNames, value, R3TAG_END);
char** value;
R3GetAttrs(r3obj, R3MATPRPA_InputNames, &value, R3TAG_END);
SymbolicInputNames
SymbolicInputNames
R3MATPRPA_SymbolicInputNames
String
char**
symbolic names for input parameters
value = jsobj.GetSymbolicInputNames();
char** value;
R3GetAttrs(r3obj, R3MATPRPA_SymbolicInputNames, &value, R3TAG_END);
SymbolicOutputName
SymbolicOutputName
R3MATPRPA_SymbolicOutputName
String
char*
symbolic name for output
value = jsobj.GetSymbolicOutputName();
char* value;
R3GetAttrs(r3obj, R3MATPRPA_SymbolicOutputName, &value, R3TAG_END);
AlsoChangesAnimMth
AlsoChangesAnimMth
R3MATPRPA_AlsoChangesAnimMth
Integer
R3INT
called when animated tag is changed
jsobj.SetAlsoChangesAnimMth(value);
value = jsobj.GetAlsoChangesAnimMth();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_AlsoChangesAnimMth, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_AlsoChangesAnimMth, &value, R3TAG_END);
ShaderID
ShaderID
R3MATPRPA_ShaderID
Integer
R3INT
unique id for all shaders in a material
jsobj.SetShaderID(value);
value = jsobj.GetShaderID();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_ShaderID, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_ShaderID, &value, R3TAG_END);
HasCustomName
HasCustomName
R3MATPRPA_HasCustomName
Boolean
R3BOOL
jsobj.SetHasCustomName(value);
value = jsobj.GetHasCustomName();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3MATPRPA_HasCustomName, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3MATPRPA_HasCustomName, &value, R3TAG_END);
AlsoChangesPrepAni
AlsoChangesPrepAni
R3MATPRPA_AlsoChangesPrepAni
Integer
R3INT
called when a tag is about to change
jsobj.SetAlsoChangesPrepAni(value);
value = jsobj.GetAlsoChangesPrepAni();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_AlsoChangesPrepAnimMth, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_AlsoChangesPrepAnimMth, &value, R3TAG_END);
OutputSubIndex
OutputSubIndex
R3MATPRPA_OutputSubIndex
Integer
R3INT
0=to all sub channels, 1-3 = to a single sub channel
jsobj.SetOutputSubIndex(value);
value = jsobj.GetOutputSubIndex();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_OutputSubIndex, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_OutputSubIndex, &value, R3TAG_END);
InputSubIndices
InputSubIndices
R3MATPRPA_InputSubIndices
Integer
R3INT*
0=to all sub channels, 1-3 = to a single sub channel
jsobj.SetInputSubIndices(value);
value = jsobj.GetInputSubIndices();
R3INT* value = ...;
R3SetAttrs(r3obj, R3MATPRPA_InputSubIndices, value, R3TAG_END);
R3INT* value;
R3GetAttrs(r3obj, R3MATPRPA_InputSubIndices, &value, R3TAG_END);
Disabled
Disabled
R3MATPRPA_Disabled
Boolean
R3BOOL
enable/disable in rendering
jsobj.SetDisabled(value);
value = jsobj.GetDisabled();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3MATPRPA_Disabled, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3MATPRPA_Disabled, &value, R3TAG_END);
Tip
Tip
R3MATPRPA_Tip
String
char*
a comment appearing after the name of the VSL object
jsobj.SetTip(value);
value = jsobj.GetTip();
char* value = ...;
R3SetAttrs(r3obj, R3MATPRPA_Tip, value, R3TAG_END);
char* value;
R3GetAttrs(r3obj, R3MATPRPA_Tip, &value, R3TAG_END);
UniqueTag
UniqueTag
R3MATPRPA_UniqueTag
Integer
R3INT
unique id
jsobj.SetUniqueTag(value);
value = jsobj.GetUniqueTag();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATPRPA_UniqueTag, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATPRPA_UniqueTag, &value, R3TAG_END);
Operation codes (see inc aytr 3rmprop.h)
The tag from the property actually set/get
An id unique to one material
See R3TN_* flags in r3root.h
see subtypes in r3typids.h
if R3TNF_INDEXED flag is set, use R3SetIndexedAttr() with 'index' for this tag
if R3TNF_ARRAY, tag used for fetching the size of the array
if R3TNF_ARRAY, tag used for fetching the size of the item in the array
if R3TNF_ARRAY, tag used for fetching selection array (R3BYTE *)