doc: Improve egg syntax documentation

[skip ci]

Closes #1199
This commit is contained in:
loonaticx 2021-11-28 16:12:44 +01:00 committed by rdb
parent 980399d142
commit 15c84afbe9
2 changed files with 92 additions and 77 deletions

View File

@ -168,8 +168,9 @@ appear before they are referenced.
The remaining formats are generic and specify only the semantic
meaning of the channels. The size of the texels is determined by
the width of the components in the image file. RGBA is the most
general; RGB is the same, but without any alpha channel. RGBM is
like RGBA, except that it requests only one bit of alpha, if the
general; RGB is the same, but without any alpha channel.
RGBM is like RGBA, except that it requests only one bit of alpha, if the
graphics card can provide that, to leave more room for the RGB
components, which is especially important for older 16-bit
graphics cards (the "M" stands for "mask", as in a cutout).
@ -211,7 +212,7 @@ appear before they are referenced.
Although less often used, for 3-d textures wrapw may also be
specified, and it behaves similarly to wrapu and wrapv.
There are other legal values in addtional to REPEAT and CLAMP.
There are other legal values in additional to REPEAT and CLAMP.
The full list is:
CLAMP
@ -1083,7 +1084,7 @@ surfaces. External tools like egg-qtess, however, may respect them.
<Scalar> type { curve-type }
This defines the semanting meaning of this curve, either XYZ, HPR,
This defines the semantic meaning of this curve, either XYZ, HPR,
or T. If the type is XYZ, the curve will automatically be
transformed between Y-up and Z-up if necessary; otherwise, it will
be left alone.
@ -1137,7 +1138,7 @@ surfaces. External tools like egg-qtess, however, may respect them.
These define the number of subdivisions to make in the U and V
directions to represent the surface. A uniform subdivision is
always made, and trim curves are not respected (though they will
be drawn in if the trim curves themselves also have a subiv
be drawn in if the trim curves themselves also have a subdiv
parameter). This is only intended as a cheesy visualization.
@ -1194,7 +1195,7 @@ surfaces. External tools like egg-qtess, however, may respect them.
Although the egg syntax supports trim curves, there are at present
no egg processing tools that respect them. For instance, egg-qtess
ignores trim curves and always tesselates the entire NURBS surface.
ignores trim curves and always tessellates the entire NURBS surface.
MORPH DESCRIPTION ENTRIES
@ -1310,6 +1311,15 @@ GROUPING ENTRIES
vertices; joints and morphs appearing outside of a hierarchy
identified with a <Dart> flag are undefined.
<Dart> { structured }
This is an optional alternative for the <Dart> flag.
By default, Panda will collapse all of the geometry in a group (with the <Dart> { 1 } flag)
a single node. While this is optimal for conditions such as characters moving around
a scene, it may be suboptimal for larger or more complex characters.
This entry is typically generated by the egg-optchar program with the "-dart structured" flag.
<Dart> { structured } implies <Dart> { 1 }.
<Switch> { boolean-value }
This attribute indicates that the child nodes of this group
@ -1619,7 +1629,8 @@ GROUPING ENTRIES
There may also be additional predefined egg object types not
listed here; see the *.pp files that are installed into the etc
directory for a complete list.
directory for a complete list. Additionally, you can reference
the file located in $PANDA/src/doc/howto.MultiGenModelFlags
<Transform> { transform-definition }
@ -1746,8 +1757,8 @@ GROUPING ENTRIES
and it may contain other joints.
A tree of <Joint> nodes only makes sense within a character
definition, which is created by applying the <DART> flag to a group.
See <DART>, above.
definition, which is created by applying the <Dart> flag to a group.
See <Dart>, above.
The vertex assignment is crucial. This is how the geometry of a
character is made to move with the joints. The character's geometry
@ -1913,6 +1924,10 @@ ANIMATION STRUCTURE
animated model description. Without the <Dart> flag, joints will be
treated as ordinary groups, and morphs will be ignored.
It is important to note that utilizing <Dart> { 1 } will collapse all of the
model's geometry into a single node. To omit this, use <Dart> { structured } instead.
(See <Dart> above.)
In the above, UPPERCASE NAMES represent an arbitrary name that you
may choose. The name of the enclosing group, CHARACTER_NAME, is
taken as the name of the animated model. It should generally match