r3rmplev
real/raytr/r3rmplev.h
r3raytr
Renderer's level shader. Defines local variables and sub shaders.
r3Rmatprop
R3CLID_RMATPROP
r3Rmplevel
R3CLID_RMPLEVEL - 731
LocalCnt, PhaseCount, Phases, InParamCount, EvaluateSuper, PublicAttrCnt, PublicAttrSubCount, PublicAttrValues, LocalVarValues, Sub,
int R3RegisterRMatPropLevelClass(R3APP *app);
LocalCnt
LocalCnt
R3RMPLEVA_LocalCnt
Integer
R3INT
number of local vars
jsobj.SetLocalCnt(value);
value = jsobj.GetLocalCnt();
R3INT value = ...;
R3SetAttrs(r3obj, R3RMPLEVA_LocalCnt, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3RMPLEVA_LocalCnt, &value, R3TAG_END);
PhaseCount
PhaseCount
R3RMPLEVA_PhaseCount
Integer
R3INT
number of phases in array defined by R3RMPLEVA_Phases
jsobj.SetPhaseCount(value);
R3INT value = ...;
R3SetAttrs(r3obj, R3RMPLEVA_PhaseCount, value, R3TAG_END);
Phases
Phases
R3RMPLEVA_Phases
Integer
R3INT*
array of R3RMPLEVA_PhaseCount phase clids
jsobj.SetPhases(value);
R3INT* value = ...;
R3SetAttrs(r3obj, R3RMPLEVA_Phases, value, R3TAG_END);
InParamCount
InParamCount
R3RMPLEVA_InParamCount
Integer
R3INT
nunber of declared input params. May be different from R3RMPA_InputCnt, which is the number of 'fixed' input params. For example procedure type objects can be called with different input params
jsobj.SetInParamCount(value);
value = jsobj.GetInParamCount();
R3INT value = ...;
R3SetAttrs(r3obj, R3RMPLEVA_InParamCount, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3RMPLEVA_InParamCount, &value, R3TAG_END);
EvaluateSuper
EvaluateSuper
R3RMPLEVA_EvaluateSuper
Integer
R3INT
R3BOOL. Set this to true in R3RM_GET method if your object needs the EVALBYPARAM execution by the super class R3CLID_RMATPROP (i.e. is not just a level but computes something)
value = jsobj.GetEvaluateSuper();
R3INT value;
R3GetAttrs(r3obj, R3RMPLEVA_EvaluateSuper, &value, R3TAG_END);
PublicAttrCnt
PublicAttrCnt
R3RMPLEVA_PublicAttrCnt
Integer
R3INT
number of public attrs of this class
value = jsobj.GetPublicAttrCnt();
R3INT value;
R3GetAttrs(r3obj, R3RMPLEVA_PublicAttrCnt, &value, R3TAG_END);
PublicAttrSubCount
PublicAttrSubCount
R3RMPLEVA_PublicAttrSubCount
Integer
R3INT*
array[R3RMPLEVA_PublicAttrCnt] of sub channel counts
value = jsobj.GetPublicAttrSubCount();
R3INT* value;
R3GetAttrs(r3obj, R3RMPLEVA_PublicAttrSubCounts, &value, R3TAG_END);
PublicAttrValues
PublicAttrValues
R3RMPLEVA_PublicAttrValues
Number
R3FLOAT*
array of PublicAttr values (vectors take 3 float slots)
value = jsobj.GetPublicAttrValues();
R3FLOAT* value;
R3GetAttrs(r3obj, R3RMPLEVA_PublicAttrValues, &value, R3TAG_END);
LocalVarValues
LocalVarValues
R3RMPLEVA_LocalVarValues
r3List
R3LIST*
array of initialization values (LocalCnt vectors)
value = jsobj.GetLocalVarValues();
R3LIST* value;
R3GetAttrs(r3obj, R3RMPLEVA_LocalVarValues, &value, R3TAG_END);
Sub
Sub
R3RMPLEVA_Sub
r3List
R3LIST*
read-only list of child objects, see child node def below
value = jsobj.GetSub();
R3LIST* value;
R3GetAttrs(r3obj, R3RMPLEVA_Sub, &value, R3TAG_END);
the rest is private
<sect6> <title>r3rmpcel</title>r3rmpcel
real/raytr/r3rmpcel.h
r3raytr
Cell noise material property in rendering.
r3Rmplevel
R3CLID_RMPLEVEL
r3Rmpcellnoise
R3CLID_RMPCELLNOISE - 1517
1D, Additive, Degree, AmplitudeVariation, SupportVariation, Support, PositionVariation, Shape, SymmetryVariation, Density, Centered,
int R3RegisterRMatPropCellNoiseClass(R3APP *app);
1D
1D
R3RMPCNA_1D
Boolean
R3BOOL
1d noise if TRUE
jsobj.Set1D(value);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3RMPCNA_1D, value, R3TAG_END);
Additive
Additive
R3RMPCNA_Additive
Boolean
R3BOOL
additive cell interaction (iotherwise max oper)
jsobj.SetAdditive(value);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3RMPCNA_Additive, value, R3TAG_END);
Degree
Degree
R3RMPCNA_Degree
Integer
R3INT
polynomial degree of function 0..3
jsobj.SetDegree(value);
R3INT value = ...;
R3SetAttrs(r3obj, R3RMPCNA_Degree, value, R3TAG_END);
AmplitudeVariation
AmplitudeVariation
R3RMPCNA_AmplitudeVariation
Number
R3FLOAT
0..1
jsobj.SetAmplitudeVariation(value);
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3RMPCNA_AmplitudeVariation, value, R3TAG_END);
SupportVariation
SupportVariation
R3RMPCNA_SupportVariation
Number
R3FLOAT
0..1
jsobj.SetSupportVariation(value);
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3RMPCNA_SupportVariation, value, R3TAG_END);
Support
Support
R3RMPCNA_Support
Number
R3FLOAT
>0
jsobj.SetSupport(value);
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3RMPCNA_Support, value, R3TAG_END);
PositionVariation
PositionVariation
R3RMPCNA_PositionVariation
Number
R3FLOAT
0..1
jsobj.SetPositionVariation(value);
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3RMPCNA_PositionVariation, value, R3TAG_END);
Shape
Shape
R3RMPCNA_Shape
Integer
R3INT
0..1
jsobj.SetShape(value);
R3INT value = ...;
R3SetAttrs(r3obj, R3RMPCNA_Shape, value, R3TAG_END);
SymmetryVariation
SymmetryVariation
R3RMPCNA_SymmetryVariation
0..1
jsobj.SetSymmetryVariation(value);
R3VECTOR value = ...;
R3SetAttrs(r3obj, R3RMPCNA_SymmetryVariation, value, R3TAG_END);
Density
Density
R3RMPCNA_Density
jsobj.SetDensity(value);
R3VECTOR value = ...;
R3SetAttrs(r3obj, R3RMPCNA_Density, value, R3TAG_END);
Centered
Centered
R3RMPCNA_Centered
Boolean
R3BOOL
jsobj.SetCentered(value);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3RMPCNA_Centered, value, R3TAG_END);
</sect6><sect6> <title>r3rmpder</title>
r3rmpder
real/raytr/r3rmpder.h
r3raytr
Derivative level material property. The sub shaders are derived wrt the input parameter.
r3Rmplevel
R3CLID_RMPLEVEL
r3Rmpderive
R3CLID_RMPDERIVE - 753
int R3RegisterRMatPropDeriveClass(R3APP *app);
parent class is 'level' shader
r3appobj *
r3rmpif
real/raytr/r3rmpif.h
r3raytr
If/Loop/Level material property. The sub shaders are executed if/while specified tests are true.
r3Rmplevel
R3CLID_RMPLEVEL
r3Rmpif
R3CLID_RMPIF - 700
int R3RegisterRMatPropIfClass(R3APP *app);
parent class is 'level' shader
Condition1
Condition1
R3RMPIFA_Condition1
Integer
R3INT
see enum below
jsobj.SetCondition1(value);
R3INT value = ...;
R3SetAttrs(r3obj, R3RMPIFA_Condition1, value, R3TAG_END);
Min1
Min1
R3RMPIFA_Min1
Number
R3FLOAT
jsobj.SetMin1(value);
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3RMPIFA_Min1, value, R3TAG_END);
Max1
Max1
R3RMPIFA_Max1
Number
R3FLOAT
jsobj.SetMax1(value);
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3RMPIFA_Max1, value, R3TAG_END);
ElseCondition
ElseCondition
R3RMPIFA_ElseCondition
Boolean
R3BOOL*
optional address where negated test result is stored
jsobj.SetElseCondition(value);
R3BOOL* value = ...;
R3SetAttrs(r3obj, R3RMPIFA_ElseCondition, value, R3TAG_END);
Condition alternatives:
Types:
Operation between sub channel tests:
</sect6><sect6> <title>r3rmpnoi</title>r3rmpnoi
real/raytr/r3rmpnoi.h
r3raytr
Noise material property in rendering.
r3Rmplevel
R3CLID_RMPLEVEL
r3Rmpnoise
R3CLID_RMPNOISE - 472
int R3RegisterRMatPropNoiseClass(R3APP *app);
1D
1D
R3RMPNOA_1D
Boolean
R3BOOL
1d noise if TRUE
jsobj.Set1D(value);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3RMPNOA_1D, value, R3TAG_END);
Smooth
Smooth
R3RMPNOA_Smooth
Boolean
R3BOOL
c2 continuous noise if TRUE
jsobj.SetSmooth(value);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3RMPNOA_Smooth, value, R3TAG_END);
4DInput
4DInput
R3RMPNOA_4DInput
Boolean
R3BOOL
if TRUE uses two input channels (vector+float)
jsobj.Set4DInput(value);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3RMPNOA_4DInput, value, R3TAG_END);
Density
Density
R3RMPNOA_Density
jsobj.SetDensity(value);
R3VECTOR value = ...;
R3SetAttrs(r3obj, R3RMPNOA_Density, value, R3TAG_END);
Centered
Centered
R3RMPNOA_Centered
Boolean
R3BOOL
jsobj.SetCentered(value);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3RMPNOA_Centered, value, R3TAG_END);
</sect6><sect6> <title>r3rmprnd</title>
r3rmprnd
real/raytr/r3rmprnd.h
r3raytr
Random material property in rendering.
r3Rmplevel
R3CLID_RMPLEVEL
r3Rmprandom
R3CLID_RMPRANDOM - 474
int R3RegisterRMatPropRandomClass(R3APP *app);
1D
1D
R3RMPRNDA_1D
Boolean
R3BOOL
1d random signal created if TRUE
jsobj.Set1D(value);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3RMPRNDA_1D, value, R3TAG_END);
Centered
Centered
R3RMPRNDA_Centered
Boolean
R3BOOL
jsobj.SetCentered(value);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3RMPRNDA_Centered, value, R3TAG_END);
</sect6><sect6> <title>r3rmpray</title>
r3rmpray
real/raytr/r3rmpray.h
r3raytr
Ray tracer material property in rendering.
r3Rmplevel
R3CLID_RMPLEVEL
r3Rmpraytracer
R3CLID_RMPRAYTRACER - 1548
int R3RegisterRMatPropRayTracerClass(R3APP *app);
Count
Count
R3RMPRAYA_Count
Integer
R3INT
amount of sampled random rays
jsobj.SetCount(value);
R3INT value = ...;
R3SetAttrs(r3obj, R3RMPRAYA_Count, value, R3TAG_END);
NormalSide
NormalSide
R3RMPRAYA_NormalSide
Boolean
R3BOOL
if true randomized rays are forced to same side of normal as the ray
jsobj.SetNormalSide(value);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3RMPRAYA_NormalSide, value, R3TAG_END);
WeightByAngle
WeightByAngle
R3RMPRAYA_WeightByAngle
Boolean
R3BOOL
if true traced ray color is weighted by dot product ray*normal
jsobj.SetWeightByAngle(value);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3RMPRAYA_WeightByAngle, value, R3TAG_END);
TraceMode
TraceMode
R3RMPRAYA_TraceMode
Integer
R3UBYTE
jsobj.SetTraceMode(value);
R3UBYTE value = ...;
R3SetAttrs(r3obj, R3RMPRAYA_TraceMode, value, R3TAG_END);
</sect6><sect6> <title>r3rmpspe</title>
r3rmpspe
real/raytr/r3rmpspe.h
r3raytr
Specular light shader
r3Rmplevel
R3CLID_RMPLEVEL
r3Rmpspecular
R3CLID_RMPSPECULAR - 789
int R3RegisterRMatPropSpecularClass(R3APP *app);
Sharpness
Sharpness
R3RMPSPEA_Sharpness
Number
R3FLOAT
> 0
jsobj.SetSharpness(value);
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3RMPSPEA_Sharpness, value, R3TAG_END);
Brightness
Brightness
R3RMPSPEA_Brightness
Number
R3FLOAT
jsobj.SetBrightness(value);
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3RMPSPEA_Brightness, value, R3TAG_END);
</sect6><sect6> <title>r3rmpwav</title>
r3rmpwav
real/raytr/r3rmpwav.h
r3raytr
Wave material property renderer
r3Rmplevel
R3CLID_RMPLEVEL
r3Rmpwave
R3CLID_RMPWAVE - 473
int R3RegisterRMatPropWaveClass(R3APP *app);
Amplitude
Amplitude
R3RMPWAVEA_Amplitude
Number
R3FLOAT
jsobj.SetAmplitude(value);
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3RMPWAVEA_Amplitude, value, R3TAG_END);
Base
Base
R3RMPWAVEA_Base
Number
R3FLOAT
jsobj.SetBase(value);
R3FLOAT value = ...;
R3SetAttrs(r3obj, R3RMPWAVEA_Base, value, R3TAG_END);
1D
1D
R3RMPWAVEA_1D
Boolean
R3BOOL
1d wave if TRUE
jsobj.Set1D(value);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3RMPWAVEA_1D, value, R3TAG_END);
Centered
Centered
R3RMPWAVEA_Centered
Boolean
R3BOOL
jsobj.SetCentered(value);
R3BOOL value = ...;
R3SetAttrs(r3obj, R3RMPWAVEA_Centered, value, R3TAG_END);
</sect6>