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)
m (NoShadow)
 
(2 intermediate revisions by 2 users not shown)
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.
  
Line 39: Line 114:
  
 
PyPRP automatically sets this flag on objects that have an ''Alpha'' vertex color layer.
 
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.

Latest revision as of 20:13, 14 May 2010

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.