Drawable Flags
Drawable Properties
Drawable Properties are set on a DrawableSpan, they affect all objects in that DrawableSpan. Using these flags one can ensure that spans and faces are sorted properly when drawing.
Flag Values
MyObject: visual: drawflags: - sortfaces - sortspans - character - static - nodraw - volatile - noresort - partialsort - sortasone - hasvislos
Flag Details
SortFaces
Sort all of the faces per object in the span. This is useful when one has an object with overlapping alpha faces, it will force the faces to be sorted at draw time to prevent alpha clipping.
SortSpans
Sort all of the objects in the DrawableSpan. This should ensure that objects behind other objects are drawn first.
Character
UNTESTED
Static
UNTESTED
NoDraw
Prevents the span from being drawn? UNTESTED
Volatile
UNTESTED
NoReSort
Prevents the span from being re-sorted at draw time? UNTESTED
PartialSort
Partially sorts the span, no idea exactly how that works... UNTESTED
SortAsOne
Sort the entire span as if it were a single object? UNTESTED
HasVisLOS
Visible Line-Of-Sight? UNTESTED
Drawable Criteria
Drawable Criteria are further flags used per DrawableSpan, hence affecting all objects in that DrawableSpan.
Flag Values
MyObject: visual: criteria: - sortfaces - sortspans - character - static
Flag Details
SortFaces
Sort all of the faces per object in the span. This is useful when one has an object with overlapping alpha faces, it will force the faces to be sorted at draw time to prevent alpha clipping.
SortSpans
Sort all of the objects in the DrawableSpan. This should ensure that objects behind other objects are drawn first.
Character
UNTESTED
Static
UNTESTED
Icicle Properties
Icicle properties are set per object in a DrawableSpan. Icicle flags control various aspects of the appearance of an object. Many of them are automatically set as needed by PyPRP, but in some cases specifying them manually can be useful.
Flag Values
MyObject: visual: icicle: - litematerial - nodraw - noshadowcast - facessortable - volatile - waterheight - runtimelight - reversesort - haspermalights - haspermaprojs - litevtxpreshaded - litevtxnonpreshaded - liteprojection - liteshadowerase - liteshadow - mathasspecular - projasvtx - skipprojection - noshadow - forceshadow - disablenormal - character - partialsort - vislos
Flag Details
LiteVtxNonPreshaded
When this flag is set, vertex colors are multiplied to the overall color after addition of the diffuse contribution of real-time light sources. In other words, a black vertex color will eliminate all light shining on the surface, while a white vertex color will leave it unchanged. This is appropriate when vertex colors are used to simulate shadows from light sources that are still present as real-time lights.
When this flag is not set, vertex colors are multiplied to the overall color before addition of the diffuse contribution of real-time light sources. In other words, a surface with a black vertex color will be illuminated normally by real-time lights, and a white vertex color will add to the real-time light. This is appropriate when vertex colors are used to simulate the diffuse lighting from light sources that are not present as real-time lights.
PyPRP automatically sets this flag on objects that have an Alpha vertex color layer.
NoShadow
When set, the object does not receive shadows, e.g. cast from an avatar.
This is useful for objects which should give the impression to be mostly or partly transparent, for example some grass or plants (which looks strange when it receives shadows because this reveals a single-plane structure of the object, or when plants are made of 2 or 3 intersecting planes, shadows are sometimes drawn on the rearmost or inner plane, not on the sun's side as one would expect) or a nearly transparent water surface, which normally would not receive shadows in reality.