Difference between revisions of "Drawable Flags"

m (Icicle Flags moved to Drawable Flags: Better to keep all DSpan-related flags on a single page IMO)
(Drawable Flags documentation that I promised CW, it could be much improved but it's a start)
Line 1: Line 1:
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.
+
=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.
  
== Overview ==
+
==Flag Values==
Possible values in the ''visual.icicle'' list are the following:
+
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:
 
  MyObject:
 
     visual:
 
     visual:
Line 31: Line 107:
 
           - vislos
 
           - vislos
  
== Details ==
+
==Flag Details==
 
+
===LiteVtxNonPreshaded===
=== 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 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.
  

Revision as of 21:39, 5 July 2009

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.