Drawable Flags

Revision as of 21:39, 5 July 2009 by Paradox (Talk | contribs) (Drawable Flags documentation that I promised CW, it could be much improved but it's a start)

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.