Skip to content
Permalink
master
Switch branches/tags
Go to file
instead of the geometry shader - for e.g. rendering adjacency buffers
without an geometry shader attached.

patch based on
https://forums.ogre3d.org/viewtopic.php?f=4&t=94417#p542277
2 contributors

Users who have contributed to this file

@sinbad @paroj
<!ELEMENT mesh (sharedgeometry?, submeshes,
skeletonlink?, boneassignments?, levelofdetail?, submeshnames?, poses?, animations?, extremes?)>
<!ELEMENT sharedgeometry (vertexbuffer+)>
<!ATTLIST sharedgeometry
vertexcount CDATA #REQUIRED>
<!ELEMENT submeshes (submesh+)>
<!ELEMENT submesh (textures?,faces,geometry?,boneassignments?)>
<!ATTLIST submesh
material CDATA #REQUIRED
usesharedvertices (true|false) "true"
use32bitindexes (true|false) "false"
operationtype (line_list|line_strip|point_list|triangle_list|triangle_strip|triangle_fan|line_list_adj|line_strip_adj|triangle_list_adj|triangle_strip_adj) "triangle_list">
<!ELEMENT textures (texture+)>
<!ELEMENT texture EMPTY>
<!ATTLIST texture
alias CDATA #REQUIRED
name CDATA #REQUIRED>
<!ELEMENT faces (face+)>
<!ATTLIST faces
count CDATA #IMPLIED>
<!ELEMENT face EMPTY>
<!-- Do not need all 3 vertex indexes if triangle_strip or triangle_fan
since every face after the first one is defined by a single vertex -->
<!ATTLIST face
v1 CDATA #REQUIRED
v2 CDATA #IMPLIED
v3 CDATA #IMPLIED>
<!ELEMENT geometry (vertexbuffer+)>
<!ATTLIST geometry
vertexcount CDATA #IMPLIED >
<!ELEMENT skeletonlink EMPTY>
<!ATTLIST skeletonlink
name CDATA #REQUIRED>
<!ELEMENT boneassignments (vertexboneassignment+)>
<!ELEMENT vertexboneassignment EMPTY>
<!ATTLIST vertexboneassignment
vertexindex CDATA #REQUIRED
boneindex CDATA #REQUIRED
weight CDATA "1.0">
<!ELEMENT levelofdetail ( (lodmanual|lodgenerated)+ )>
<!ATTLIST levelofdetail
strategy CDATA "Distance"
numlevels CDATA #REQUIRED
manual (true|false) "false">
<!ELEMENT lodmanual EMPTY>
<!-- 'value' in lodmanual and lodgenerated is a distance (unsquared) or other LOD metric depending on stragegy -->
<!ATTLIST lodmanual
value CDATA #REQUIRED
meshname CDATA #REQUIRED>
<!ELEMENT lodgenerated (lodfacelist)>
<!ATTLIST lodgenerated
value CDATA #REQUIRED
meshname CDATA #REQUIRED>
<!ELEMENT lodfacelist (face)+>
<!ATTLIST lodfacelist
submeshindex CDATA #REQUIRED
numfaces CDATA #REQUIRED>
<!ELEMENT vertexbuffer (vertex+)>
<!ATTLIST vertexbuffer
positions (true|false) "false"
normals (true|false) "false"
colours_diffuse (true|false) "false"
colours_specular (true|false) "false"
texture_coords (0|1|2|3|4|5|6|7|8) "0"
texture_coord_dimensions_0 (1|2|3|4|float1|float2|float3|float4|short1|short2|short3|short4|ubyte4|colour|colour_argb|colour_abgr) "2"
texture_coord_dimensions_1 (1|2|3|4|float1|float2|float3|float4|short1|short2|short3|short4|ubyte4|colour|colour_argb|colour_abgr) "2"
texture_coord_dimensions_2 (1|2|3|4|float1|float2|float3|float4|short1|short2|short3|short4|ubyte4|colour|colour_argb|colour_abgr) "2"
texture_coord_dimensions_3 (1|2|3|4|float1|float2|float3|float4|short1|short2|short3|short4|ubyte4|colour|colour_argb|colour_abgr) "2"
texture_coord_dimensions_4 (1|2|3|4|float1|float2|float3|float4|short1|short2|short3|short4|ubyte4|colour|colour_argb|colour_abgr) "2"
texture_coord_dimensions_5 (1|2|3|4|float1|float2|float3|float4|short1|short2|short3|short4|ubyte4|colour|colour_argb|colour_abgr) "2"
texture_coord_dimensions_6 (1|2|3|4|float1|float2|float3|float4|short1|short2|short3|short4|ubyte4|colour|colour_argb|colour_abgr) "2"
texture_coord_dimensions_7 (1|2|3|4|float1|float2|float3|float4|short1|short2|short3|short4|ubyte4|colour|colour_argb|colour_abgr) "2"
tangents (true|false) "false"
tangent_dimensions (3|4) "3"
binormals (true|false) "false">
<!ELEMENT vertex (position?, normal?, tangent?, binormal?, colour_diffuse?, colour_specular?,
texcoord*)>
<!ELEMENT position EMPTY>
<!ATTLIST position
x CDATA #REQUIRED
y CDATA #REQUIRED
z CDATA #REQUIRED >
<!ELEMENT normal EMPTY>
<!ATTLIST normal
x CDATA #REQUIRED
y CDATA #REQUIRED
z CDATA #REQUIRED >
<!ELEMENT tangent EMPTY>
<!ATTLIST tangent
x CDATA #REQUIRED
y CDATA #REQUIRED
z CDATA #REQUIRED
w CDATA "1">
<!ELEMENT binormal EMPTY>
<!ATTLIST binormal
x CDATA #REQUIRED
y CDATA #REQUIRED
z CDATA #REQUIRED >
<!ELEMENT colour_diffuse EMPTY>
<!-- 'value' is a space-separated string containing r,g,b and optionally alpha
for example value="1.0 0.0 0.0 0.5" or value="0.7 0.5 0.2" -->
<!ATTLIST colour_diffuse
value CDATA #REQUIRED>
<!ELEMENT colour_specular EMPTY>
<!-- 'value' is a space-separated string containing r,g,b and optionally alpha
for example value="1.0 0.0 0.0 0.5" or value="0.7 0.5 0.2" -->
<!ATTLIST colour_specular
value CDATA #REQUIRED>
<!ELEMENT texcoord EMPTY>
<!ATTLIST texcoord
u CDATA #REQUIRED
v CDATA "0"
w CDATA "0"
x CDATA "0" >
<!ELEMENT submeshnames (submeshname+)>
<!ELEMENT submeshname EMPTY>
<!ATTLIST submeshname
name CDATA #REQUIRED
index CDATA #REQUIRED >
<!ELEMENT poses (pose+)>
<!-- A single pose references a single set of geometry data with a set of offsets.
If target is 'mesh', targets the shared geometry, if target is submesh, targets
the submesh identified by 'index'.
-->
<!ELEMENT pose (poseoffset+) >
<!ATTLIST pose
target (mesh|submesh) #REQUIRED
index CDATA "0"
name CDATA "">
<!-- poseoffset lists the vertices that change position, and by how much
& also optionally an absolute normal -->
<!ELEMENT poseoffset EMPTY>
<!ATTLIST poseoffset
index CDATA #REQUIRED
x CDATA #REQUIRED
y CDATA #REQUIRED
z CDATA #REQUIRED
nx CDATA ""
ny CDATA ""
nz CDATA ""
>
<!ELEMENT animations (animation+)>
<!ELEMENT animation (baseinfo?, tracks)>
<!ATTLIST animation
name CDATA #REQUIRED
length CDATA #REQUIRED >
<!ELEMENT baseinfo EMPTY>
<!ATTLIST baseinfo
baseanimationname CDATA #REQUIRED
basekeyframetime CDATA #REQUIRED>
<!ELEMENT tracks (track+)>
<!ELEMENT track (keyframes)>
<!-- Morph animation is a keyframed set of absolute vertex positions/normals. Cannot
be blended with other morph animations or pose animation.
Pose animation is a set of keyframes referencing poses and a weight,
with one track per set of vertex data.
Can be blended with other poses but not with morph animation.
If target is 'mesh', targets the shared geometry, if target is submesh, targets
the submesh identified by 'index'.
-->
<!ATTLIST track
target (mesh|submesh) #REQUIRED
index CDATA "0"
type (morph|pose) #REQUIRED>
<!-- keyframes are applicable for all tracks, but for morph tracks
they contain positions, and for pose tracks they contain pose references -->
<!ELEMENT keyframes (keyframe*)>
<!ELEMENT keyframe ((position|(position,normal))*, poseref*)>
<!ATTLIST keyframe
time CDATA #REQUIRED >
<!-- Pose reference, links to pose via numeric index. target of parent track
must agree with target of referenced pose. For a single track, each
keyframe can reference multiple poses at different weights. -->
<!ELEMENT poseref EMPTY>
<!ATTLIST poseref
poseindex CDATA #REQUIRED
influence CDATA "1.0">
<!-- Optional extremity points on submeshes for sub-object transparency sorting -->
<!ELEMENT extremes (submesh_extremes+)>
<!ELEMENT submesh_extremes (position+)>
<!ATTLIST submesh_extremes
index CDATA #REQUIRED>