r3popaef
real/raytr/r3popaef.h
r3raytr
Post processing particle effect base class. Post processors derived from this class use particle objects in world geometry to define geometric information. The same effect can be associated with hundreds of particles and consiquently may be rendered many thousands of times into the same image. This situation requires 3 phase rendering: 1. Define ModelView attributes (R3PPEM_BEGIN) 2. Do RenderParticle several times (parent method R3FRMSRCM_EVALUATE) 3. Finish the effect drawing (R3PPEM_END)
r3Frmapsource
R3CLID_FRMAPSOURCE
r3Postparticleeffect
R3CLID_POSTPARTICLEEFFECT - 703
int R3RegisterPostParticleEffectClass(R3APP *app);
R3PPEM_ENUMNEEDEDCHANNELS
ENUMNEEDEDCHANNELS
R3PPEM_ENUMNEEDEDCHANNELS
R3OBJ*, retobj
R3INT, retmth
obj.ENUMNEEDEDCHANNELS(p1, p3);
enumerate all raysample channels that are needed (to render by raytracer)
In the BEGIN method, the parameters are: p1 = prt to a r3drawp object, the target of drawing p2 = matrix which transforms points to the drawp coord space msg = ptr to a tag array, see attrs below
/XExtend
XExtend
R3PPEA_XExtend
Integer
R3INT
number of pixels. Extend values define an additional area around the outputted area, which should be rendered for this effect to work continuously in animations, box rendering etc. Rendering engine clips the additional area automatically before outputting it. Maximum area defined by XExtend and XExtendRel if both are given, will be used
value = jsobj.GetXExtend();
R3INT value;
R3GetAttrs(r3obj, R3PPEA_XExtend, &value, R3TAG_END);
YExtend
YExtend
R3PPEA_YExtend
Integer
R3INT
'R3PPEA_YExtend' not documented
value = jsobj.GetYExtend();
R3INT value;
R3GetAttrs(r3obj, R3PPEA_YExtend, &value, R3TAG_END);
XExtendRel
XExtendRel
R3PPEA_XExtendRel
Number
R3FLOAT
proportion extension area width/image width. E.g 0.1 = 10 % of the image
value = jsobj.GetXExtendRel();
R3FLOAT value;
R3GetAttrs(r3obj, R3PPEA_XExtendRel, &value, R3TAG_END);
YExtendRel
YExtendRel
R3PPEA_YExtendRel
Number
R3FLOAT
'R3PPEA_YExtendRel' not documented
value = jsobj.GetYExtendRel();
R3FLOAT value;
R3GetAttrs(r3obj, R3PPEA_YExtendRel, &value, R3TAG_END);
Active
Active
R3PPEA_Active
Boolean
R3BOOL
base class uses this attribute when examining which objects are used
jsobj.SetActive(value);
value = jsobj.GetActive();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3PPEA_Active, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3PPEA_Active, &value, R3TAG_END);