1
<?xml version="1.0" encoding="utf-8"?>
2
<xs:schema xmlns="http://www.collada.org/2005/11/COLLADASchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.collada.org/2005/11/COLLADASchema" elementFormDefault="qualified" version="1.4.1" xml:lang="EN" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd">
3
<!-- BEGIN COLLADA Format Schema -->
7
Version 1.4.1 (June 23, 2006)
9
Copyright (C) 2005, 2006 The Khronos Group Inc., Sony Computer Entertainment Inc.
12
Khronos is a trademark of The Khronos Group Inc.
13
COLLADA is a trademark of Sony Computer Entertainment Inc. used by permission by Khronos.
15
Note that this software document is distributed on an "AS IS" basis, with ALL EXPRESS AND
16
IMPLIED WARRANTIES AND CONDITIONS DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
17
WARRANTIES AND CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR
18
PURPOSE, AND NON-INFRINGEMENT.
21
<!-- import needed for xml:base attribute-->
23
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
25
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
27
<xs:element name="COLLADA">
29
<xs:appinfo>enable-xmlns</xs:appinfo>
31
The COLLADA element declares the root of the document that comprises some of the content
32
in the COLLADA schema.
37
<xs:element ref="asset">
40
The COLLADA element must contain an asset element.
44
<xs:choice minOccurs="0" maxOccurs="unbounded">
45
<xs:element ref="library_animations">
48
The COLLADA element may contain any number of library_animations elements.
52
<xs:element ref="library_animation_clips">
55
The COLLADA element may contain any number of library_animation_clips elements.
59
<xs:element ref="library_cameras">
62
The COLLADA element may contain any number of library_cameras elements.
66
<xs:element ref="library_controllers">
69
The COLLADA element may contain any number of library_controllerss elements.
73
<xs:element ref="library_geometries">
76
The COLLADA element may contain any number of library_geometriess elements.
80
<xs:element ref="library_effects">
83
The COLLADA element may contain any number of library_effects elements.
87
<xs:element ref="library_force_fields">
90
The COLLADA element may contain any number of library_force_fields elements.
94
<xs:element ref="library_images">
97
The COLLADA element may contain any number of library_images elements.
101
<xs:element ref="library_lights">
104
The COLLADA element may contain any number of library_lights elements.
108
<xs:element ref="library_materials">
111
The COLLADA element may contain any number of library_materials elements.
115
<xs:element ref="library_nodes">
118
The COLLADA element may contain any number of library_nodes elements.
122
<xs:element ref="library_physics_materials">
125
The COLLADA element may contain any number of library_materials elements.
129
<xs:element ref="library_physics_models">
132
The COLLADA element may contain any number of library_physics_models elements.
136
<xs:element ref="library_physics_scenes">
139
The COLLADA element may contain any number of library_physics_scenes elements.
143
<xs:element ref="library_visual_scenes">
146
The COLLADA element may contain any number of library_visual_scenes elements.
151
<xs:element name="scene" minOccurs="0">
154
The scene embodies the entire set of information that can be visualized from the
155
contents of a COLLADA resource. The scene element declares the base of the scene
156
hierarchy or scene graph. The scene contains elements that comprise much of the
157
visual and transformational information content as created by the authoring tools.
162
<xs:element name="instance_physics_scene" type="InstanceWithExtra" minOccurs="0" maxOccurs="unbounded">
165
The instance_physics_scene element declares the instantiation of a COLLADA physics_scene resource.
166
The instance_physics_scene element may appear any number of times.
170
<xs:element name="instance_visual_scene" type="InstanceWithExtra" minOccurs="0">
173
The instance_visual_scene element declares the instantiation of a COLLADA visual_scene resource.
174
The instance_visual_scene element may only appear once.
178
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
181
The extra element may appear any number of times.
188
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
191
The extra element may appear any number of times.
196
<xs:attribute name="version" type="VersionType" use="required">
199
The version attribute is the COLLADA schema revision with which the instance document
200
conforms. Required Attribute.
204
<xs:attribute ref="xml:base">
207
The xml:base attribute allows you to define the base URI for this COLLADA document. See
208
http://www.w3.org/TR/xmlbase/ for more information.
214
<!-- Simple Types -->
215
<!-- Primitive Types -->
216
<xs:simpleType name="bool">
217
<xs:restriction base="xs:boolean"/>
219
<xs:simpleType name="dateTime">
220
<xs:restriction base="xs:dateTime"/>
222
<xs:simpleType name="float">
223
<xs:restriction base="xs:double"/>
225
<xs:simpleType name="int">
226
<xs:restriction base="xs:long"/>
228
<xs:simpleType name="Name">
229
<xs:restriction base="xs:Name"/>
231
<xs:simpleType name="string">
232
<xs:restriction base="xs:string"/>
234
<xs:simpleType name="token">
235
<xs:restriction base="xs:token"/>
237
<xs:simpleType name="uint">
238
<xs:restriction base="xs:unsignedLong"/>
240
<!-- Container Types -->
241
<xs:simpleType name="ListOfBools">
242
<xs:list itemType="bool"/>
244
<xs:simpleType name="ListOfFloats">
245
<xs:list itemType="float"/>
247
<xs:simpleType name="ListOfHexBinary">
248
<xs:list itemType="xs:hexBinary"/>
250
<xs:simpleType name="ListOfInts">
251
<xs:list itemType="int"/>
253
<xs:simpleType name="ListOfNames">
254
<xs:list itemType="Name"/>
256
<xs:simpleType name="ListOfTokens">
257
<xs:list itemType="token"/>
259
<xs:simpleType name="ListOfUInts">
260
<xs:list itemType="uint"/>
262
<!-- Aggregate Types -->
263
<xs:simpleType name="bool2">
264
<xs:restriction base="ListOfBools">
265
<xs:minLength value="2"/>
266
<xs:maxLength value="2"/>
269
<xs:simpleType name="bool3">
270
<xs:restriction base="ListOfBools">
271
<xs:minLength value="3"/>
272
<xs:maxLength value="3"/>
275
<xs:simpleType name="bool4">
276
<xs:restriction base="ListOfBools">
277
<xs:minLength value="4"/>
278
<xs:maxLength value="4"/>
281
<xs:simpleType name="float2">
282
<xs:restriction base="ListOfFloats">
283
<xs:minLength value="2"/>
284
<xs:maxLength value="2"/>
287
<xs:simpleType name="float3">
288
<xs:restriction base="ListOfFloats">
289
<xs:minLength value="3"/>
290
<xs:maxLength value="3"/>
293
<xs:simpleType name="float4">
294
<xs:restriction base="ListOfFloats">
295
<xs:minLength value="4"/>
296
<xs:maxLength value="4"/>
299
<xs:simpleType name="float7">
300
<xs:restriction base="ListOfFloats">
301
<xs:minLength value="7"/>
302
<xs:maxLength value="7"/>
305
<xs:simpleType name="float2x2">
306
<xs:restriction base="ListOfFloats">
307
<xs:minLength value="4"/>
308
<xs:maxLength value="4"/>
311
<xs:simpleType name="float3x3">
312
<xs:restriction base="ListOfFloats">
313
<xs:minLength value="9"/>
314
<xs:maxLength value="9"/>
317
<xs:simpleType name="float4x4">
318
<xs:restriction base="ListOfFloats">
319
<xs:minLength value="16"/>
320
<xs:maxLength value="16"/>
323
<xs:simpleType name="float2x3">
324
<xs:restriction base="ListOfFloats">
325
<xs:minLength value="6"/>
326
<xs:maxLength value="6"/>
329
<xs:simpleType name="float2x4">
330
<xs:restriction base="ListOfFloats">
331
<xs:minLength value="8"/>
332
<xs:maxLength value="8"/>
335
<xs:simpleType name="float3x2">
336
<xs:restriction base="ListOfFloats">
337
<xs:minLength value="6"/>
338
<xs:maxLength value="6"/>
341
<xs:simpleType name="float3x4">
342
<xs:restriction base="ListOfFloats">
343
<xs:minLength value="12"/>
344
<xs:maxLength value="12"/>
347
<xs:simpleType name="float4x2">
348
<xs:restriction base="ListOfFloats">
349
<xs:minLength value="8"/>
350
<xs:maxLength value="8"/>
353
<xs:simpleType name="float4x3">
354
<xs:restriction base="ListOfFloats">
355
<xs:minLength value="12"/>
356
<xs:maxLength value="12"/>
359
<xs:simpleType name="int2">
360
<xs:restriction base="ListOfInts">
361
<xs:minLength value="2"/>
362
<xs:maxLength value="2"/>
365
<xs:simpleType name="int3">
366
<xs:restriction base="ListOfInts">
367
<xs:minLength value="3"/>
368
<xs:maxLength value="3"/>
371
<xs:simpleType name="int4">
372
<xs:restriction base="ListOfInts">
373
<xs:minLength value="4"/>
374
<xs:maxLength value="4"/>
377
<xs:simpleType name="int2x2">
378
<xs:restriction base="ListOfInts">
379
<xs:minLength value="4"/>
380
<xs:maxLength value="4"/>
383
<xs:simpleType name="int3x3">
384
<xs:restriction base="ListOfInts">
385
<xs:minLength value="9"/>
386
<xs:maxLength value="9"/>
389
<xs:simpleType name="int4x4">
390
<xs:restriction base="ListOfInts">
391
<xs:minLength value="16"/>
392
<xs:maxLength value="16"/>
395
<!-- Basic Enumerations -->
396
<xs:simpleType name="MorphMethodType">
399
An enumuerated type specifying the acceptable morph methods.
402
<xs:restriction base="xs:string">
403
<xs:enumeration value="NORMALIZED"/>
404
<xs:enumeration value="RELATIVE"/>
407
<xs:simpleType name="NodeType">
410
An enumerated type specifying the acceptable node types.
413
<xs:restriction base="xs:string">
414
<xs:enumeration value="JOINT"/>
415
<xs:enumeration value="NODE"/>
418
<xs:simpleType name="URIFragmentType">
421
This type is used for URI reference which can only reference a resource declared within it's same document.
424
<xs:restriction base="xs:string">
425
<xs:pattern value="(#(.*))"/>
428
<xs:simpleType name="UpAxisType">
431
An enumerated type specifying the acceptable up-axis values.
434
<xs:restriction base="xs:string">
435
<xs:enumeration value="X_UP"/>
436
<xs:enumeration value="Y_UP"/>
437
<xs:enumeration value="Z_UP"/>
440
<xs:simpleType name="VersionType">
443
An enumerated type specifying the acceptable document versions.
446
<xs:restriction base="xs:string">
447
<xs:enumeration value="1.4.0"/>
448
<xs:enumeration value="1.4.1"/>
451
<!-- Complex Types -->
452
<xs:complexType name="InputGlobal">
455
The InputGlobal type is used to represent inputs that can reference external resources.
458
<xs:attribute name="semantic" type="xs:NMTOKEN" use="required">
461
The semantic attribute is the user-defined meaning of the input connection. Required attribute.
465
<xs:attribute name="source" type="xs:anyURI" use="required">
468
The source attribute indicates the location of the data source. Required attribute.
473
<xs:complexType name="InputLocal">
476
The InputLocal type is used to represent inputs that can only reference resources declared in the same document.
479
<xs:attribute name="semantic" type="xs:NMTOKEN" use="required">
482
The semantic attribute is the user-defined meaning of the input connection. Required attribute.
486
<xs:attribute name="source" type="URIFragmentType" use="required">
489
The source attribute indicates the location of the data source. Required attribute.
494
<xs:complexType name="InputLocalOffset">
497
The InputLocalOffset type is used to represent indexed inputs that can only reference resources declared in the same document.
500
<xs:attribute name="offset" type="uint" use="required">
503
The offset attribute represents the offset into the list of indices. If two input elements share
504
the same offset, they will be indexed the same. This works as a simple form of compression for the
505
list of indices as well as defining the order the inputs should be used in. Required attribute.
509
<xs:attribute name="semantic" type="xs:NMTOKEN" use="required">
512
The semantic attribute is the user-defined meaning of the input connection. Required attribute.
516
<xs:attribute name="source" type="URIFragmentType" use="required">
519
The source attribute indicates the location of the data source. Required attribute.
523
<xs:attribute name="set" type="uint">
526
The set attribute indicates which inputs should be grouped together as a single set. This is helpful
527
when multiple inputs share the same semantics.
532
<xs:complexType name="InstanceWithExtra">
535
The InstanceWithExtra type is used for all generic instance elements. A generic instance element
536
is one which does not have any specific child elements declared.
540
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
543
The extra element may occur any number of times.
548
<xs:attribute name="url" type="xs:anyURI" use="required">
551
The url attribute refers to resource to instantiate. This may refer to a local resource using a
552
relative URL fragment identifier that begins with the ā#ā character. The url attribute may refer
553
to an external resource using an absolute or relative URL.
557
<xs:attribute name="sid" type="xs:NCName">
560
The sid attribute is a text string value containing the sub-identifier of this element. This
561
value must be unique within the scope of the parent element. Optional attribute.
565
<xs:attribute name="name" type="xs:NCName">
568
The name attribute is the text string name of this element. Optional attribute.
573
<xs:complexType name="TargetableFloat">
576
The TargetableFloat type is used to represent elements which contain a single float value which can
577
be targeted for animation.
581
<xs:extension base="float">
582
<xs:attribute name="sid" type="xs:NCName">
585
The sid attribute is a text string value containing the sub-identifier of this element. This
586
value must be unique within the scope of the parent element. Optional attribute.
593
<xs:complexType name="TargetableFloat3">
596
The TargetableFloat3 type is used to represent elements which contain a float3 value which can
597
be targeted for animation.
601
<xs:extension base="float3">
602
<xs:attribute name="sid" type="xs:NCName">
605
The sid attribute is a text string value containing the sub-identifier of this element.
606
This value must be unique within the scope of the parent element. Optional attribute.
613
<!--Typed Array Elements-->
614
<xs:element name="IDREF_array">
617
The IDREF_array element declares the storage for a homogenous array of ID reference values.
622
<xs:extension base="xs:IDREFS">
623
<xs:attribute name="id" type="xs:ID">
626
The id attribute is a text string containing the unique identifier of this element. This value
627
must be unique within the instance document. Optional attribute.
631
<xs:attribute name="name" type="xs:NCName">
634
The name attribute is the text string name of this element. Optional attribute.
638
<xs:attribute name="count" type="uint" use="required">
641
The count attribute indicates the number of values in the array. Required attribute.
649
<xs:element name="Name_array">
652
The Name_array element declares the storage for a homogenous array of Name string values.
657
<xs:extension base="ListOfNames">
658
<xs:attribute name="id" type="xs:ID">
661
The id attribute is a text string containing the unique identifier of this element.
662
This value must be unique within the instance document. Optional attribute.
666
<xs:attribute name="name" type="xs:NCName">
669
The name attribute is the text string name of this element. Optional attribute.
673
<xs:attribute name="count" type="uint" use="required">
676
The count attribute indicates the number of values in the array. Required attribute.
684
<xs:element name="bool_array">
687
The bool_array element declares the storage for a homogenous array of boolean values.
692
<xs:extension base="ListOfBools">
693
<xs:attribute name="id" type="xs:ID">
696
The id attribute is a text string containing the unique identifier of this element.
697
This value must be unique within the instance document. Optional attribute.
701
<xs:attribute name="name" type="xs:NCName">
704
The name attribute is the text string name of this element. Optional attribute.
708
<xs:attribute name="count" type="uint" use="required">
711
The count attribute indicates the number of values in the array. Required attribute.
719
<xs:element name="float_array">
722
The float_array element declares the storage for a homogenous array of floating point values.
727
<xs:extension base="ListOfFloats">
728
<xs:attribute name="id" type="xs:ID">
731
The id attribute is a text string containing the unique identifier of this element. This value
732
must be unique within the instance document. Optional attribute.
736
<xs:attribute name="name" type="xs:NCName">
739
The name attribute is the text string name of this element. Optional attribute.
743
<xs:attribute name="count" type="uint" use="required">
746
The count attribute indicates the number of values in the array. Required attribute.
750
<xs:attribute name="digits" type="xs:short" default="6">
753
The digits attribute indicates the number of significant decimal digits of the float values that
754
can be contained in the array. The default value is 6. Optional attribute.
758
<xs:attribute name="magnitude" type="xs:short" default="38">
761
The magnitude attribute indicates the largest exponent of the float values that can be contained
762
in the array. The default value is 38. Optional attribute.
770
<xs:element name="int_array">
773
The int_array element declares the storage for a homogenous array of integer values.
778
<xs:extension base="ListOfInts">
779
<xs:attribute name="id" type="xs:ID">
782
The id attribute is a text string containing the unique identifier of this element.
783
This value must be unique within the instance document. Optional attribute.
787
<xs:attribute name="name" type="xs:NCName">
790
The name attribute is the text string name of this element. Optional attribute.
794
<xs:attribute name="count" type="uint" use="required">
797
The count attribute indicates the number of values in the array. Required attribute.
801
<xs:attribute name="minInclusive" type="xs:integer" default="-2147483648">
804
The minInclusive attribute indicates the smallest integer value that can be contained in
805
the array. The default value is ā2147483648. Optional attribute.
809
<xs:attribute name="maxInclusive" type="xs:integer" default="2147483647">
812
The maxInclusive attribute indicates the largest integer value that can be contained in
813
the array. The default value is 2147483647. Optional attribute.
821
<!-- Dataflow Elements -->
822
<xs:element name="accessor">
825
The accessor element declares an access pattern to one of the array elements: float_array,
826
int_array, Name_array, bool_array, and IDREF_array. The accessor element describes access
827
to arrays that are organized in either an interleaved or non-interleaved manner, depending
828
on the offset and stride attributes.
833
<xs:element ref="param" minOccurs="0" maxOccurs="unbounded">
836
The accessor element may have any number of param elements.
841
<xs:attribute name="count" type="uint" use="required">
844
The count attribute indicates the number of times the array is accessed. Required attribute.
848
<xs:attribute name="offset" type="uint" default="0">
851
The offset attribute indicates the index of the first value to be read from the array.
852
The default value is 0. Optional attribute.
856
<xs:attribute name="source" type="xs:anyURI">
859
The source attribute indicates the location of the array to access using a URL expression. Required attribute.
863
<xs:attribute name="stride" type="uint" default="1">
866
The stride attribute indicates number of values to be considered a unit during each access to
867
the array. The default value is 1, indicating that a single value is accessed. Optional attribute.
873
<xs:element name="param">
876
The param element declares parametric information regarding its parent element.
881
<xs:extension base="xs:string">
882
<xs:attribute name="name" type="xs:NCName">
885
The name attribute is the text string name of this element. Optional attribute.
889
<xs:attribute name="sid" type="xs:NCName">
892
The sid attribute is a text string value containing the sub-identifier of this element.
893
This value must be unique within the scope of the parent element. Optional attribute.
897
<xs:attribute name="semantic" type="xs:NMTOKEN">
900
The semantic attribute is the user-defined meaning of the parameter. Optional attribute.
904
<xs:attribute name="type" type="xs:NMTOKEN" use="required">
907
The type attribute indicates the type of the value data. This text string must be understood
908
by the application. Required attribute.
916
<xs:element name="source">
919
The source element declares a data repository that provides values according to the semantics of an
920
input element that refers to it.
925
<xs:element ref="asset" minOccurs="0">
928
The source element may contain an asset element.
932
<xs:choice minOccurs="0">
933
<xs:element ref="IDREF_array">
936
The source element may contain an IDREF_array.
940
<xs:element ref="Name_array">
943
The source element may contain a Name_array.
947
<xs:element ref="bool_array">
950
The source element may contain a bool_array.
954
<xs:element ref="float_array">
957
The source element may contain a float_array.
961
<xs:element ref="int_array">
964
The source element may contain an int_array.
969
<xs:element name="technique_common" minOccurs="0">
972
The technique common specifies the common method for accessing this source element's data.
977
<xs:element ref="accessor">
980
The source's technique_common must have one and only one accessor.
987
<xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
990
This element may contain any number of non-common profile techniques.
995
<xs:attribute name="id" type="xs:ID" use="required">
998
The id attribute is a text string containing the unique identifier of this element.
999
This value must be unique within the instance document. Required attribute.
1003
<xs:attribute name="name" type="xs:NCName">
1006
The name attribute is the text string name of this element. Optional attribute.
1012
<!-- Geometry Elements -->
1013
<xs:element name="geometry">
1016
Geometry describes the visual shape and appearance of an object in the scene.
1017
The geometry element categorizes the declaration of geometric information. Geometry is a
1018
branch of mathematics that deals with the measurement, properties, and relationships of
1019
points, lines, angles, surfaces, and solids.
1024
<xs:element ref="asset" minOccurs="0">
1027
The geometry element may contain an asset element.
1032
<xs:element ref="convex_mesh">
1035
The geometry element may contain only one mesh or convex_mesh.
1039
<xs:element ref="mesh">
1042
The geometry element may contain only one mesh or convex_mesh.
1046
<xs:element ref="spline"/>
1048
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
1051
The extra element may appear any number of times.
1056
<xs:attribute name="id" type="xs:ID">
1059
The id attribute is a text string containing the unique identifier of this element.
1060
This value must be unique within the instance document. Optional attribute.
1064
<xs:attribute name="name" type="xs:NCName">
1067
The name attribute is the text string name of this element. Optional attribute.
1073
<xs:element name="mesh">
1076
The mesh element contains vertex and primitive information sufficient to describe basic geometric meshes.
1081
<xs:element ref="source" maxOccurs="unbounded">
1084
The mesh element must contain one or more source elements.
1088
<xs:element ref="vertices">
1091
The mesh element must contain one vertices element.
1095
<xs:choice minOccurs="0" maxOccurs="unbounded">
1096
<xs:element ref="lines">
1099
The mesh element may contain any number of lines elements.
1103
<xs:element ref="linestrips">
1106
The mesh element may contain any number of linestrips elements.
1110
<xs:element ref="polygons">
1113
The mesh element may contain any number of polygons elements.
1117
<xs:element ref="polylist">
1120
The mesh element may contain any number of polylist elements.
1124
<xs:element ref="triangles">
1127
The mesh element may contain any number of triangles elements.
1131
<xs:element ref="trifans">
1134
The mesh element may contain any number of trifans elements.
1138
<xs:element ref="tristrips">
1141
The mesh element may contain any number of tristrips elements.
1146
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
1149
The extra element may appear any number of times.
1156
<xs:element name="spline">
1159
The spline element contains control vertex information sufficient to describe basic splines.
1164
<xs:element ref="source" maxOccurs="unbounded">
1167
The mesh element must contain one or more source elements.
1171
<xs:element name="control_vertices">
1173
<xs:documentation>The control vertices element must occur exactly one time. It is used to describe the CVs of the spline.</xs:documentation>
1177
<xs:element name="input" type="InputLocal" maxOccurs="unbounded">
1180
The input element must occur at least one time. These inputs are local inputs.
1184
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
1187
The extra element may appear any number of times.
1194
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
1197
The extra element may appear any number of times.
1202
<xs:attribute name="closed" type="bool" default="false"/>
1205
<!-- Collation Elements -->
1206
<xs:element name="p" type="ListOfUInts">
1209
The p element represents primitive data for the primitive types (lines, linestrips, polygons,
1210
polylist, triangles, trifans, tristrips). The p element contains indices that reference into
1211
the parent's source elements referenced by the input elements.
1215
<xs:element name="lines">
1218
The lines element provides the information needed to bind vertex attributes together and then
1219
organize those vertices into individual lines. Each line described by the mesh has two vertices.
1220
The first line is formed from first and second vertices. The second line is formed from the
1221
third and fourth vertices and so on.
1226
<xs:element name="input" type="InputLocalOffset" minOccurs="0" maxOccurs="unbounded">
1229
The input element may occur any number of times. This input is a local input with the offset
1234
<xs:element ref="p" minOccurs="0">
1237
The p element may occur once.
1241
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
1244
The extra element may appear any number of times.
1249
<xs:attribute name="name" type="xs:NCName">
1252
The name attribute is the text string name of this element. Optional attribute.
1256
<xs:attribute name="count" type="uint" use="required">
1259
The count attribute indicates the number of line primitives. Required attribute.
1263
<xs:attribute name="material" type="xs:NCName">
1266
The material attribute declares a symbol for a material. This symbol is bound to a material at
1267
the time of instantiation. If the material attribute is not specified then the lighting and
1268
shading results are application defined. Optional attribute.
1274
<xs:element name="linestrips">
1277
The linestrips element provides the information needed to bind vertex attributes together and
1278
then organize those vertices into connected line-strips. Each line-strip described by the mesh
1279
has an arbitrary number of vertices. Each line segment within the line-strip is formed from the
1280
current vertex and the preceding vertex.
1285
<xs:element name="input" type="InputLocalOffset" minOccurs="0" maxOccurs="unbounded">
1288
The input element may occur any number of times. This input is a local input with the offset
1293
<xs:element ref="p" minOccurs="0" maxOccurs="unbounded">
1296
The linestrips element may have any number of p elements.
1300
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
1303
The extra element may appear any number of times.
1308
<xs:attribute name="name" type="xs:NCName">
1311
The name attribute is the text string name of this element. Optional attribute.
1315
<xs:attribute name="count" type="uint" use="required">
1318
The count attribute indicates the number of linestrip primitives. Required attribute.
1322
<xs:attribute name="material" type="xs:NCName">
1325
The material attribute declares a symbol for a material. This symbol is bound to a material
1326
at the time of instantiation. If the material attribute is not specified then the lighting
1327
and shading results are application defined. Optional attribute.
1333
<xs:element name="polygons">
1336
The polygons element provides the information needed to bind vertex attributes together and
1337
then organize those vertices into individual polygons. The polygons described can contain
1338
arbitrary numbers of vertices. These polygons may be self intersecting and may also contain holes.
1343
<xs:element name="input" type="InputLocalOffset" minOccurs="0" maxOccurs="unbounded">
1346
The input element may occur any number of times. This input is a local input with the
1347
offset and set attributes.
1351
<xs:choice minOccurs="0" maxOccurs="unbounded">
1352
<xs:element ref="p">
1355
The p element may occur any number of times.
1359
<xs:element name="ph">
1362
The ph element descripes a polygon with holes.
1367
<xs:element ref="p">
1370
Theere may only be one p element.
1374
<xs:element name="h" type="ListOfUInts" maxOccurs="unbounded">
1377
The h element represents a hole in the polygon specified. There must be at least one h element.
1385
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
1388
The extra element may appear any number of times.
1393
<xs:attribute name="name" type="xs:NCName">
1396
The name attribute is the text string name of this element. Optional attribute.
1400
<xs:attribute name="count" type="uint" use="required">
1403
The count attribute indicates the number of polygon primitives. Required attribute.
1407
<xs:attribute name="material" type="xs:NCName">
1410
The material attribute declares a symbol for a material. This symbol is bound to a material
1411
at the time of instantiation. If the material attribute is not specified then the lighting
1412
and shading results are application defined. Optional attribute.
1418
<xs:element name="polylist">
1421
The polylist element provides the information needed to bind vertex attributes together and
1422
then organize those vertices into individual polygons. The polygons described in polylist can
1423
contain arbitrary numbers of vertices. Unlike the polygons element, the polylist element cannot
1424
contain polygons with holes.
1429
<xs:element name="input" type="InputLocalOffset" minOccurs="0" maxOccurs="unbounded">
1432
The input element may occur any number of times. This input is a local input with the
1433
offset and set attributes.
1437
<xs:element name="vcount" type="ListOfUInts" minOccurs="0">
1440
The vcount element contains a list of integers describing the number of sides for each polygon
1441
described by the polylist element. The vcount element may occur once.
1445
<xs:element ref="p" minOccurs="0">
1448
The p element may occur once.
1452
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
1455
The extra element may appear any number of times.
1460
<xs:attribute name="name" type="xs:NCName">
1463
The name attribute is the text string name of this element. Optional attribute.
1467
<xs:attribute name="count" type="uint" use="required">
1470
The count attribute indicates the number of polygon primitives. Required attribute.
1474
<xs:attribute name="material" type="xs:NCName">
1477
The material attribute declares a symbol for a material. This symbol is bound to a material at
1478
the time of instantiation. If the material attribute is not specified then the lighting and
1479
shading results are application defined. Optional attribute.
1485
<xs:element name="triangles">
1488
The triangles element provides the information needed to bind vertex attributes together and
1489
then organize those vertices into individual triangles. Each triangle described by the mesh has
1490
three vertices. The first triangle is formed from the first, second, and third vertices. The
1491
second triangle is formed from the fourth, fifth, and sixth vertices, and so on.
1496
<xs:element name="input" type="InputLocalOffset" minOccurs="0" maxOccurs="unbounded">
1499
The input element may occur any number of times. This input is a local input with the
1500
offset and set attributes.
1504
<xs:element ref="p" minOccurs="0">
1507
The triangles element may have any number of p elements.
1511
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
1514
The extra element may appear any number of times.
1519
<xs:attribute name="name" type="xs:NCName">
1522
The name attribute is the text string name of this element. Optional attribute.
1526
<xs:attribute name="count" type="uint" use="required">
1529
The count attribute indicates the number of triangle primitives. Required attribute.
1533
<xs:attribute name="material" type="xs:NCName">
1536
The material attribute declares a symbol for a material. This symbol is bound to a material at
1537
the time of instantiation. Optional attribute. If the material attribute is not specified then
1538
the lighting and shading results are application defined.
1544
<xs:element name="trifans">
1547
The trifans element provides the information needed to bind vertex attributes together and then
1548
organize those vertices into connected triangles. Each triangle described by the mesh has three
1549
vertices. The first triangle is formed from first, second, and third vertices. Each subsequent
1550
triangle is formed from the current vertex, reusing the first and the previous vertices.
1555
<xs:element name="input" type="InputLocalOffset" minOccurs="0" maxOccurs="unbounded">
1558
The input element may occur any number of times. This input is a local input with the
1559
offset and set attributes.
1563
<xs:element ref="p" minOccurs="0" maxOccurs="unbounded">
1566
The trifans element may have any number of p elements.
1570
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
1573
The extra element may appear any number of times.
1578
<xs:attribute name="name" type="xs:NCName">
1581
The name attribute is the text string name of this element. Optional attribute.
1585
<xs:attribute name="count" type="uint" use="required">
1588
The count attribute indicates the number of triangle fan primitives. Required attribute.
1592
<xs:attribute name="material" type="xs:NCName">
1595
The material attribute declares a symbol for a material. This symbol is bound to a material
1596
at the time of instantiation. If the material attribute is not specified then the lighting
1597
and shading results are application defined. Optional attribute.
1603
<xs:element name="tristrips">
1606
The tristrips element provides the information needed to bind vertex attributes together and then
1607
organize those vertices into connected triangles. Each triangle described by the mesh has three
1608
vertices. The first triangle is formed from first, second, and third vertices. Each subsequent
1609
triangle is formed from the current vertex, reusing the previous two vertices.
1614
<xs:element name="input" type="InputLocalOffset" minOccurs="0" maxOccurs="unbounded">
1617
The input element may occur any number of times. This input is a local input with the offset
1622
<xs:element ref="p" minOccurs="0" maxOccurs="unbounded">
1625
The tristrips element may have any number of p elements.
1629
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
1632
The extra element may appear any number of times.
1637
<xs:attribute name="name" type="xs:NCName">
1640
The name attribute is the text string name of this element. Optional attribute.
1644
<xs:attribute name="count" type="uint" use="required">
1647
The count attribute indicates the number of triangle strip primitives. Required attribute.
1651
<xs:attribute name="material" type="xs:NCName">
1654
The material attribute declares a symbol for a material. This symbol is bound to a material
1655
at the time of instantiation. If the material attribute is not specified then the lighting
1656
and shading results are application defined. Optional attribute.
1662
<xs:element name="vertices">
1665
The vertices element declares the attributes and identity of mesh-vertices. The vertices element
1666
describes mesh-vertices in a mesh geometry. The mesh-vertices represent the position (identity)
1667
of the vertices comprising the mesh and other vertex attributes that are invariant to tessellation.
1672
<xs:element name="input" type="InputLocal" maxOccurs="unbounded">
1675
The input element must occur at least one time. These inputs are local inputs.
1679
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
1682
The extra element may appear any number of times.
1687
<xs:attribute name="id" type="xs:ID" use="required">
1690
The id attribute is a text string containing the unique identifier of this element. This
1691
value must be unique within the instance document. Required attribute.
1695
<xs:attribute name="name" type="xs:NCName">
1698
The name attribute is the text string name of this element. Optional attribute.
1704
<!-- Transformational Elements -->
1705
<xs:element name="lookat">
1708
The lookat element contains a position and orientation transformation suitable for aiming a camera.
1709
The lookat element contains three mathematical vectors within it that describe:
1710
1. The position of the object;
1711
2. The position of the interest point;
1712
3. The direction that points up.
1717
<xs:extension base="float3x3">
1718
<xs:attribute name="sid" type="xs:NCName">
1721
The sid attribute is a text string value containing the sub-identifier of this element.
1722
This value must be unique within the scope of the parent element. Optional attribute.
1730
<xs:element name="matrix">
1733
Matrix transformations embody mathematical changes to points within a coordinate systems or the
1734
coordinate system itself. The matrix element contains a 4-by-4 matrix of floating-point values.
1739
<xs:extension base="float4x4">
1740
<xs:attribute name="sid" type="xs:NCName">
1743
The sid attribute is a text string value containing the sub-identifier of this element.
1744
This value must be unique within the scope of the parent element. Optional attribute.
1752
<xs:element name="rotate">
1755
The rotate element contains an angle and a mathematical vector that represents the axis of rotation.
1760
<xs:extension base="float4">
1761
<xs:attribute name="sid" type="xs:NCName">
1764
The sid attribute is a text string value containing the sub-identifier of this element.
1765
This value must be unique within the scope of the parent element. Optional attribute.
1773
<xs:element name="scale" type="TargetableFloat3">
1776
The scale element contains a mathematical vector that represents the relative proportions of the
1777
X, Y and Z axes of a coordinated system.
1781
<xs:element name="skew">
1784
The skew element contains an angle and two mathematical vectors that represent the axis of
1785
rotation and the axis of translation.
1790
<xs:extension base="float7">
1791
<xs:attribute name="sid" type="xs:NCName">
1794
The sid attribute is a text string value containing the sub-identifier of this element.
1795
This value must be unique within the scope of the parent element. Optional attribute.
1803
<xs:element name="translate" type="TargetableFloat3">
1806
The translate element contains a mathematical vector that represents the distance along the
1811
<!-- Lighting and Shading Elements -->
1812
<xs:element name="image">
1815
The image element declares the storage for the graphical representation of an object.
1816
The image element best describes raster image data, but can conceivably handle other
1817
forms of imagery. The image elements allows for specifying an external image file with
1818
the init_from element or embed image data with the data element.
1823
<xs:element ref="asset" minOccurs="0">
1826
The image element may contain an asset element.
1831
<xs:element name="data" type="ListOfHexBinary">
1834
The data child element contains a sequence of hexadecimal encoded binary octets representing
1835
the embedded image data.
1839
<xs:element name="init_from" type="xs:anyURI">
1842
The init_from element allows you to specify an external image file to use for the image element.
1847
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
1850
The extra element may appear any number of times.
1855
<xs:attribute name="id" type="xs:ID">
1858
The id attribute is a text string containing the unique identifier of this element. This value
1859
must be unique within the instance document. Optional attribute.
1863
<xs:attribute name="name" type="xs:NCName">
1866
The name attribute is the text string name of this element. Optional attribute.
1870
<xs:attribute name="format" type="xs:token">
1873
The format attribute is a text string value that indicates the image format. Optional attribute.
1877
<xs:attribute name="height" type="uint">
1880
The height attribute is an integer value that indicates the height of the image in pixel
1881
units. Optional attribute.
1885
<xs:attribute name="width" type="uint">
1888
The width attribute is an integer value that indicates the width of the image in pixel units.
1893
<xs:attribute name="depth" type="uint" default="1">
1896
The depth attribute is an integer value that indicates the depth of the image in pixel units.
1897
A 2-D image has a depth of 1, which is also the default value. Optional attribute.
1903
<xs:element name="light">
1906
The light element declares a light source that illuminates the scene.
1907
Light sources have many different properties and radiate light in many different patterns and
1913
<xs:element ref="asset" minOccurs="0">
1916
The light element may contain an asset element.
1920
<xs:element name="technique_common">
1923
The technique_common element specifies the light information for the common profile which all
1924
COLLADA implementations need to support.
1929
<xs:element name="ambient">
1932
The ambient element declares the parameters required to describe an ambient light source.
1933
An ambient light is one that lights everything evenly, regardless of location or orientation.
1938
<xs:element name="color" type="TargetableFloat3">
1941
The color element contains three floating point numbers specifying the color of the light.
1942
The color element must occur exactly once.
1949
<xs:element name="directional">
1952
The directional element declares the parameters required to describe a directional light source.
1953
A directional light is one that lights everything from the same direction, regardless of location.
1954
The lightās default direction vector in local coordinates is [0,0,-1], pointing down the -Z axis.
1955
The actual direction of the light is defined by the transform of the node where the light is
1961
<xs:element name="color" type="TargetableFloat3">
1964
The color element contains three floating point numbers specifying the color of the light.
1965
The color element must occur exactly once.
1972
<xs:element name="point">
1975
The point element declares the parameters required to describe a point light source. A point light
1976
source radiates light in all directions from a known location in space. The intensity of a point
1977
light source is attenuated as the distance to the light source increases. The position of the light
1978
is defined by the transform of the node in which it is instantiated.
1983
<xs:element name="color" type="TargetableFloat3">
1986
The color element contains three floating point numbers specifying the color of the light.
1987
The color element must occur exactly once.
1991
<xs:element name="constant_attenuation" type="TargetableFloat" default="1.0" minOccurs="0">
1994
The constant_attenuation is used to calculate the total attenuation of this light given a distance.
1995
The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation.
1999
<xs:element name="linear_attenuation" type="TargetableFloat" default="0.0" minOccurs="0">
2002
The linear_attenuation is used to calculate the total attenuation of this light given a distance.
2003
The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation.
2007
<xs:element name="quadratic_attenuation" type="TargetableFloat" default="0.0" minOccurs="0">
2010
The quadratic_attenuation is used to calculate the total attenuation of this light given a distance.
2011
The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation.
2018
<xs:element name="spot">
2021
The spot element declares the parameters required to describe a spot light source. A spot light
2022
source radiates light in one direction from a known location in space. The light radiates from
2023
the spot light source in a cone shape. The intensity of the light is attenuated as the radiation
2024
angle increases away from the direction of the light source. The intensity of a spot light source
2025
is also attenuated as the distance to the light source increases. The position of the light is
2026
defined by the transform of the node in which it is instantiated. The lightās default direction
2027
vector in local coordinates is [0,0,-1], pointing down the -Z axis. The actual direction of the
2028
light is defined by the transform of the node where the light is instantiated.
2033
<xs:element name="color" type="TargetableFloat3">
2036
The color element contains three floating point numbers specifying the color of the light.
2037
The color element must occur exactly once.
2041
<xs:element name="constant_attenuation" type="TargetableFloat" default="1.0" minOccurs="0">
2044
The constant_attenuation is used to calculate the total attenuation of this light given a distance.
2045
The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation.
2049
<xs:element name="linear_attenuation" type="TargetableFloat" default="0.0" minOccurs="0">
2052
The linear_attenuation is used to calculate the total attenuation of this light given a distance.
2053
The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation.
2057
<xs:element name="quadratic_attenuation" type="TargetableFloat" default="0.0" minOccurs="0">
2060
The quadratic_attenuation is used to calculate the total attenuation of this light given a distance.
2061
The equation used is A = constant_attenuation + Dist*linear_attenuation + Dist^2*quadratic_attenuation.
2065
<xs:element name="falloff_angle" type="TargetableFloat" default="180.0" minOccurs="0">
2068
The falloff_angle is used to specify the amount of attenuation based on the direction of the light.
2072
<xs:element name="falloff_exponent" type="TargetableFloat" default="0.0" minOccurs="0">
2075
The falloff_exponent is used to specify the amount of attenuation based on the direction of the light.
2085
<xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
2088
This element may contain any number of non-common profile techniques.
2092
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
2095
The extra element may appear any number of times.
2100
<xs:attribute name="id" type="xs:ID">
2103
The id attribute is a text string containing the unique identifier of this element.
2104
This value must be unique within the instance document. Optional attribute.
2108
<xs:attribute name="name" type="xs:NCName">
2111
The name attribute is the text string name of this element. Optional attribute.
2117
<xs:element name="material">
2120
Materials describe the visual appearance of a geometric object.
2125
<xs:element ref="asset" minOccurs="0">
2128
The material element may contain an asset element.
2132
<xs:element ref="instance_effect">
2135
The material must instance an effect.
2139
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
2142
The extra element may appear any number of times.
2147
<xs:attribute name="id" type="xs:ID">
2150
The id attribute is a text string containing the unique identifier of this element. This value
2151
must be unique within the instance document. Optional attribute.
2155
<xs:attribute name="name" type="xs:NCName">
2158
The name attribute is the text string name of this element. Optional attribute.
2164
<!-- Object Elements -->
2165
<xs:element name="camera">
2168
The camera element declares a view into the scene hierarchy or scene graph. The camera contains
2169
elements that describe the cameraās optics and imager.
2174
<xs:element ref="asset" minOccurs="0">
2177
The camera element may contain an asset element.
2181
<xs:element name="optics">
2184
Optics represents the apparatus on a camera that projects the image onto the image sensor.
2189
<xs:element name="technique_common">
2192
The technique_common element specifies the optics information for the common profile
2193
which all COLLADA implementations need to support.
2198
<xs:element name="orthographic">
2201
The orthographic element describes the field of view of an orthographic camera.
2208
<xs:element name="xmag" type="TargetableFloat">
2211
The xmag element contains a floating point number describing the horizontal
2212
magnification of the view.
2216
<xs:choice minOccurs="0">
2217
<xs:element name="ymag" type="TargetableFloat">
2220
The ymag element contains a floating point number describing the vertical
2221
magnification of the view. It can also have a sid.
2225
<xs:element name="aspect_ratio" type="TargetableFloat">
2228
The aspect_ratio element contains a floating point number describing the aspect ratio of
2229
the field of view. If the aspect_ratio element is not present the aspect ratio is to be
2230
calculated from the xmag or ymag elements and the current viewport.
2237
<xs:element name="ymag" type="TargetableFloat"/>
2238
<xs:element name="aspect_ratio" type="TargetableFloat" minOccurs="0"/>
2241
<xs:element name="znear" type="TargetableFloat">
2244
The znear element contains a floating point number that describes the distance to the near
2245
clipping plane. The znear element must occur exactly once.
2249
<xs:element name="zfar" type="TargetableFloat">
2252
The zfar element contains a floating point number that describes the distance to the far
2253
clipping plane. The zfar element must occur exactly once.
2260
<xs:element name="perspective">
2263
The perspective element describes the optics of a perspective camera.
2270
<xs:element name="xfov" type="TargetableFloat">
2273
The xfov element contains a floating point number describing the horizontal field of view in degrees.
2277
<xs:choice minOccurs="0">
2278
<xs:element name="yfov" type="TargetableFloat">
2281
The yfov element contains a floating point number describing the verticle field of view in degrees.
2285
<xs:element name="aspect_ratio" type="TargetableFloat">
2288
The aspect_ratio element contains a floating point number describing the aspect ratio of the field
2289
of view. If the aspect_ratio element is not present the aspect ratio is to be calculated from the
2290
xfov or yfov elements and the current viewport.
2297
<xs:element name="yfov" type="TargetableFloat"/>
2298
<xs:element name="aspect_ratio" type="TargetableFloat" minOccurs="0"/>
2301
<xs:element name="znear" type="TargetableFloat">
2304
The znear element contains a floating point number that describes the distance to the near
2305
clipping plane. The znear element must occur exactly once.
2309
<xs:element name="zfar" type="TargetableFloat">
2312
The zfar element contains a floating point number that describes the distance to the far
2313
clipping plane. The zfar element must occur exactly once.
2323
<xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
2326
This element may contain any number of non-common profile techniques.
2330
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
2333
The extra element may appear any number of times.
2340
<xs:element name="imager" minOccurs="0">
2343
Imagers represent the image sensor of a camera (for example film or CCD).
2348
<xs:element ref="technique" maxOccurs="unbounded">
2351
This element may contain any number of non-common profile techniques.
2352
There is no common technique for imager.
2356
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
2359
The extra element may appear any number of times.
2366
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
2369
The extra element may appear any number of times.
2374
<xs:attribute name="id" type="xs:ID">
2377
The id attribute is a text string containing the unique identifier of this element. This value
2378
must be unique within the instance document. Optional attribute.
2382
<xs:attribute name="name" type="xs:NCName">
2385
The name attribute is the text string name of this element. Optional attribute.
2391
<!-- Animation Elements -->
2392
<xs:element name="animation">
2395
The animation element categorizes the declaration of animation information. The animation
2396
hierarchy contains elements that describe the animationās key-frame data and sampler functions,
2397
ordered in such a way to group together animations that should be executed together.
2402
<xs:element ref="asset" minOccurs="0">
2405
The animation element may contain an asset element.
2411
<xs:element ref="source" maxOccurs="unbounded">
2414
The animation element may contain any number of source elements.
2420
<xs:element ref="sampler" maxOccurs="unbounded">
2423
The animation element may contain any number of sampler elements.
2427
<xs:element ref="channel" maxOccurs="unbounded">
2430
The animation element may contain any number of channel elements.
2434
<xs:element ref="animation" minOccurs="0" maxOccurs="unbounded">
2437
The animation may be hierarchical and may contain any number of other animation elements.
2442
<xs:element ref="animation" maxOccurs="unbounded"/>
2446
<xs:element ref="sampler" maxOccurs="unbounded"/>
2447
<xs:element ref="channel" maxOccurs="unbounded"/>
2448
<xs:element ref="animation" minOccurs="0" maxOccurs="unbounded"/>
2450
<xs:element ref="animation" maxOccurs="unbounded"/>
2452
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
2455
The extra element may appear any number of times.
2460
<xs:attribute name="id" type="xs:ID">
2463
The id attribute is a text string containing the unique identifier of this element. This value
2464
must be unique within the instance document. Optional attribute.
2468
<xs:attribute name="name" type="xs:NCName">
2471
The name attribute is the text string name of this element. Optional attribute.
2477
<xs:element name="animation_clip">
2480
The animation_clip element defines a section of the animation curves to be used together as
2486
<xs:element ref="asset" minOccurs="0">
2489
The animation_clip element may contain an asset element.
2493
<xs:element name="instance_animation" type="InstanceWithExtra" maxOccurs="unbounded">
2496
The animation_clip must instance at least one animation element.
2500
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
2503
The extra element may appear any number of times.
2508
<xs:attribute name="id" type="xs:ID">
2511
The id attribute is a text string containing the unique identifier of this element.
2512
This value must be unique within the instance document. Optional attribute.
2516
<xs:attribute name="name" type="xs:NCName">
2519
The name attribute is the text string name of this element. Optional attribute.
2523
<xs:attribute name="start" type="xs:double" default="0.0">
2526
The start attribute is the time in seconds of the beginning of the clip. This time is
2527
the same as that used in the key-frame data and is used to determine which set of
2528
key-frames will be included in the clip. The start time does not specify when the clip
2529
will be played. If the time falls between two keyframes of a referenced animation, an
2530
interpolated value should be used. The default value is 0.0. Optional attribute.
2534
<xs:attribute name="end" type="xs:double">
2537
The end attribute is the time in seconds of the end of the clip. This is used in the
2538
same way as the start time. If end is not specified, the value is taken to be the end
2539
time of the longest animation. Optional attribute.
2545
<xs:element name="channel">
2548
The channel element declares an output channel of an animation.
2552
<xs:attribute name="source" type="URIFragmentType" use="required">
2555
The source attribute indicates the location of the sampler using a URL expression.
2556
The sampler must be declared within the same document. Required attribute.
2560
<xs:attribute name="target" type="xs:token" use="required">
2563
The target attribute indicates the location of the element bound to the output of the sampler.
2564
This text string is a path-name following a simple syntax described in Address Syntax.
2571
<xs:element name="sampler">
2574
The sampler element declares an N-dimensional function used for animation. Animation function curves
2575
are represented by 1-D sampler elements in COLLADA. The sampler defines sampling points and how to
2576
interpolate between them.
2581
<xs:element name="input" type="InputLocal" maxOccurs="unbounded">
2584
The input element must occur at least one time. These inputs are local inputs.
2589
<xs:attribute name="id" type="xs:ID">
2592
The id attribute is a text string containing the unique identifier of this element. This value
2593
must be unique within the instance document. Optional attribute.
2599
<!-- Controller Elements -->
2600
<xs:element name="controller">
2603
The controller element categorizes the declaration of generic control information.
2604
A controller is a device or mechanism that manages and directs the operations of another object.
2609
<xs:element ref="asset" minOccurs="0">
2612
The controller element may contain an asset element.
2617
<xs:element ref="skin">
2620
The controller element may contain either a skin element or a morph element.
2624
<xs:element ref="morph">
2627
The controller element may contain either a skin element or a morph element.
2632
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
2635
The extra element may appear any number of times.
2640
<xs:attribute name="id" type="xs:ID">
2643
The id attribute is a text string containing the unique identifier of this element. This value
2644
must be unique within the instance document. Optional attribute.
2648
<xs:attribute name="name" type="xs:NCName">
2651
The name attribute is the text string name of this element. Optional attribute.
2657
<xs:element name="skin">
2660
The skin element contains vertex and primitive information sufficient to describe blend-weight skinning.
2665
<xs:element name="bind_shape_matrix" type="float4x4" minOccurs="0">
2668
This provides extra information about the position and orientation of the base mesh before binding.
2669
If bind_shape_matrix is not specified then an identity matrix may be used as the bind_shape_matrix.
2670
The bind_shape_matrix element may occur zero or one times.
2674
<xs:element ref="source" minOccurs="3" maxOccurs="unbounded">
2677
The skin element must contain at least three source elements.
2681
<xs:element name="joints">
2684
The joints element associates joint, or skeleton, nodes with attribute data.
2685
In COLLADA, this is specified by the inverse bind matrix of each joint (influence) in the skeleton.
2690
<xs:element name="input" type="InputLocal" minOccurs="2" maxOccurs="unbounded">
2693
The input element must occur at least twice. These inputs are local inputs.
2697
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
2700
The extra element may appear any number of times.
2707
<xs:element name="vertex_weights">
2710
The vertex_weights element associates a set of joint-weight pairs with each vertex in the base mesh.
2715
<xs:element name="input" type="InputLocalOffset" minOccurs="2" maxOccurs="unbounded">
2718
The input element must occur at least twice.
2722
<xs:element name="vcount" type="ListOfUInts" minOccurs="0">
2725
The vcount element contains a list of integers describing the number of influences for each vertex.
2726
The vcount element may occur once.
2730
<xs:element name="v" type="ListOfInts" minOccurs="0">
2733
The v element describes which bones and attributes are associated with each vertex. An index
2734
of ā1 into the array of joints refers to the bind shape. Weights should be normalized before use.
2735
The v element must occur zero or one times.
2739
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
2742
The extra element may appear any number of times.
2747
<xs:attribute name="count" type="uint" use="required">
2750
The count attribute describes the number of vertices in the base mesh. Required element.
2756
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
2759
The extra element may appear any number of times.
2764
<xs:attribute name="source" type="xs:anyURI" use="required">
2767
The source attribute contains a URI reference to the base mesh, (a static mesh or a morphed mesh).
2768
This also provides the bind-shape of the skinned mesh. Required attribute.
2774
<xs:element name="morph">
2777
The morph element describes the data required to blend between sets of static meshes. Each
2778
possible mesh that can be blended (a morph target) must be specified.
2783
<xs:element ref="source" minOccurs="2" maxOccurs="unbounded">
2786
The morph element must contain at least two source elements.
2790
<xs:element name="targets">
2793
The targets element declares the morph targets, their weights and any user defined attributes
2794
associated with them.
2799
<xs:element name="input" type="InputLocal" minOccurs="2" maxOccurs="unbounded">
2802
The input element must occur at least twice. These inputs are local inputs.
2806
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
2809
The extra element may appear any number of times.
2816
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
2819
The extra element may appear any number of times.
2824
<xs:attribute name="method" type="MorphMethodType" default="NORMALIZED">
2827
The method attribute specifies the which blending technique to use. The accepted values are
2828
NORMALIZED, and RELATIVE. The default value if not specified is NORMALIZED. Optional attribute.
2832
<xs:attribute name="source" type="xs:anyURI" use="required">
2835
The source attribute indicates the base mesh. Required attribute.
2841
<!-- Meta Elements -->
2842
<xs:element name="asset">
2845
The asset element defines asset management information regarding its parent element.
2850
<xs:element name="contributor" minOccurs="0" maxOccurs="unbounded">
2853
The contributor element defines authoring information for asset management
2858
<xs:element name="author" type="xs:string" minOccurs="0">
2861
The author element contains a string with the author's name.
2862
There may be only one author element.
2866
<xs:element name="authoring_tool" type="xs:string" minOccurs="0">
2869
The authoring_tool element contains a string with the authoring tool's name.
2870
There may be only one authoring_tool element.
2874
<xs:element name="comments" type="xs:string" minOccurs="0">
2877
The comments element contains a string with comments from this contributor.
2878
There may be only one comments element.
2882
<xs:element name="copyright" type="xs:string" minOccurs="0">
2885
The copyright element contains a string with copyright information.
2886
There may be only one copyright element.
2890
<xs:element name="source_data" type="xs:anyURI" minOccurs="0">
2893
The source_data element contains a URI reference to the source data used for this asset.
2894
There may be only one source_data element.
2901
<xs:element name="created" type="xs:dateTime">
2904
The created element contains the date and time that the parent element was created and is
2905
represented in an ISO 8601 format. The created element may appear zero or one time.
2909
<xs:element name="keywords" type="xs:string" minOccurs="0">
2912
The keywords element contains a list of words used as search criteria for the parent element.
2913
The keywords element may appear zero or more times.
2917
<xs:element name="modified" type="xs:dateTime">
2920
The modified element contains the date and time that the parent element was last modified and
2921
represented in an ISO 8601 format. The modified element may appear zero or one time.
2925
<xs:element name="revision" type="xs:string" minOccurs="0">
2928
The revision element contains the revision information for the parent element. The revision
2929
element may appear zero or one time.
2933
<xs:element name="subject" type="xs:string" minOccurs="0">
2936
The subject element contains a description of the topical subject of the parent element. The
2937
subject element may appear zero or one time.
2941
<xs:element name="title" type="xs:string" minOccurs="0">
2944
The title element contains the title information for the parent element. The title element may
2945
appear zero or one time.
2949
<xs:element name="unit" minOccurs="0">
2952
The unit element contains descriptive information about unit of measure. It has attributes for
2953
the name of the unit and the measurement with respect to the meter. The unit element may appear
2958
<xs:attribute name="meter" type="float" default="1.0">
2961
The meter attribute specifies the measurement with respect to the meter. The default
2962
value for the meter attribute is ā1.0ā.
2966
<xs:attribute name="name" type="xs:NMTOKEN" default="meter">
2969
The name attribute specifies the name of the unit. The default value for the name
2970
attribute is āmeterā.
2976
<xs:element name="up_axis" type="UpAxisType" default="Y_UP" minOccurs="0">
2979
The up_axis element contains descriptive information about coordinate system of the geometric
2980
data. All coordinates are right-handed by definition. This element specifies which axis is
2981
considered up. The default is the Y-axis. The up_axis element may appear zero or one time.
2988
<xs:element name="extra">
2991
The extra element declares additional information regarding its parent element.
2996
<xs:element ref="asset" minOccurs="0">
2999
The extra element may contain an asset element.
3003
<xs:element ref="technique" maxOccurs="unbounded">
3006
This element must contain at least one non-common profile technique.
3011
<xs:attribute name="id" type="xs:ID">
3014
The id attribute is a text string containing the unique identifier of this element. This value
3015
must be unique within the instance document. Optional attribute.
3019
<xs:attribute name="name" type="xs:NCName">
3022
The name attribute is the text string name of this element. Optional attribute.
3026
<xs:attribute name="type" type="xs:NMTOKEN">
3029
The type attribute indicates the type of the value data. This text string must be understood by
3030
the application. Optional attribute.
3036
<xs:element name="technique">
3038
<xs:appinfo>enable-xmlns</xs:appinfo>
3040
The technique element declares the information used to process some portion of the content. Each
3041
technique conforms to an associated profile. Techniques generally act as a āswitchā. If more than
3042
one is present for a particular portion of content, on import, one or the other is picked, but
3043
usually not both. Selection should be based on which profile the importing application can support.
3044
Techniques contain application data and programs, making them assets that can be managed as a unit.
3049
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
3051
<xs:attribute name="profile" type="xs:NMTOKEN" use="required">
3054
The profile attribute indicates the type of profile. This is a vendor defined character
3055
string that indicates the platform or capability target for the technique. Required attribute.
3061
<!-- Hierarchical Elements -->
3062
<xs:element name="node">
3065
Nodes embody the hierarchical relationship of elements in the scene.
3070
<xs:element ref="asset" minOccurs="0">
3073
The node element may contain an asset element.
3077
<xs:choice minOccurs="0" maxOccurs="unbounded">
3078
<xs:element ref="lookat">
3081
The node element may contain any number of lookat elements.
3085
<xs:element ref="matrix">
3088
The node element may contain any number of matrix elements.
3092
<xs:element ref="rotate">
3095
The node element may contain any number of rotate elements.
3099
<xs:element ref="scale">
3102
The node element may contain any number of scale elements.
3106
<xs:element ref="skew">
3109
The node element may contain any number of skew elements.
3113
<xs:element ref="translate">
3116
The node element may contain any number of translate elements.
3121
<xs:element ref="instance_camera" minOccurs="0" maxOccurs="unbounded">
3124
The node element may instance any number of camera objects.
3128
<xs:element ref="instance_controller" minOccurs="0" maxOccurs="unbounded">
3131
The node element may instance any number of controller objects.
3135
<xs:element ref="instance_geometry" minOccurs="0" maxOccurs="unbounded">
3138
The node element may instance any number of geometry objects.
3142
<xs:element ref="instance_light" minOccurs="0" maxOccurs="unbounded">
3145
The node element may instance any number of light objects.
3149
<xs:element ref="instance_node" minOccurs="0" maxOccurs="unbounded">
3152
The node element may instance any number of node elements or hierarchies objects.
3156
<xs:element ref="node" minOccurs="0" maxOccurs="unbounded">
3159
The node element may be hierarchical and be the parent of any number of other node elements.
3163
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
3166
The extra element may appear any number of times.
3171
<xs:attribute name="id" type="xs:ID">
3174
The id attribute is a text string containing the unique identifier of this element.
3175
This value must be unique within the instance document. Optional attribute.
3179
<xs:attribute name="name" type="xs:NCName">
3182
The name attribute is the text string name of this element. Optional attribute.
3186
<xs:attribute name="sid" type="xs:NCName">
3189
The sid attribute is a text string value containing the sub-identifier of this element.
3190
This value must be unique within the scope of the parent element. Optional attribute.
3194
<xs:attribute name="type" type="NodeType" default="NODE">
3197
The type attribute indicates the type of the node element. The default value is āNODEā.
3202
<xs:attribute name="layer" type="ListOfNames">
3205
The layer attribute indicates the names of the layers to which this node belongs. For example,
3206
a value of āforeground glowingā indicates that this node belongs to both the āforegroundā layer
3207
and the āglowingā layer. The default value is empty, indicating that the node doesnāt belong to
3208
any layer. Optional attribute.
3214
<xs:element name="visual_scene">
3217
The visual_scene element declares the base of the visual_scene hierarchy or scene graph. The
3218
scene contains elements that comprise much of the visual and transformational information
3219
content as created by the authoring tools.
3224
<xs:element ref="asset" minOccurs="0">
3227
The visual_scene element may contain an asset element.
3231
<xs:element ref="node" maxOccurs="unbounded">
3234
The visual_scene element must have at least one node element.
3238
<xs:element name="evaluate_scene" minOccurs="0" maxOccurs="unbounded">
3241
The evaluate_scene element declares information specifying a specific way to evaluate this
3242
visual_scene. There may be any number of evaluate_scene elements.
3247
<xs:element name="render" maxOccurs="unbounded">
3250
The render element describes one effect pass to evaluate the scene.
3251
There must be at least one render element.
3256
<xs:element name="layer" type="xs:NCName" minOccurs="0" maxOccurs="unbounded">
3259
The layer element specifies which layer to render in this compositing step
3260
while evaluating the scene. You may specify any number of layers.
3264
<xs:element ref="instance_effect" minOccurs="0">
3267
The instance_effect element specifies which effect to render in this compositing step
3268
while evaluating the scene.
3273
<xs:attribute name="camera_node" type="xs:anyURI" use="required">
3276
The camera_node attribute refers to a node that contains a camera describing the viewpoint to
3277
render this compositing step from.
3284
<xs:attribute name="name" type="xs:NCName">
3287
The name attribute is the text string name of this element. Optional attribute.
3293
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
3296
The extra element may appear any number of times.
3301
<xs:attribute name="id" type="xs:ID" use="optional">
3304
The id attribute is a text string containing the unique identifier of this element. This
3305
value must be unique within the instance document. Optional attribute.
3309
<xs:attribute name="name" type="xs:NCName">
3312
The name attribute is the text string name of this element. Optional attribute.
3318
<!-- Instance Elements -->
3319
<xs:element name="bind_material">
3322
Bind a specific material to a piece of geometry, binding varying and uniform parameters at the
3328
<xs:element ref="param" minOccurs="0" maxOccurs="unbounded">
3331
The bind_material element may contain any number of param elements.
3335
<xs:element name="technique_common">
3338
The technique_common element specifies the bind_material information for the common
3339
profile which all COLLADA implementations need to support.
3344
<xs:element ref="instance_material" maxOccurs="unbounded">
3347
The instance_material element specifies the information needed to bind a geometry
3348
to a material. This element must appear at least once.
3355
<xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
3358
This element may contain any number of non-common profile techniques.
3362
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
3365
The extra element may appear any number of times.
3372
<xs:element name="instance_camera" type="InstanceWithExtra">
3375
The instance_camera element declares the instantiation of a COLLADA camera resource.
3379
<xs:element name="instance_controller">
3382
The instance_controller element declares the instantiation of a COLLADA controller resource.
3387
<xs:element name="skeleton" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded">
3390
The skeleton element is used to indicate where a skin controller is to start to search for
3391
the joint nodes it needs. This element is meaningless for morph controllers.
3395
<xs:element ref="bind_material" minOccurs="0">
3398
Bind a specific material to a piece of geometry, binding varying and uniform parameters at the
3403
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
3406
The extra element may appear any number of times.
3411
<xs:attribute name="url" type="xs:anyURI" use="required">
3414
The url attribute refers to resource. This may refer to a local resource using a relative
3415
URL fragment identifier that begins with the ā#ā character. The url attribute may refer to an
3416
external resource using an absolute or relative URL.
3420
<xs:attribute name="sid" type="xs:NCName">
3423
The sid attribute is a text string value containing the sub-identifier of this element. This
3424
value must be unique within the scope of the parent element. Optional attribute.
3428
<xs:attribute name="name" type="xs:NCName">
3431
The name attribute is the text string name of this element. Optional attribute.
3437
<xs:element name="instance_effect">
3440
The instance_effect element declares the instantiation of a COLLADA effect resource.
3445
<xs:element name="technique_hint" minOccurs="0" maxOccurs="unbounded">
3448
Add a hint for a platform of which technique to use in this effect.
3452
<xs:attribute name="platform" type="xs:NCName" use="optional">
3455
A platform defines a string that specifies which platform this is hint is aimed for.
3459
<xs:attribute name="profile" type="xs:NCName" use="optional">
3462
A profile defines a string that specifies which API profile this is hint is aimed for.
3466
<xs:attribute name="ref" type="xs:NCName" use="required">
3469
A reference to the technique to use for the specified platform.
3475
<xs:element name="setparam" minOccurs="0" maxOccurs="unbounded">
3478
Assigns a new value to a previously defined parameter
3483
<xs:group ref="fx_basic_type_common"/>
3485
<xs:attribute name="ref" type="xs:token" use="required"/>
3488
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
3491
The extra element may appear any number of times.
3496
<xs:attribute name="url" type="xs:anyURI" use="required">
3499
The url attribute refers to resource. This may refer to a local resource using a relative URL
3500
fragment identifier that begins with the ā#ā character. The url attribute may refer to an external
3501
resource using an absolute or relative URL.
3505
<xs:attribute name="sid" type="xs:NCName">
3508
The sid attribute is a text string value containing the sub-identifier of this element. This
3509
value must be unique within the scope of the parent element. Optional attribute.
3513
<xs:attribute name="name" type="xs:NCName">
3516
The name attribute is the text string name of this element. Optional attribute.
3522
<xs:element name="instance_force_field" type="InstanceWithExtra">
3525
The instance_force_field element declares the instantiation of a COLLADA force_field resource.
3529
<xs:element name="instance_geometry">
3532
The instance_geometry element declares the instantiation of a COLLADA geometry resource.
3537
<xs:element ref="bind_material" minOccurs="0">
3540
Bind a specific material to a piece of geometry, binding varying and uniform parameters at the
3545
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
3548
The extra element may appear any number of times.
3553
<xs:attribute name="url" type="xs:anyURI" use="required">
3556
The url attribute refers to resource. This may refer to a local resource using a relative URL
3557
fragment identifier that begins with the ā#ā character. The url attribute may refer to an external
3558
resource using an absolute or relative URL.
3562
<xs:attribute name="sid" type="xs:NCName">
3565
The sid attribute is a text string value containing the sub-identifier of this element. This
3566
value must be unique within the scope of the parent element. Optional attribute.
3570
<xs:attribute name="name" type="xs:NCName">
3573
The name attribute is the text string name of this element. Optional attribute.
3579
<xs:element name="instance_light" type="InstanceWithExtra">
3582
The instance_light element declares the instantiation of a COLLADA light resource.
3586
<xs:element name="instance_material">
3589
The instance_material element declares the instantiation of a COLLADA material resource.
3594
<xs:element name="bind" minOccurs="0" maxOccurs="unbounded">
3597
The bind element binds values to effect parameters upon instantiation.
3601
<xs:attribute name="semantic" type="xs:NCName" use="required">
3604
The semantic attribute specifies which effect parameter to bind.
3608
<xs:attribute name="target" type="xs:token" use="required">
3611
The target attribute specifies the location of the value to bind to the specified semantic.
3612
This text string is a path-name following a simple syntax described in the āAddressing Syntaxā
3619
<xs:element name="bind_vertex_input" minOccurs="0" maxOccurs="unbounded">
3622
The bind_vertex_input element binds vertex inputs to effect parameters upon instantiation.
3626
<xs:attribute name="semantic" type="xs:NCName" use="required">
3629
The semantic attribute specifies which effect parameter to bind.
3633
<xs:attribute name="input_semantic" type="xs:NCName" use="required">
3636
The input_semantic attribute specifies which input semantic to bind.
3640
<xs:attribute name="input_set" type="uint">
3643
The input_set attribute specifies which input set to bind.
3649
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
3652
The extra element may appear any number of times.
3657
<xs:attribute name="symbol" type="xs:NCName" use="required">
3660
The symbol attribute specifies which symbol defined from within the geometry this material binds to.
3664
<xs:attribute name="target" type="xs:anyURI" use="required">
3667
The target attribute specifies the URL of the location of the object to instantiate.
3671
<xs:attribute name="sid" type="xs:NCName">
3674
The sid attribute is a text string value containing the sub-identifier of this element. This
3675
value must be unique within the scope of the parent element. Optional attribute.
3679
<xs:attribute name="name" type="xs:NCName">
3682
The name attribute is the text string name of this element. Optional attribute.
3688
<xs:element name="instance_node" type="InstanceWithExtra">
3691
The instance_node element declares the instantiation of a COLLADA node resource.
3695
<xs:element name="instance_physics_material" type="InstanceWithExtra">
3698
The instance_physics_material element declares the instantiation of a COLLADA physics_material
3703
<xs:element name="instance_physics_model">
3706
This element allows instancing physics model within another physics model, or in a physics scene.
3711
<xs:element ref="instance_force_field" minOccurs="0" maxOccurs="unbounded">
3714
The instance_physics_model element may instance any number of force_field elements.
3718
<xs:element ref="instance_rigid_body" minOccurs="0" maxOccurs="unbounded">
3721
The instance_physics_model element may instance any number of rigid_body elements.
3725
<xs:element ref="instance_rigid_constraint" minOccurs="0" maxOccurs="unbounded">
3728
The instance_physics_model element may instance any number of rigid_constraint elements.
3732
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
3735
The extra element may appear any number of times.
3740
<xs:attribute name="url" type="xs:anyURI" use="required">
3743
The url attribute refers to resource. This may refer to a local resource using a relative URL
3744
fragment identifier that begins with the ā#ā character. The url attribute may refer to an external
3745
resource using an absolute or relative URL.
3749
<xs:attribute name="sid" type="xs:NCName">
3752
The sid attribute is a text string value containing the sub-identifier of this element. This
3753
value must be unique within the scope of the parent element. Optional attribute.
3757
<xs:attribute name="name" type="xs:NCName">
3760
The name attribute is the text string name of this element. Optional attribute.
3764
<xs:attribute name="parent" type="xs:anyURI">
3767
The parent attribute points to the id of a node in the visual scene. This allows a physics model
3768
to be instantiated under a specific transform node, which will dictate the initial position and
3769
orientation, and could be animated to influence kinematic rigid bodies.
3775
<xs:element name="instance_rigid_body">
3778
This element allows instancing a rigid_body within an instance_physics_model.
3783
<xs:element name="technique_common">
3786
The technique_common element specifies the instance_rigid_body information for the common
3787
profile which all COLLADA implementations need to support.
3792
<xs:element name="angular_velocity" type="float3" default="0.0 0.0 0.0" minOccurs="0">
3795
Specifies the initial angular velocity of the rigid_body instance in degrees per second
3796
around each axis, in the form of an X-Y-Z Euler rotation.
3800
<xs:element name="velocity" type="float3" default="0.0 0.0 0.0" minOccurs="0">
3803
Specifies the initial linear velocity of the rigid_body instance.
3807
<xs:element name="dynamic" minOccurs="0">
3810
<xs:extension base="bool">
3811
<xs:attribute name="sid" type="xs:NCName">
3814
The sid attribute is a text string value containing the sub-identifier of this element.
3815
This value must be unique within the scope of the parent element. Optional attribute.
3823
<xs:element name="mass" type="TargetableFloat" minOccurs="0"/>
3824
<xs:element name="mass_frame" minOccurs="0">
3826
<xs:choice maxOccurs="unbounded">
3827
<xs:element ref="translate"/>
3828
<xs:element ref="rotate"/>
3832
<xs:element name="inertia" type="TargetableFloat3" minOccurs="0"/>
3833
<xs:choice minOccurs="0">
3834
<xs:element ref="instance_physics_material"/>
3835
<xs:element ref="physics_material"/>
3837
<xs:element name="shape" minOccurs="0" maxOccurs="unbounded">
3840
<xs:element name="hollow" minOccurs="0">
3843
<xs:extension base="bool">
3844
<xs:attribute name="sid" type="xs:NCName">
3847
The sid attribute is a text string value containing the sub-identifier of this element. This value must be unique within the scope of the parent element. Optional attribute.
3855
<xs:element name="mass" type="TargetableFloat" minOccurs="0"/>
3856
<xs:element name="density" type="TargetableFloat" minOccurs="0"/>
3857
<xs:choice minOccurs="0">
3858
<xs:element ref="instance_physics_material"/>
3859
<xs:element ref="physics_material"/>
3862
<xs:element ref="instance_geometry"/>
3863
<xs:element ref="plane"/>
3864
<xs:element ref="box"/>
3865
<xs:element ref="sphere"/>
3866
<xs:element ref="cylinder"/>
3867
<xs:element ref="tapered_cylinder"/>
3868
<xs:element ref="capsule"/>
3869
<xs:element ref="tapered_capsule"/>
3871
<xs:choice minOccurs="0" maxOccurs="unbounded">
3872
<xs:element ref="translate"/>
3873
<xs:element ref="rotate"/>
3875
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
3878
The extra element may appear any number of times.
3888
<xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
3891
This element may contain any number of non-common profile techniques.
3895
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
3898
The extra element may appear any number of times.
3903
<xs:attribute name="body" type="xs:NCName" use="required">
3906
The body attribute indicates which rigid_body to instantiate. Required attribute.
3910
<xs:attribute name="sid" type="xs:NCName">
3913
The sid attribute is a text string value containing the sub-identifier of this element. This
3914
value must be unique within the scope of the parent element. Optional attribute.
3918
<xs:attribute name="name" type="xs:NCName">
3921
The name attribute is the text string name of this element. Optional attribute.
3925
<xs:attribute name="target" type="xs:anyURI" use="required">
3928
The target attribute indicates which node is influenced by this rigid_body instance.
3935
<xs:element name="instance_rigid_constraint">
3938
This element allows instancing a rigid_constraint within an instance_physics_model.
3943
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
3946
The extra element may appear any number of times.
3951
<xs:attribute name="constraint" type="xs:NCName" use="required">
3954
The constraint attribute indicates which rigid_constraing to instantiate. Required attribute.
3958
<xs:attribute name="sid" type="xs:NCName">
3961
The sid attribute is a text string value containing the sub-identifier of this element. This
3962
value must be unique within the scope of the parent element. Optional attribute.
3966
<xs:attribute name="name" type="xs:NCName">
3969
The name attribute is the text string name of this element. Optional attribute.
3975
<!-- Modularity elements -->
3976
<xs:element name="library_animations">
3979
The library_animations element declares a module of animation elements.
3984
<xs:element ref="asset" minOccurs="0">
3987
The library_animations element may contain an asset element.
3991
<xs:element ref="animation" maxOccurs="unbounded">
3994
There must be at least one animation element.
3998
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4001
The extra element may appear any number of times.
4006
<xs:attribute name="id" type="xs:ID">
4009
The id attribute is a text string containing the unique identifier of this element.
4010
This value must be unique within the instance document. Optional attribute.
4014
<xs:attribute name="name" type="xs:NCName">
4017
The name attribute is the text string name of this element. Optional attribute.
4023
<xs:element name="library_animation_clips">
4026
The library_animation_clips element declares a module of animation_clip elements.
4031
<xs:element ref="asset" minOccurs="0">
4034
The library_animation_clips element may contain an asset element.
4038
<xs:element ref="animation_clip" maxOccurs="unbounded">
4041
There must be at least one animation_clip element.
4045
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4048
The extra element may appear any number of times.
4053
<xs:attribute name="id" type="xs:ID">
4056
The id attribute is a text string containing the unique identifier of this element.
4057
This value must be unique within the instance document. Optional attribute.
4061
<xs:attribute name="name" type="xs:NCName">
4064
The name attribute is the text string name of this element. Optional attribute.
4070
<xs:element name="library_cameras">
4073
The library_cameras element declares a module of camera elements.
4078
<xs:element ref="asset" minOccurs="0">
4081
The library_cameras element may contain an asset element.
4085
<xs:element ref="camera" maxOccurs="unbounded">
4088
There must be at least one camera element.
4092
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4095
The extra element may appear any number of times.
4100
<xs:attribute name="id" type="xs:ID">
4103
The id attribute is a text string containing the unique identifier of this element.
4104
This value must be unique within the instance document. Optional attribute.
4108
<xs:attribute name="name" type="xs:NCName">
4111
The name attribute is the text string name of this element. Optional attribute.
4117
<xs:element name="library_controllers">
4120
The library_controllers element declares a module of controller elements.
4125
<xs:element ref="asset" minOccurs="0">
4128
The library_controllers element may contain an asset element.
4132
<xs:element ref="controller" maxOccurs="unbounded">
4135
There must be at least one controller element.
4139
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4142
The extra element may appear any number of times.
4147
<xs:attribute name="id" type="xs:ID">
4150
The id attribute is a text string containing the unique identifier of this element.
4151
This value must be unique within the instance document. Optional attribute.
4155
<xs:attribute name="name" type="xs:NCName">
4158
The name attribute is the text string name of this element. Optional attribute.
4164
<xs:element name="library_geometries">
4167
The library_geometries element declares a module of geometry elements.
4172
<xs:element ref="asset" minOccurs="0">
4175
The library_geometries element may contain an asset element.
4179
<xs:element ref="geometry" maxOccurs="unbounded">
4182
There must be at least one geometry element.
4186
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4189
The extra element may appear any number of times.
4194
<xs:attribute name="id" type="xs:ID">
4197
The id attribute is a text string containing the unique identifier of this element.
4198
This value must be unique within the instance document. Optional attribute.
4202
<xs:attribute name="name" type="xs:NCName">
4205
The name attribute is the text string name of this element. Optional attribute.
4211
<xs:element name="library_effects">
4214
The library_effects element declares a module of effect elements.
4219
<xs:element ref="asset" minOccurs="0">
4222
The library_effects element may contain an asset element.
4226
<xs:element ref="effect" maxOccurs="unbounded">
4229
There must be at least one effect element.
4233
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4236
The extra element may appear any number of times.
4241
<xs:attribute name="id" type="xs:ID">
4244
The id attribute is a text string containing the unique identifier of this element.
4245
This value must be unique within the instance document. Optional attribute.
4249
<xs:attribute name="name" type="xs:NCName">
4252
The name attribute is the text string name of this element. Optional attribute.
4258
<xs:element name="library_force_fields">
4261
The library_force_fields element declares a module of force_field elements.
4266
<xs:element ref="asset" minOccurs="0">
4269
The library_force_fields element may contain an asset element.
4273
<xs:element ref="force_field" maxOccurs="unbounded">
4276
There must be at least one force_field element.
4280
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4283
The extra element may appear any number of times.
4288
<xs:attribute name="id" type="xs:ID">
4291
The id attribute is a text string containing the unique identifier of this element.
4292
This value must be unique within the instance document. Optional attribute.
4296
<xs:attribute name="name" type="xs:NCName">
4299
The name attribute is the text string name of this element. Optional attribute.
4305
<xs:element name="library_images">
4308
The library_images element declares a module of image elements.
4313
<xs:element ref="asset" minOccurs="0">
4316
The library_images element may contain an asset element.
4320
<xs:element ref="image" maxOccurs="unbounded">
4323
There must be at least one image element.
4327
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4330
The extra element may appear any number of times.
4335
<xs:attribute name="id" type="xs:ID">
4338
The id attribute is a text string containing the unique identifier of this element.
4339
This value must be unique within the instance document. Optional attribute.
4343
<xs:attribute name="name" type="xs:NCName">
4346
The name attribute is the text string name of this element. Optional attribute.
4352
<xs:element name="library_lights">
4355
The library_lights element declares a module of light elements.
4360
<xs:element ref="asset" minOccurs="0">
4363
The library_lights element may contain an asset element.
4367
<xs:element ref="light" maxOccurs="unbounded">
4370
There must be at least one light element.
4374
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4377
The extra element may appear any number of times.
4382
<xs:attribute name="id" type="xs:ID">
4385
The id attribute is a text string containing the unique identifier of this element.
4386
This value must be unique within the instance document. Optional attribute.
4390
<xs:attribute name="name" type="xs:NCName">
4393
The name attribute is the text string name of this element. Optional attribute.
4399
<xs:element name="library_materials">
4402
The library_materials element declares a module of material elements.
4407
<xs:element ref="asset" minOccurs="0">
4410
The library_materials element may contain an asset element.
4414
<xs:element ref="material" maxOccurs="unbounded">
4417
There must be at least one material element.
4421
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4424
The extra element may appear any number of times.
4429
<xs:attribute name="id" type="xs:ID">
4432
The id attribute is a text string containing the unique identifier of this element.
4433
This value must be unique within the instance document. Optional attribute.
4437
<xs:attribute name="name" type="xs:NCName">
4440
The name attribute is the text string name of this element. Optional attribute.
4446
<xs:element name="library_nodes">
4449
The library_nodes element declares a module of node elements.
4454
<xs:element ref="asset" minOccurs="0">
4457
The library_nodes element may contain an asset element.
4461
<xs:element ref="node" maxOccurs="unbounded">
4464
There must be at least one node element.
4468
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4471
The extra element may appear any number of times.
4476
<xs:attribute name="id" type="xs:ID">
4479
The id attribute is a text string containing the unique identifier of this element.
4480
This value must be unique within the instance document. Optional attribute.
4484
<xs:attribute name="name" type="xs:NCName">
4487
The name attribute is the text string name of this element. Optional attribute.
4493
<xs:element name="library_physics_materials">
4496
The library_physics_materials element declares a module of physics_material elements.
4501
<xs:element ref="asset" minOccurs="0">
4504
The library_physics_materials element may contain an asset element.
4508
<xs:element ref="physics_material" maxOccurs="unbounded">
4511
There must be at least one physics_material element.
4515
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4518
The extra element may appear any number of times.
4523
<xs:attribute name="id" type="xs:ID">
4526
The id attribute is a text string containing the unique identifier of this element.
4527
This value must be unique within the instance document. Optional attribute.
4531
<xs:attribute name="name" type="xs:NCName">
4534
The name attribute is the text string name of this element. Optional attribute.
4540
<xs:element name="library_physics_models">
4543
The library_physics_models element declares a module of physics_model elements.
4548
<xs:element ref="asset" minOccurs="0">
4551
The library_physics_models element may contain an asset element.
4555
<xs:element ref="physics_model" maxOccurs="unbounded">
4558
There must be at least one physics_model element.
4562
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4565
The extra element may appear any number of times.
4570
<xs:attribute name="id" type="xs:ID">
4573
The id attribute is a text string containing the unique identifier of this element.
4574
This value must be unique within the instance document. Optional attribute.
4578
<xs:attribute name="name" type="xs:NCName">
4581
The name attribute is the text string name of this element. Optional attribute.
4587
<xs:element name="library_physics_scenes">
4590
The library_physics_scenes element declares a module of physics_scene elements.
4595
<xs:element ref="asset" minOccurs="0">
4598
The library_physics_scenes element may contain an asset element.
4602
<xs:element ref="physics_scene" maxOccurs="unbounded">
4605
There must be at least one physics_scene element.
4609
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4612
The extra element may appear any number of times.
4617
<xs:attribute name="id" type="xs:ID">
4620
The id attribute is a text string containing the unique identifier of this element.
4621
This value must be unique within the instance document. Optional attribute.
4625
<xs:attribute name="name" type="xs:NCName">
4628
The name attribute is the text string name of this element. Optional attribute.
4634
<xs:element name="library_visual_scenes">
4637
The library_visual_scenes element declares a module of visual_scene elements.
4642
<xs:element ref="asset" minOccurs="0">
4645
The library_visual_scenes element may contain an asset element.
4649
<xs:element ref="visual_scene" maxOccurs="unbounded">
4652
There must be at least one visual_scene element.
4656
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
4659
The extra element may appear any number of times.
4664
<xs:attribute name="id" type="xs:ID">
4667
The id attribute is a text string containing the unique identifier of this element.
4668
This value must be unique within the instance document. Optional attribute.
4672
<xs:attribute name="name" type="xs:NCName">
4675
The name attribute is the text string name of this element. Optional attribute.
4681
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
4682
<!-- COLLADA FX types in common scope -->
4683
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
4684
<xs:simpleType name="fx_color_common">
4685
<xs:restriction base="float4"/>
4687
<xs:simpleType name="fx_opaque_enum">
4688
<xs:restriction base="xs:string">
4689
<xs:enumeration value="A_ONE">
4692
When a transparent opaque attribute is set to A_ONE, it means the transparency information will be taken from the alpha channel of the color, texture, or parameter supplying the value. The value of 1.0 is opaque in this mode.
4696
<xs:enumeration value="RGB_ZERO">
4699
When a transparent opaque attribute is set to RGB_ZERO, it means the transparency information will be taken from the red, green, and blue channels of the color, texture, or parameter supplying the value. Each channel is modulated independently. The value of 0.0 is opaque in this mode.
4705
<xs:simpleType name="fx_surface_type_enum">
4706
<xs:restriction base="xs:string">
4707
<xs:enumeration value="UNTYPED">
4710
When a surface's type attribute is set to UNTYPED, its type is initially unknown and established later by the context in which it is used, such as by a texture sampler that references it. A surface of any other type may be changed into an UNTYPED surface at run-time, as if it were created by <newparam>, using <setparam>. If there is a type mismatch between a <setparam> operation and what the run-time decides the type should be, the result is profile- and platform-specific behavior.
4714
<xs:enumeration value="1D"/>
4715
<xs:enumeration value="2D"/>
4716
<xs:enumeration value="3D"/>
4717
<xs:enumeration value="RECT"/>
4718
<xs:enumeration value="CUBE"/>
4719
<xs:enumeration value="DEPTH"/>
4722
<xs:simpleType name="fx_surface_face_enum">
4723
<xs:restriction base="xs:string">
4724
<xs:enumeration value="POSITIVE_X"/>
4725
<xs:enumeration value="NEGATIVE_X"/>
4726
<xs:enumeration value="POSITIVE_Y"/>
4727
<xs:enumeration value="NEGATIVE_Y"/>
4728
<xs:enumeration value="POSITIVE_Z"/>
4729
<xs:enumeration value="NEGATIVE_Z"/>
4732
<xs:simpleType name="fx_surface_format_hint_channels_enum">
4734
<xs:documentation>The per-texel layout of the format. The length of the string indicate how many channels there are and the letter respresents the name of the channel. There are typically 0 to 4 channels.</xs:documentation>
4736
<xs:restriction base="xs:string">
4737
<xs:enumeration value="RGB">
4739
<xs:documentation>RGB color map</xs:documentation>
4742
<xs:enumeration value="RGBA">
4744
<xs:documentation>RGB color + Alpha map often used for color + transparency or other things packed into channel A like specular power </xs:documentation>
4747
<xs:enumeration value="L">
4749
<xs:documentation>Luminance map often used for light mapping </xs:documentation>
4752
<xs:enumeration value="LA">
4754
<xs:documentation>Luminance+Alpha map often used for light mapping </xs:documentation>
4757
<xs:enumeration value="D">
4759
<xs:documentation>Depth map often used for displacement, parellax, relief, or shadow mapping </xs:documentation>
4762
<xs:enumeration value="XYZ">
4764
<xs:documentation>Typically used for normal maps or 3component displacement maps.</xs:documentation>
4767
<xs:enumeration value="XYZW">
4769
<xs:documentation>Typically used for normal maps where W is the depth for relief or parrallax mapping </xs:documentation>
4774
<xs:simpleType name="fx_surface_format_hint_precision_enum">
4776
<xs:documentation>Each channel of the texel has a precision. Typically these are all linked together. An exact format lay lower the precision of an individual channel but applying a higher precision by linking the channels together may still convey the same information.</xs:documentation>
4778
<xs:restriction base="xs:string">
4779
<xs:enumeration value="LOW">
4781
<xs:documentation>For integers this typically represents 8 bits. For floats typically 16 bits.</xs:documentation>
4784
<xs:enumeration value="MID">
4786
<xs:documentation>For integers this typically represents 8 to 24 bits. For floats typically 16 to 32 bits.</xs:documentation>
4789
<xs:enumeration value="HIGH">
4791
<xs:documentation>For integers this typically represents 16 to 32 bits. For floats typically 24 to 32 bits.</xs:documentation>
4796
<xs:simpleType name="fx_surface_format_hint_range_enum">
4798
<xs:documentation>Each channel represents a range of values. Some example ranges are signed or unsigned integers, or between between a clamped range such as 0.0f to 1.0f, or high dynamic range via floating point</xs:documentation>
4800
<xs:restriction base="xs:string">
4801
<xs:enumeration value="SNORM">
4803
<xs:documentation>Format is representing a decimal value that remains within the -1 to 1 range. Implimentation could be integer-fixedpoint or floats.</xs:documentation>
4806
<xs:enumeration value="UNORM">
4808
<xs:documentation>Format is representing a decimal value that remains within the 0 to 1 range. Implimentation could be integer-fixedpoint or floats.</xs:documentation>
4811
<xs:enumeration value="SINT">
4813
<xs:documentation>Format is representing signed integer numbers. (ex. 8bits = -128 to 127)</xs:documentation>
4816
<xs:enumeration value="UINT">
4818
<xs:documentation>Format is representing unsigned integer numbers. (ex. 8bits = 0 to 255)</xs:documentation>
4821
<xs:enumeration value="FLOAT">
4823
<xs:documentation>Format should support full floating point ranges. High precision is expected to be 32bit. Mid precision may be 16 to 32 bit. Low precision is expected to be 16 bit.</xs:documentation>
4828
<xs:simpleType name="fx_surface_format_hint_option_enum">
4830
<xs:documentation>Additional hints about data relationships and other things to help the application pick the best format.</xs:documentation>
4832
<xs:restriction base="xs:string">
4833
<xs:enumeration value="SRGB_GAMMA">
4835
<xs:documentation>colors are stored with respect to the sRGB 2.2 gamma curve rather than linear</xs:documentation>
4838
<xs:enumeration value="NORMALIZED3">
4840
<xs:documentation>the texel's XYZ/RGB should be normalized such as in a normal map.</xs:documentation>
4843
<xs:enumeration value="NORMALIZED4">
4845
<xs:documentation>the texel's XYZW/RGBA should be normalized such as in a normal map.</xs:documentation>
4848
<xs:enumeration value="COMPRESSABLE">
4850
<xs:documentation>The surface may use run-time compression. Considering the best compression based on desired, channel, range, precision, and options </xs:documentation>
4855
<xs:complexType name="fx_surface_format_hint_common">
4857
<xs:documentation>If the exact format cannot be resolve via other methods then the format_hint will describe the important features of the format so that the application may select a compatable or close format</xs:documentation>
4860
<xs:element name="channels" type="fx_surface_format_hint_channels_enum">
4862
<xs:documentation>The per-texel layout of the format. The length of the string indicate how many channels there are and the letter respresents the name of the channel. There are typically 0 to 4 channels.</xs:documentation>
4865
<xs:element name="range" type="fx_surface_format_hint_range_enum">
4867
<xs:documentation>Each channel represents a range of values. Some example ranges are signed or unsigned integers, or between between a clamped range such as 0.0f to 1.0f, or high dynamic range via floating point</xs:documentation>
4870
<xs:element name="precision" type="fx_surface_format_hint_precision_enum" minOccurs="0">
4872
<xs:documentation>Each channel of the texel has a precision. Typically these are all linked together. An exact format lay lower the precision of an individual channel but applying a higher precision by linking the channels together may still convey the same information.</xs:documentation>
4875
<xs:element name="option" type="fx_surface_format_hint_option_enum" minOccurs="0" maxOccurs="unbounded">
4877
<xs:documentation>Additional hints about data relationships and other things to help the application pick the best format.</xs:documentation>
4880
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
4883
<xs:complexType name="fx_surface_init_planar_common">
4885
<xs:documentation>For 1D, 2D, RECT surface types</xs:documentation>
4889
<xs:documentation>This choice exists for consistancy with other init types (volume and cube). When other initialization methods are needed.</xs:documentation>
4891
<xs:element name="all">
4893
<xs:documentation>Init the entire surface with one compound image such as DDS</xs:documentation>
4896
<xs:attribute name="ref" type="xs:IDREF" use="required"/>
4901
<xs:complexType name="fx_surface_init_volume_common">
4903
<xs:element name="all">
4905
<xs:documentation>Init the entire surface with one compound image such as DDS</xs:documentation>
4908
<xs:attribute name="ref" type="xs:IDREF" use="required"/>
4911
<xs:element name="primary">
4913
<xs:documentation>Init mip level 0 of the surface with one compound image such as DDS. Use of this element expects that the surface has element mip_levels=0 or mipmap_generate.</xs:documentation>
4916
<xs:attribute name="ref" type="xs:IDREF" use="required"/>
4921
<xs:complexType name="fx_surface_init_cube_common">
4923
<xs:element name="all">
4925
<xs:documentation>Init the entire surface with one compound image such as DDS</xs:documentation>
4928
<xs:attribute name="ref" type="xs:IDREF" use="required"/>
4931
<xs:element name="primary">
4933
<xs:documentation>Init all primary mip level 0 subsurfaces with one compound image such as DDS. Use of this element expects that the surface has element mip_levels=0 or mipmap_generate.</xs:documentation>
4936
<xs:sequence minOccurs="0">
4938
<xs:documentation>This sequence exists to allow the order elements to be optional but require that if they exist there must be 6 of them.</xs:documentation>
4940
<xs:element name="order" type="fx_surface_face_enum" minOccurs="6" maxOccurs="6">
4942
<xs:documentation>If the image dues not natively describe the face ordering then this series of order elements will describe which face the index belongs too</xs:documentation>
4946
<xs:attribute name="ref" type="xs:IDREF" use="required"/>
4949
<xs:element name="face" minOccurs="6" maxOccurs="6">
4951
<xs:documentation>Init each face mipchain with one compound image such as DDS</xs:documentation>
4954
<xs:attribute name="ref" type="xs:IDREF" use="required"/>
4959
<xs:complexType name="fx_surface_init_from_common">
4962
This element is an IDREF which specifies the image to use to initialize a specific mip of a 1D or 2D surface, 3D slice, or Cube face.
4966
<xs:extension base="xs:IDREF">
4967
<xs:attribute name="mip" type="xs:unsignedInt" default="0"/>
4968
<xs:attribute name="slice" type="xs:unsignedInt" default="0"/>
4969
<xs:attribute name="face" type="fx_surface_face_enum" default="POSITIVE_X"/>
4973
<xs:group name="fx_surface_init_common">
4975
<xs:documentation>The common set of initalization options for surfaces. Choose which is appropriate for your surface based on type and other characteristics. described by the annotation docs on the child elements.</xs:documentation>
4978
<xs:element name="init_as_null">
4980
<xs:documentation>This surface is intended to be initialized later externally by a "setparam" element. If it is used before being initialized there is profile and platform specific behavior. Most elements on the surface element containing this will be ignored including mip_levels, mipmap_generate, size, viewport_ratio, and format.</xs:documentation>
4983
<xs:element name="init_as_target">
4985
<xs:documentation>Init as a target for depth, stencil, or color. It does not need image data. Surface should not have mipmap_generate when using this.</xs:documentation>
4988
<xs:element name="init_cube" type="fx_surface_init_cube_common">
4990
<xs:documentation>Init a CUBE from a compound image such as DDS</xs:documentation>
4993
<xs:element name="init_volume" type="fx_surface_init_volume_common">
4995
<xs:documentation>Init a 3D from a compound image such as DDS</xs:documentation>
4998
<xs:element name="init_planar" type="fx_surface_init_planar_common">
5000
<xs:documentation>Init a 1D,2D,RECT,DEPTH from a compound image such as DDS</xs:documentation>
5003
<xs:element name="init_from" type="fx_surface_init_from_common" maxOccurs="unbounded">
5005
<xs:documentation>Initialize the surface one sub-surface at a time by specifying combinations of mip, face, and slice which make sense for a particular surface type. Each sub-surface is initialized by a common 2D image, not a complex compound image such as DDS. If not all subsurfaces are initialized, it is invalid and will result in profile and platform specific behavior unless mipmap_generate is responsible for initializing the remainder of the sub-surfaces</xs:documentation>
5010
<xs:complexType name="fx_surface_common">
5013
The fx_surface_common type is used to declare a resource that can be used both as the source for texture samples and as the target of a rendering pass.
5017
<xs:group ref="fx_surface_init_common" minOccurs="0">
5019
<xs:documentation>The common set of initalization options for surfaces. Choose which is appropriate for your surface based on the type attribute and other characteristics described by the annotation docs on the choiced child elements of this type.</xs:documentation>
5022
<xs:element name="format" type="xs:token" minOccurs="0">
5024
<xs:documentation>Contains a string representing the profile and platform specific texel format that the author would like this surface to use. If this element is not specified then the application will use a common format R8G8B8A8 with linear color gradient, not sRGB.</xs:documentation>
5027
<xs:element name="format_hint" type="fx_surface_format_hint_common" minOccurs="0">
5029
<xs:documentation>If the exact format cannot be resolved via the "format" element then the format_hint will describe the important features of the format so that the application may select a compatable or close format</xs:documentation>
5032
<xs:choice minOccurs="0">
5033
<xs:element name="size" type="int3" default="0 0 0">
5035
<xs:documentation>The surface should be sized to these exact dimensions</xs:documentation>
5038
<xs:element name="viewport_ratio" type="float2" default="1 1">
5040
<xs:documentation>The surface should be sized to a dimension based on this ratio of the viewport's dimensions in pixels</xs:documentation>
5044
<xs:element name="mip_levels" type="xs:unsignedInt" default="0" minOccurs="0">
5046
<xs:documentation>the surface should contain the following number of MIP levels. If this element is not present it is assumed that all miplevels exist until a dimension becomes 1 texel. To create a surface that has only one level of mip maps (mip=0) set this to 1. If the value is 0 the result is the same as if mip_levels was unspecified, all possible mip_levels will exist.</xs:documentation>
5049
<xs:element name="mipmap_generate" type="xs:boolean" minOccurs="0">
5051
<xs:documentation>By default it is assumed that mipmaps are supplied by the author so, if not all subsurfaces are initialized, it is invalid and will result in profile and platform specific behavior unless mipmap_generate is responsible for initializing the remainder of the sub-surfaces</xs:documentation>
5054
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
5056
<xs:attribute name="type" type="fx_surface_type_enum" use="required">
5058
<xs:documentation>Specifying the type of a surface is mandatory though the type may be "UNTYPED". When a surface is typed as UNTYPED, it is said to be temporarily untyped and instead will be typed later by the context it is used in such as which samplers reference it in that are used in a particular technique or pass. If there is a type mismatch between what is set into it later and what the runtime decides the type should be the result in profile and platform specific behavior.</xs:documentation>
5062
<xs:simpleType name="fx_sampler_wrap_common">
5063
<xs:restriction base="xs:NMTOKEN">
5064
<xs:enumeration value="NONE"/>
5065
<xs:enumeration value="WRAP"/>
5066
<xs:enumeration value="MIRROR"/>
5067
<xs:enumeration value="CLAMP"/>
5068
<xs:enumeration value="BORDER"/>
5071
<xs:simpleType name="fx_sampler_filter_common">
5072
<xs:restriction base="xs:NMTOKEN">
5073
<xs:enumeration value="NONE"/>
5074
<xs:enumeration value="NEAREST"/>
5075
<xs:enumeration value="LINEAR"/>
5076
<xs:enumeration value="NEAREST_MIPMAP_NEAREST"/>
5077
<xs:enumeration value="LINEAR_MIPMAP_NEAREST"/>
5078
<xs:enumeration value="NEAREST_MIPMAP_LINEAR"/>
5079
<xs:enumeration value="LINEAR_MIPMAP_LINEAR"/>
5082
<xs:complexType name="fx_sampler1D_common">
5085
A one-dimensional texture sampler.
5089
<xs:element name="source" type="xs:NCName"/>
5090
<xs:element name="wrap_s" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
5091
<xs:element name="minfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5092
<xs:element name="magfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5093
<xs:element name="mipfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5094
<xs:element name="border_color" type="fx_color_common" minOccurs="0"/>
5095
<xs:element name="mipmap_maxlevel" type="xs:unsignedByte" default="0" minOccurs="0"/>
5096
<xs:element name="mipmap_bias" type="xs:float" default="0.0" minOccurs="0"/>
5097
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
5100
<xs:complexType name="fx_sampler2D_common">
5103
A two-dimensional texture sampler.
5107
<xs:element name="source" type="xs:NCName"/>
5108
<xs:element name="wrap_s" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
5109
<xs:element name="wrap_t" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
5110
<xs:element name="minfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5111
<xs:element name="magfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5112
<xs:element name="mipfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5113
<xs:element name="border_color" type="fx_color_common" minOccurs="0"/>
5114
<xs:element name="mipmap_maxlevel" type="xs:unsignedByte" default="255" minOccurs="0"/>
5115
<xs:element name="mipmap_bias" type="xs:float" default="0.0" minOccurs="0"/>
5116
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
5119
<xs:complexType name="fx_sampler3D_common">
5122
A three-dimensional texture sampler.
5126
<xs:element name="source" type="xs:NCName"/>
5127
<xs:element name="wrap_s" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
5128
<xs:element name="wrap_t" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
5129
<xs:element name="wrap_p" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
5130
<xs:element name="minfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5131
<xs:element name="magfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5132
<xs:element name="mipfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5133
<xs:element name="border_color" type="fx_color_common" minOccurs="0"/>
5134
<xs:element name="mipmap_maxlevel" type="xs:unsignedByte" default="255" minOccurs="0"/>
5135
<xs:element name="mipmap_bias" type="xs:float" default="0.0" minOccurs="0"/>
5136
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
5139
<xs:complexType name="fx_samplerCUBE_common">
5142
A texture sampler for cube maps.
5146
<xs:element name="source" type="xs:NCName"/>
5147
<xs:element name="wrap_s" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
5148
<xs:element name="wrap_t" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
5149
<xs:element name="wrap_p" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
5150
<xs:element name="minfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5151
<xs:element name="magfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5152
<xs:element name="mipfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5153
<xs:element name="border_color" type="fx_color_common" minOccurs="0"/>
5154
<xs:element name="mipmap_maxlevel" type="xs:unsignedByte" default="255" minOccurs="0"/>
5155
<xs:element name="mipmap_bias" type="xs:float" default="0.0" minOccurs="0"/>
5156
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
5159
<xs:complexType name="fx_samplerRECT_common">
5162
A two-dimensional texture sampler.
5166
<xs:element name="source" type="xs:NCName"/>
5167
<xs:element name="wrap_s" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
5168
<xs:element name="wrap_t" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
5169
<xs:element name="minfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5170
<xs:element name="magfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5171
<xs:element name="mipfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5172
<xs:element name="border_color" type="fx_color_common" minOccurs="0"/>
5173
<xs:element name="mipmap_maxlevel" type="xs:unsignedByte" default="255" minOccurs="0"/>
5174
<xs:element name="mipmap_bias" type="xs:float" default="0.0" minOccurs="0"/>
5175
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
5178
<xs:complexType name="fx_samplerDEPTH_common">
5181
A texture sampler for depth maps.
5185
<xs:element name="source" type="xs:NCName"/>
5186
<xs:element name="wrap_s" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
5187
<xs:element name="wrap_t" type="fx_sampler_wrap_common" default="WRAP" minOccurs="0"/>
5188
<xs:element name="minfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5189
<xs:element name="magfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
5190
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
5193
<xs:group name="fx_annotate_type_common">
5196
A group that specifies the allowable types for an annotation.
5200
<xs:element name="bool" type="bool"/>
5201
<xs:element name="bool2" type="bool2"/>
5202
<xs:element name="bool3" type="bool3"/>
5203
<xs:element name="bool4" type="bool4"/>
5204
<xs:element name="int" type="int"/>
5205
<xs:element name="int2" type="int2"/>
5206
<xs:element name="int3" type="int3"/>
5207
<xs:element name="int4" type="int4"/>
5208
<xs:element name="float" type="float"/>
5209
<xs:element name="float2" type="float2"/>
5210
<xs:element name="float3" type="float3"/>
5211
<xs:element name="float4" type="float4"/>
5212
<xs:element name="float2x2" type="float2x2"/>
5213
<xs:element name="float3x3" type="float3x3"/>
5214
<xs:element name="float4x4" type="float4x4"/>
5215
<xs:element name="string" type="xs:string"/>
5218
<xs:group name="fx_basic_type_common">
5221
A group that specifies the allowable types for effect scoped parameters.
5225
<xs:element name="bool" type="bool"/>
5226
<xs:element name="bool2" type="bool2"/>
5227
<xs:element name="bool3" type="bool3"/>
5228
<xs:element name="bool4" type="bool4"/>
5229
<xs:element name="int" type="int"/>
5230
<xs:element name="int2" type="int2"/>
5231
<xs:element name="int3" type="int3"/>
5232
<xs:element name="int4" type="int4"/>
5233
<xs:element name="float" type="float"/>
5234
<xs:element name="float2" type="float2"/>
5235
<xs:element name="float3" type="float3"/>
5236
<xs:element name="float4" type="float4"/>
5237
<xs:element name="float1x1" type="float"/>
5238
<xs:element name="float1x2" type="float2"/>
5239
<xs:element name="float1x3" type="float3"/>
5240
<xs:element name="float1x4" type="float4"/>
5241
<xs:element name="float2x1" type="float2"/>
5242
<xs:element name="float2x2" type="float2x2"/>
5243
<xs:element name="float2x3" type="float2x3"/>
5244
<xs:element name="float2x4" type="float2x4"/>
5245
<xs:element name="float3x1" type="float3"/>
5246
<xs:element name="float3x2" type="float3x2"/>
5247
<xs:element name="float3x3" type="float3x3"/>
5248
<xs:element name="float3x4" type="float3x4"/>
5249
<xs:element name="float4x1" type="float4"/>
5250
<xs:element name="float4x2" type="float4x2"/>
5251
<xs:element name="float4x3" type="float4x3"/>
5252
<xs:element name="float4x4" type="float4x4"/>
5253
<xs:element name="surface" type="fx_surface_common"/>
5254
<xs:element name="sampler1D" type="fx_sampler1D_common"/>
5255
<xs:element name="sampler2D" type="fx_sampler2D_common"/>
5256
<xs:element name="sampler3D" type="fx_sampler3D_common"/>
5257
<xs:element name="samplerCUBE" type="fx_samplerCUBE_common"/>
5258
<xs:element name="samplerRECT" type="fx_samplerRECT_common"/>
5259
<xs:element name="samplerDEPTH" type="fx_samplerDEPTH_common"/>
5260
<xs:element name="enum" type="xs:string"/>
5263
<xs:simpleType name="fx_modifier_enum_common">
5264
<xs:restriction base="xs:NMTOKEN">
5265
<xs:enumeration value="CONST"/>
5266
<xs:enumeration value="UNIFORM"/>
5267
<xs:enumeration value="VARYING"/>
5268
<xs:enumeration value="STATIC"/>
5269
<xs:enumeration value="VOLATILE"/>
5270
<xs:enumeration value="EXTERN"/>
5271
<xs:enumeration value="SHARED"/>
5274
<xs:complexType name="fx_colortarget_common">
5276
<xs:extension base="xs:NCName">
5277
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional" default="0"/>
5278
<xs:attribute name="face" type="fx_surface_face_enum" use="optional" default="POSITIVE_X"/>
5279
<xs:attribute name="mip" type="xs:nonNegativeInteger" use="optional" default="0"/>
5280
<xs:attribute name="slice" type="xs:nonNegativeInteger" use="optional" default="0"/>
5284
<xs:complexType name="fx_depthtarget_common">
5286
<xs:extension base="xs:NCName">
5287
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional" default="0"/>
5288
<xs:attribute name="face" type="fx_surface_face_enum" use="optional" default="POSITIVE_X"/>
5289
<xs:attribute name="mip" type="xs:nonNegativeInteger" use="optional" default="0"/>
5290
<xs:attribute name="slice" type="xs:nonNegativeInteger" use="optional" default="0"/>
5294
<xs:complexType name="fx_stenciltarget_common">
5296
<xs:extension base="xs:NCName">
5297
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional" default="0"/>
5298
<xs:attribute name="face" type="fx_surface_face_enum" use="optional" default="POSITIVE_X"/>
5299
<xs:attribute name="mip" type="xs:nonNegativeInteger" use="optional" default="0"/>
5300
<xs:attribute name="slice" type="xs:nonNegativeInteger" use="optional" default="0"/>
5304
<xs:complexType name="fx_clearcolor_common">
5306
<xs:extension base="fx_color_common">
5307
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional" default="0"/>
5311
<xs:complexType name="fx_cleardepth_common">
5313
<xs:extension base="float">
5314
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional" default="0"/>
5318
<xs:complexType name="fx_clearstencil_common">
5320
<xs:extension base="xs:byte">
5321
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional" default="0"/>
5325
<xs:simpleType name="fx_draw_common">
5326
<xs:restriction base="xs:string"/>
5328
<xs:simpleType name="fx_pipeline_stage_common">
5329
<xs:restriction base="xs:string">
5330
<xs:enumeration value="VERTEXPROGRAM"/>
5331
<xs:enumeration value="FRAGMENTPROGRAM"/>
5332
<xs:enumeration value="VERTEXSHADER"/>
5333
<xs:enumeration value="PIXELSHADER"/>
5336
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
5337
<!-- COLLADA FX elements in common scope -->
5338
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -->
5339
<xs:complexType name="fx_annotate_common">
5341
<xs:group ref="fx_annotate_type_common"/>
5343
<xs:attribute name="name" type="xs:NCName" use="required"/>
5345
<xs:complexType name="fx_include_common">
5348
The include element is used to import source code or precompiled binary shaders into the FX Runtime by referencing an external resource.
5351
<xs:attribute name="sid" type="xs:NCName" use="required">
5354
The sid attribute is a text string value containing the sub-identifier of this element.
5355
This value must be unique within the scope of the parent element. Optional attribute.
5359
<xs:attribute name="url" type="xs:anyURI" use="required">
5362
The url attribute refers to resource. This may refer to a local resource using a relative URL
5363
fragment identifier that begins with the ā#ā character. The url attribute may refer to an external
5364
resource using an absolute or relative URL.
5369
<xs:complexType name="fx_newparam_common">
5372
This element creates a new, named param object in the FX Runtime, assigns it a type, an initial value, and additional attributes at declaration time.
5376
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded">
5379
The annotate element allows you to specify an annotation for this new param.
5383
<xs:element name="semantic" type="xs:NCName" minOccurs="0">
5386
The semantic element allows you to specify a semantic for this new param.
5390
<xs:element name="modifier" type="fx_modifier_enum_common" minOccurs="0">
5393
The modifier element allows you to specify a modifier for this new param.
5397
<xs:group ref="fx_basic_type_common"/>
5399
<xs:attribute name="sid" type="xs:NCName" use="required">
5402
The sid attribute is a text string value containing the sub-identifier of this element.
5403
This value must be unique within the scope of the parent element. Optional attribute.
5408
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
5409
<!-- COLLADA FX types in profile scope -->
5410
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
5411
<xs:complexType name="fx_code_profile">
5414
The fx_code_profile type allows you to specify an inline block of source code.
5418
<xs:extension base="xs:string">
5419
<xs:attribute name="sid" type="xs:NCName" use="optional">
5422
The sid attribute is a text string value containing the sub-identifier of this element.
5423
This value must be unique within the scope of the parent element. Optional attribute.
5430
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
5431
<!-- COLLADA FX effect elements -->
5432
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
5433
<xs:element name="fx_profile_abstract" abstract="true">
5436
The fx_profile_abstract element is only used as a substitution group hook for COLLADA FX profiles.
5440
<xs:element name="effect">
5443
A self contained description of a shader effect.
5448
<xs:element ref="asset" minOccurs="0">
5451
The effect element may contain an asset element.
5455
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded">
5458
The annotate element allows you to specify an annotation on this effect.
5462
<xs:element ref="image" minOccurs="0" maxOccurs="unbounded">
5465
The image element allows you to create image resources which can be shared by multipe profiles.
5469
<xs:element name="newparam" type="fx_newparam_common" minOccurs="0" maxOccurs="unbounded">
5472
The newparam element allows you to create new effect parameters which can be shared by multipe profiles.
5476
<xs:element ref="fx_profile_abstract" maxOccurs="unbounded">
5479
This is the substituion group hook which allows you to swap in other COLLADA FX profiles.
5483
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
5486
The extra element may appear any number of times.
5491
<xs:attribute name="id" type="xs:ID" use="required">
5494
The id attribute is a text string containing the unique identifier of this element.
5495
This value must be unique within the instance document. Optional attribute.
5499
<xs:attribute name="name" type="xs:NCName">
5502
The name attribute is the text string name of this element. Optional attribute.
5508
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
5509
<!-- COLLADA FX GLSL elements -->
5510
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
5511
<xs:simpleType name="GL_MAX_LIGHTS_index">
5512
<xs:restriction base="xs:nonNegativeInteger">
5513
<xs:minInclusive value="0"/>
5516
<xs:simpleType name="GL_MAX_CLIP_PLANES_index">
5517
<xs:restriction base="xs:nonNegativeInteger">
5518
<xs:minInclusive value="0"/>
5521
<xs:simpleType name="GL_MAX_TEXTURE_IMAGE_UNITS_index">
5522
<xs:restriction base="xs:nonNegativeInteger">
5523
<xs:minInclusive value="0"/>
5526
<xs:complexType name="gl_sampler1D">
5529
A one-dimensional texture sampler for the GLSL profile.
5533
<xs:extension base="fx_sampler1D_common"/>
5534
</xs:complexContent>
5536
<xs:complexType name="gl_sampler2D">
5539
A two-dimensional texture sampler for the GLSL profile.
5543
<xs:extension base="fx_sampler2D_common"/>
5544
</xs:complexContent>
5546
<xs:complexType name="gl_sampler3D">
5549
A three-dimensional texture sampler for the GLSL profile.
5553
<xs:extension base="fx_sampler3D_common"/>
5554
</xs:complexContent>
5556
<xs:complexType name="gl_samplerCUBE">
5559
A cube map texture sampler for the GLSL profile.
5563
<xs:extension base="fx_samplerCUBE_common"/>
5564
</xs:complexContent>
5566
<xs:complexType name="gl_samplerRECT">
5569
A two-dimensional texture sampler for the GLSL profile.
5573
<xs:extension base="fx_samplerRECT_common"/>
5574
</xs:complexContent>
5576
<xs:complexType name="gl_samplerDEPTH">
5579
A depth texture sampler for the GLSL profile.
5583
<xs:extension base="fx_samplerDEPTH_common"/>
5584
</xs:complexContent>
5586
<xs:simpleType name="gl_blend_type">
5587
<xs:restriction base="xs:string">
5588
<xs:enumeration value="ZERO">
5590
<xs:appinfo>value=0x0</xs:appinfo>
5593
<xs:enumeration value="ONE">
5595
<xs:appinfo>value=0x1</xs:appinfo>
5598
<xs:enumeration value="SRC_COLOR">
5600
<xs:appinfo>value=0x0300</xs:appinfo>
5603
<xs:enumeration value="ONE_MINUS_SRC_COLOR">
5605
<xs:appinfo>value=0x0301</xs:appinfo>
5608
<xs:enumeration value="DEST_COLOR">
5610
<xs:appinfo>value=0x0306</xs:appinfo>
5613
<xs:enumeration value="ONE_MINUS_DEST_COLOR">
5615
<xs:appinfo>value=0x0307</xs:appinfo>
5618
<xs:enumeration value="SRC_ALPHA">
5620
<xs:appinfo>value=0x0302</xs:appinfo>
5623
<xs:enumeration value="ONE_MINUS_SRC_ALPHA">
5625
<xs:appinfo>value=0x0303</xs:appinfo>
5628
<xs:enumeration value="DST_ALPHA">
5630
<xs:appinfo>value=0x0304</xs:appinfo>
5633
<xs:enumeration value="ONE_MINUS_DST_ALPHA">
5635
<xs:appinfo>value=0x0305</xs:appinfo>
5638
<xs:enumeration value="CONSTANT_COLOR">
5640
<xs:appinfo>value=0x8001</xs:appinfo>
5643
<xs:enumeration value="ONE_MINUS_CONSTANT_COLOR">
5645
<xs:appinfo>value=0x8002</xs:appinfo>
5648
<xs:enumeration value="CONSTANT_ALPHA">
5650
<xs:appinfo>value=0x8003</xs:appinfo>
5653
<xs:enumeration value="ONE_MINUS_CONSTANT_ALPHA">
5655
<xs:appinfo>value=0x8004</xs:appinfo>
5658
<xs:enumeration value="SRC_ALPHA_SATURATE">
5660
<xs:appinfo>value=0x0308</xs:appinfo>
5665
<xs:simpleType name="gl_face_type">
5666
<xs:restriction base="xs:string">
5667
<xs:enumeration value="FRONT">
5669
<xs:appinfo>value=0x0404</xs:appinfo>
5672
<xs:enumeration value="BACK">
5674
<xs:appinfo>value=0x0405</xs:appinfo>
5677
<xs:enumeration value="FRONT_AND_BACK">
5679
<xs:appinfo>value=0x0408</xs:appinfo>
5684
<xs:simpleType name="gl_blend_equation_type">
5685
<xs:restriction base="xs:string">
5686
<xs:enumeration value="FUNC_ADD">
5688
<xs:appinfo>value=0x8006</xs:appinfo>
5691
<xs:enumeration value="FUNC_SUBTRACT">
5693
<xs:appinfo>value=0x800A</xs:appinfo>
5696
<xs:enumeration value="FUNC_REVERSE_SUBTRACT">
5698
<xs:appinfo>value=0x800B</xs:appinfo>
5701
<xs:enumeration value="MIN">
5703
<xs:appinfo>value=0x8007</xs:appinfo>
5706
<xs:enumeration value="MAX">
5708
<xs:appinfo>value=0x8008</xs:appinfo>
5713
<xs:simpleType name="gl_func_type">
5714
<xs:restriction base="xs:string">
5715
<xs:enumeration value="NEVER">
5717
<xs:appinfo>value=0x0200</xs:appinfo>
5720
<xs:enumeration value="LESS">
5722
<xs:appinfo>value=0x0201</xs:appinfo>
5725
<xs:enumeration value="LEQUAL">
5727
<xs:appinfo>value=0x0203</xs:appinfo>
5730
<xs:enumeration value="EQUAL">
5732
<xs:appinfo>value=0x0202</xs:appinfo>
5735
<xs:enumeration value="GREATER">
5737
<xs:appinfo>value=0x0204</xs:appinfo>
5740
<xs:enumeration value="NOTEQUAL">
5742
<xs:appinfo>value=0x0205</xs:appinfo>
5745
<xs:enumeration value="GEQUAL">
5747
<xs:appinfo>value=0x0206</xs:appinfo>
5750
<xs:enumeration value="ALWAYS">
5752
<xs:appinfo>value=0x0207</xs:appinfo>
5757
<xs:simpleType name="gl_stencil_op_type">
5758
<xs:restriction base="xs:string">
5759
<xs:enumeration value="KEEP">
5761
<xs:appinfo>value=0x1E00</xs:appinfo>
5764
<xs:enumeration value="ZERO">
5766
<xs:appinfo>value=0x0</xs:appinfo>
5769
<xs:enumeration value="REPLACE">
5771
<xs:appinfo>value=0x1E01</xs:appinfo>
5774
<xs:enumeration value="INCR">
5776
<xs:appinfo>value=0x1E02</xs:appinfo>
5779
<xs:enumeration value="DECR">
5781
<xs:appinfo>value=0x1E03</xs:appinfo>
5784
<xs:enumeration value="INVERT">
5786
<xs:appinfo>value=0x150A</xs:appinfo>
5789
<xs:enumeration value="INCR_WRAP">
5791
<xs:appinfo>value=0x8507</xs:appinfo>
5794
<xs:enumeration value="DECR_WRAP">
5796
<xs:appinfo>value=0x8508</xs:appinfo>
5801
<xs:simpleType name="gl_material_type">
5802
<xs:restriction base="xs:string">
5803
<xs:enumeration value="EMISSION">
5805
<xs:appinfo>value=0x1600</xs:appinfo>
5808
<xs:enumeration value="AMBIENT">
5810
<xs:appinfo>value=0x1200</xs:appinfo>
5813
<xs:enumeration value="DIFFUSE">
5815
<xs:appinfo>value=0x1201</xs:appinfo>
5818
<xs:enumeration value="SPECULAR">
5820
<xs:appinfo>value=0x1202</xs:appinfo>
5823
<xs:enumeration value="AMBIENT_AND_DIFFUSE">
5825
<xs:appinfo>value=0x1602</xs:appinfo>
5830
<xs:simpleType name="gl_fog_type">
5831
<xs:restriction base="xs:string">
5832
<xs:enumeration value="LINEAR">
5834
<xs:appinfo>value=0x2601</xs:appinfo>
5837
<xs:enumeration value="EXP">
5839
<xs:appinfo>value=0x0800</xs:appinfo>
5842
<xs:enumeration value="EXP2">
5844
<xs:appinfo>value=0x0801</xs:appinfo>
5849
<xs:simpleType name="gl_fog_coord_src_type">
5850
<xs:restriction base="xs:string">
5851
<xs:enumeration value="FOG_COORDINATE">
5853
<xs:appinfo>value=0x8451</xs:appinfo>
5856
<xs:enumeration value="FRAGMENT_DEPTH">
5858
<xs:appinfo>value=0x8452</xs:appinfo>
5863
<xs:simpleType name="gl_front_face_type">
5864
<xs:restriction base="xs:string">
5865
<xs:enumeration value="CW">
5867
<xs:appinfo>value=0x0900</xs:appinfo>
5870
<xs:enumeration value="CCW">
5872
<xs:appinfo>value=0x0901</xs:appinfo>
5877
<xs:simpleType name="gl_light_model_color_control_type">
5878
<xs:restriction base="xs:string">
5879
<xs:enumeration value="SINGLE_COLOR">
5881
<xs:appinfo>value=0x81F9</xs:appinfo>
5884
<xs:enumeration value="SEPARATE_SPECULAR_COLOR">
5886
<xs:appinfo>value=0x81FA</xs:appinfo>
5891
<xs:simpleType name="gl_logic_op_type">
5892
<xs:restriction base="xs:string">
5893
<xs:enumeration value="CLEAR">
5895
<xs:appinfo>value=0x1500</xs:appinfo>
5898
<xs:enumeration value="AND">
5900
<xs:appinfo>value=0x1501</xs:appinfo>
5903
<xs:enumeration value="AND_REVERSE">
5905
<xs:appinfo>value=0x1502</xs:appinfo>
5908
<xs:enumeration value="COPY">
5910
<xs:appinfo>value=0x1503</xs:appinfo>
5913
<xs:enumeration value="AND_INVERTED">
5915
<xs:appinfo>value=0x1504</xs:appinfo>
5918
<xs:enumeration value="NOOP">
5920
<xs:appinfo>value=0x1505</xs:appinfo>
5923
<xs:enumeration value="XOR">
5925
<xs:appinfo>value=0x1506</xs:appinfo>
5928
<xs:enumeration value="OR">
5930
<xs:appinfo>value=0x1507</xs:appinfo>
5933
<xs:enumeration value="NOR">
5935
<xs:appinfo>value=0x1508</xs:appinfo>
5938
<xs:enumeration value="EQUIV">
5940
<xs:appinfo>value=0x1509</xs:appinfo>
5943
<xs:enumeration value="INVERT">
5945
<xs:appinfo>value=0x150A</xs:appinfo>
5948
<xs:enumeration value="OR_REVERSE">
5950
<xs:appinfo>value=0x150B</xs:appinfo>
5953
<xs:enumeration value="COPY_INVERTED">
5955
<xs:appinfo>value=0x150C</xs:appinfo>
5958
<xs:enumeration value="NAND">
5960
<xs:appinfo>value=0x150E</xs:appinfo>
5963
<xs:enumeration value="SET">
5965
<xs:appinfo>value=0x150F</xs:appinfo>
5970
<xs:simpleType name="gl_polygon_mode_type">
5971
<xs:restriction base="xs:string">
5972
<xs:enumeration value="POINT">
5974
<xs:appinfo>value=0x1B00</xs:appinfo>
5977
<xs:enumeration value="LINE">
5979
<xs:appinfo>value=0x1B01</xs:appinfo>
5982
<xs:enumeration value="FILL">
5984
<xs:appinfo>value=0x1B02</xs:appinfo>
5989
<xs:simpleType name="gl_shade_model_type">
5990
<xs:restriction base="xs:string">
5991
<xs:enumeration value="FLAT">
5993
<xs:appinfo>value=0x1D00</xs:appinfo>
5996
<xs:enumeration value="SMOOTH">
5998
<xs:appinfo>value=0x1D01</xs:appinfo>
6003
<xs:simpleType name="gl_alpha_value_type">
6004
<xs:restriction base="xs:float">
6005
<xs:minInclusive value="0.0"/>
6006
<xs:maxInclusive value="1.0"/>
6009
<xs:simpleType name="gl_enumeration">
6010
<xs:union memberTypes="gl_blend_type gl_face_type gl_blend_equation_type gl_func_type gl_stencil_op_type gl_material_type gl_fog_type gl_fog_coord_src_type gl_front_face_type gl_light_model_color_control_type gl_logic_op_type gl_polygon_mode_type gl_shade_model_type"/>
6012
<xs:group name="gl_pipeline_settings">
6015
A group that defines all of the renderstates used for the CG and GLSL profiles.
6019
<xs:element name="alpha_func">
6022
<xs:element name="func">
6024
<xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
6025
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6028
<xs:element name="value">
6030
<xs:attribute name="value" type="gl_alpha_value_type" use="optional" default="0.0"/>
6031
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6037
<xs:element name="blend_func">
6040
<xs:element name="src">
6042
<xs:attribute name="value" type="gl_blend_type" use="optional" default="ONE"/>
6043
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6046
<xs:element name="dest">
6048
<xs:attribute name="value" type="gl_blend_type" use="optional" default="ZERO"/>
6049
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6055
<xs:element name="blend_func_separate">
6058
<xs:element name="src_rgb">
6060
<xs:attribute name="value" type="gl_blend_type" use="optional" default="ONE"/>
6061
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6064
<xs:element name="dest_rgb">
6066
<xs:attribute name="value" type="gl_blend_type" use="optional" default="ZERO"/>
6067
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6070
<xs:element name="src_alpha">
6072
<xs:attribute name="value" type="gl_blend_type" use="optional" default="ONE"/>
6073
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6076
<xs:element name="dest_alpha">
6078
<xs:attribute name="value" type="gl_blend_type" use="optional" default="ZERO"/>
6079
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6085
<xs:element name="blend_equation">
6087
<xs:attribute name="value" type="gl_blend_equation_type" use="optional" default="FUNC_ADD"/>
6088
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6091
<xs:element name="blend_equation_separate">
6094
<xs:element name="rgb">
6096
<xs:attribute name="value" type="gl_blend_equation_type" use="optional" default="FUNC_ADD"/>
6097
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6100
<xs:element name="alpha">
6102
<xs:attribute name="value" type="gl_blend_equation_type" use="optional" default="FUNC_ADD"/>
6103
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6109
<xs:element name="color_material">
6112
<xs:element name="face">
6114
<xs:attribute name="value" type="gl_face_type" use="optional" default="FRONT_AND_BACK"/>
6115
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6118
<xs:element name="mode">
6120
<xs:attribute name="value" type="gl_material_type" use="optional" default="AMBIENT_AND_DIFFUSE"/>
6121
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6127
<xs:element name="cull_face">
6129
<xs:attribute name="value" type="gl_face_type" use="optional" default="BACK"/>
6130
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6133
<xs:element name="depth_func">
6135
<xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
6136
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6139
<xs:element name="fog_mode">
6141
<xs:attribute name="value" type="gl_fog_type" use="optional" default="EXP"/>
6142
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6145
<xs:element name="fog_coord_src">
6147
<xs:attribute name="value" type="gl_fog_coord_src_type" use="optional" default="FOG_COORDINATE"/>
6148
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6151
<xs:element name="front_face">
6153
<xs:attribute name="value" type="gl_front_face_type" use="optional" default="CCW"/>
6154
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6157
<xs:element name="light_model_color_control">
6159
<xs:attribute name="value" type="gl_light_model_color_control_type" use="optional" default="SINGLE_COLOR"/>
6160
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6163
<xs:element name="logic_op">
6165
<xs:attribute name="value" type="gl_logic_op_type" use="optional" default="COPY"/>
6166
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6169
<xs:element name="polygon_mode">
6172
<xs:element name="face">
6174
<xs:attribute name="value" type="gl_face_type" use="optional" default="FRONT_AND_BACK"/>
6175
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6178
<xs:element name="mode">
6180
<xs:attribute name="value" type="gl_polygon_mode_type" use="optional" default="FILL"/>
6181
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6187
<xs:element name="shade_model">
6189
<xs:attribute name="value" type="gl_shade_model_type" use="optional" default="SMOOTH"/>
6190
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6193
<xs:element name="stencil_func">
6196
<xs:element name="func">
6198
<xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
6199
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6202
<xs:element name="ref">
6204
<xs:attribute name="value" type="xs:unsignedByte" use="optional" default="0"/>
6205
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6208
<xs:element name="mask">
6210
<xs:attribute name="value" type="xs:unsignedByte" use="optional" default="255"/>
6211
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6217
<xs:element name="stencil_op">
6220
<xs:element name="fail">
6222
<xs:attribute name="value" type="gl_stencil_op_type" use="optional" default="KEEP"/>
6223
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6226
<xs:element name="zfail">
6228
<xs:attribute name="value" type="gl_stencil_op_type" use="optional" default="KEEP"/>
6229
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6232
<xs:element name="zpass">
6234
<xs:attribute name="value" type="gl_stencil_op_type" use="optional" default="KEEP"/>
6235
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6241
<xs:element name="stencil_func_separate">
6244
<xs:element name="front">
6246
<xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
6247
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6250
<xs:element name="back">
6252
<xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
6253
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6256
<xs:element name="ref">
6258
<xs:attribute name="value" type="xs:unsignedByte" use="optional" default="0"/>
6259
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6262
<xs:element name="mask">
6264
<xs:attribute name="value" type="xs:unsignedByte" use="optional" default="255"/>
6265
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6271
<xs:element name="stencil_op_separate">
6274
<xs:element name="face">
6276
<xs:attribute name="value" type="gl_face_type" use="optional" default="FRONT_AND_BACK"/>
6277
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6280
<xs:element name="fail">
6282
<xs:attribute name="value" type="gl_stencil_op_type" use="optional" default="KEEP"/>
6283
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6286
<xs:element name="zfail">
6288
<xs:attribute name="value" type="gl_stencil_op_type" use="optional" default="KEEP"/>
6289
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6292
<xs:element name="zpass">
6294
<xs:attribute name="value" type="gl_stencil_op_type" use="optional" default="KEEP"/>
6295
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6301
<xs:element name="stencil_mask_separate">
6304
<xs:element name="face">
6306
<xs:attribute name="value" type="gl_face_type" use="optional" default="FRONT_AND_BACK"/>
6307
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6310
<xs:element name="mask">
6312
<xs:attribute name="value" type="xs:unsignedByte" use="optional" default="255"/>
6313
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6319
<xs:element name="light_enable">
6321
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6322
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6323
<xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
6326
<xs:element name="light_ambient">
6328
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 1"/>
6329
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6330
<xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
6333
<xs:element name="light_diffuse">
6335
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
6336
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6337
<xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
6340
<xs:element name="light_specular">
6342
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
6343
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6344
<xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
6347
<xs:element name="light_position">
6349
<xs:attribute name="value" type="float4" use="optional" default="0 0 1 0"/>
6350
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6351
<xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
6354
<xs:element name="light_constant_attenuation">
6356
<xs:attribute name="value" type="float" use="optional" default="1"/>
6357
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6358
<xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
6361
<xs:element name="light_linear_attenuation">
6363
<xs:attribute name="value" type="float" use="optional" default="0"/>
6364
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6365
<xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
6368
<xs:element name="light_quadratic_attenuation">
6370
<xs:attribute name="value" type="float" use="optional" default="0"/>
6371
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6372
<xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
6375
<xs:element name="light_spot_cutoff">
6377
<xs:attribute name="value" type="float" use="optional" default="180"/>
6378
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6379
<xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
6382
<xs:element name="light_spot_direction">
6384
<xs:attribute name="value" type="float3" use="optional" default="0 0 -1"/>
6385
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6386
<xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
6389
<xs:element name="light_spot_exponent">
6391
<xs:attribute name="value" type="float" use="optional" default="0"/>
6392
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6393
<xs:attribute name="index" type="GL_MAX_LIGHTS_index" use="required"/>
6396
<xs:element name="texture1D">
6399
<xs:element name="value" type="gl_sampler1D"/>
6400
<xs:element name="param" type="xs:NCName"/>
6402
<xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index" use="required"/>
6405
<xs:element name="texture2D">
6408
<xs:element name="value" type="gl_sampler2D"/>
6409
<xs:element name="param" type="xs:NCName"/>
6411
<xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index" use="required"/>
6414
<xs:element name="texture3D">
6417
<xs:element name="value" type="gl_sampler3D"/>
6418
<xs:element name="param" type="xs:NCName"/>
6420
<xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index" use="required"/>
6423
<xs:element name="textureCUBE">
6426
<xs:element name="value" type="gl_samplerCUBE"/>
6427
<xs:element name="param" type="xs:NCName"/>
6429
<xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index" use="required"/>
6432
<xs:element name="textureRECT">
6435
<xs:element name="value" type="gl_samplerRECT"/>
6436
<xs:element name="param" type="xs:NCName"/>
6438
<xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index" use="required"/>
6441
<xs:element name="textureDEPTH">
6444
<xs:element name="value" type="gl_samplerDEPTH"/>
6445
<xs:element name="param" type="xs:NCName"/>
6447
<xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index" use="required"/>
6450
<xs:element name="texture1D_enable">
6452
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6453
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6454
<xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
6457
<xs:element name="texture2D_enable">
6459
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6460
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6461
<xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
6464
<xs:element name="texture3D_enable">
6466
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6467
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6468
<xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
6471
<xs:element name="textureCUBE_enable">
6473
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6474
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6475
<xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
6478
<xs:element name="textureRECT_enable">
6480
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6481
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6482
<xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
6485
<xs:element name="textureDEPTH_enable">
6487
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6488
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6489
<xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
6492
<xs:element name="texture_env_color">
6494
<xs:attribute name="value" type="float4" use="optional"/>
6495
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6496
<xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
6499
<xs:element name="texture_env_mode">
6501
<xs:attribute name="value" type="string" use="optional"/>
6502
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6503
<xs:attribute name="index" type="GL_MAX_TEXTURE_IMAGE_UNITS_index"/>
6506
<xs:element name="clip_plane">
6508
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
6509
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6510
<xs:attribute name="index" type="GL_MAX_CLIP_PLANES_index"/>
6513
<xs:element name="clip_plane_enable">
6515
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6516
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6517
<xs:attribute name="index" type="GL_MAX_CLIP_PLANES_index"/>
6520
<xs:element name="blend_color">
6522
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
6523
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6526
<xs:element name="clear_color">
6528
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
6529
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6532
<xs:element name="clear_stencil">
6534
<xs:attribute name="value" type="int" use="optional" default="0"/>
6535
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6538
<xs:element name="clear_depth">
6540
<xs:attribute name="value" type="float" use="optional" default="1"/>
6541
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6544
<xs:element name="color_mask">
6546
<xs:attribute name="value" type="bool4" use="optional" default="true true true true"/>
6547
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6550
<xs:element name="depth_bounds">
6552
<xs:attribute name="value" type="float2" use="optional"/>
6553
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6556
<xs:element name="depth_mask">
6558
<xs:attribute name="value" type="bool" use="optional" default="true"/>
6559
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6562
<xs:element name="depth_range">
6564
<xs:attribute name="value" type="float2" use="optional" default="0 1"/>
6565
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6568
<xs:element name="fog_density">
6570
<xs:attribute name="value" type="float" use="optional" default="1"/>
6571
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6574
<xs:element name="fog_start">
6576
<xs:attribute name="value" type="float" use="optional" default="0"/>
6577
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6580
<xs:element name="fog_end">
6582
<xs:attribute name="value" type="float" use="optional" default="1"/>
6583
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6586
<xs:element name="fog_color">
6588
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
6589
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6592
<xs:element name="light_model_ambient">
6594
<xs:attribute name="value" type="float4" use="optional" default="0.2 0.2 0.2 1.0"/>
6595
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6598
<xs:element name="lighting_enable">
6600
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6601
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6604
<xs:element name="line_stipple">
6606
<xs:attribute name="value" type="int2" use="optional" default="1 65536"/>
6607
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6610
<xs:element name="line_width">
6612
<xs:attribute name="value" type="float" use="optional" default="1"/>
6613
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6616
<xs:element name="material_ambient">
6618
<xs:attribute name="value" type="float4" use="optional" default="0.2 0.2 0.2 1.0"/>
6619
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6622
<xs:element name="material_diffuse">
6624
<xs:attribute name="value" type="float4" use="optional" default="0.8 0.8 0.8 1.0"/>
6625
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6628
<xs:element name="material_emission">
6630
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 1"/>
6631
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6634
<xs:element name="material_shininess">
6636
<xs:attribute name="value" type="float" use="optional" default="0"/>
6637
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6640
<xs:element name="material_specular">
6642
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 1"/>
6643
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6646
<xs:element name="model_view_matrix">
6648
<xs:attribute name="value" type="float4x4" use="optional" default="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"/>
6649
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6652
<xs:element name="point_distance_attenuation">
6654
<xs:attribute name="value" type="float3" use="optional" default="1 0 0"/>
6655
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6658
<xs:element name="point_fade_threshold_size">
6660
<xs:attribute name="value" type="float" use="optional" default="1"/>
6661
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6664
<xs:element name="point_size">
6666
<xs:attribute name="value" type="float" use="optional" default="1"/>
6667
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6670
<xs:element name="point_size_min">
6672
<xs:attribute name="value" type="float" use="optional" default="0"/>
6673
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6676
<xs:element name="point_size_max">
6678
<xs:attribute name="value" type="float" use="optional" default="1"/>
6679
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6682
<xs:element name="polygon_offset">
6684
<xs:attribute name="value" type="float2" use="optional" default="0 0"/>
6685
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6688
<xs:element name="projection_matrix">
6690
<xs:attribute name="value" type="float4x4" use="optional" default="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"/>
6691
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6694
<xs:element name="scissor">
6696
<xs:attribute name="value" type="int4" use="optional"/>
6697
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6700
<xs:element name="stencil_mask">
6702
<xs:attribute name="value" type="int" use="optional" default="4294967295"/>
6703
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6706
<xs:element name="alpha_test_enable">
6708
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6709
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6712
<xs:element name="auto_normal_enable">
6714
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6715
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6718
<xs:element name="blend_enable">
6720
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6721
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6724
<xs:element name="color_logic_op_enable">
6726
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6727
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6730
<xs:element name="color_material_enable">
6732
<xs:attribute name="value" type="bool" use="optional" default="true"/>
6733
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6736
<xs:element name="cull_face_enable">
6738
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6739
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6742
<xs:element name="depth_bounds_enable">
6744
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6745
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6748
<xs:element name="depth_clamp_enable">
6750
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6751
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6754
<xs:element name="depth_test_enable">
6756
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6757
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6760
<xs:element name="dither_enable">
6762
<xs:attribute name="value" type="bool" use="optional" default="true"/>
6763
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6766
<xs:element name="fog_enable">
6768
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6769
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6772
<xs:element name="light_model_local_viewer_enable">
6774
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6775
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6778
<xs:element name="light_model_two_side_enable">
6780
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6781
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6784
<xs:element name="line_smooth_enable">
6786
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6787
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6790
<xs:element name="line_stipple_enable">
6792
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6793
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6796
<xs:element name="logic_op_enable">
6798
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6799
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6802
<xs:element name="multisample_enable">
6804
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6805
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6808
<xs:element name="normalize_enable">
6810
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6811
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6814
<xs:element name="point_smooth_enable">
6816
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6817
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6820
<xs:element name="polygon_offset_fill_enable">
6822
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6823
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6826
<xs:element name="polygon_offset_line_enable">
6828
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6829
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6832
<xs:element name="polygon_offset_point_enable">
6834
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6835
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6838
<xs:element name="polygon_smooth_enable">
6840
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6841
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6844
<xs:element name="polygon_stipple_enable">
6846
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6847
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6850
<xs:element name="rescale_normal_enable">
6852
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6853
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6856
<xs:element name="sample_alpha_to_coverage_enable">
6858
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6859
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6862
<xs:element name="sample_alpha_to_one_enable">
6864
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6865
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6868
<xs:element name="sample_coverage_enable">
6870
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6871
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6874
<xs:element name="scissor_test_enable">
6876
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6877
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6880
<xs:element name="stencil_test_enable">
6882
<xs:attribute name="value" type="bool" use="optional" default="false"/>
6883
<xs:attribute name="param" type="xs:NCName" use="optional"/>
6886
<xs:element ref="gl_hook_abstract"/>
6889
<xs:element name="gl_hook_abstract" abstract="true"/>
6890
<xs:simpleType name="glsl_float">
6891
<xs:restriction base="xs:float"/>
6893
<xs:simpleType name="glsl_int">
6894
<xs:restriction base="xs:int"/>
6896
<xs:simpleType name="glsl_bool">
6897
<xs:restriction base="xs:boolean"/>
6899
<xs:simpleType name="glsl_ListOfBool">
6900
<xs:list itemType="glsl_bool"/>
6902
<xs:simpleType name="glsl_ListOfFloat">
6903
<xs:list itemType="glsl_float"/>
6905
<xs:simpleType name="glsl_ListOfInt">
6906
<xs:list itemType="glsl_int"/>
6908
<xs:simpleType name="glsl_bool2">
6909
<xs:restriction base="glsl_ListOfBool">
6910
<xs:minLength value="2"/>
6911
<xs:maxLength value="2"/>
6914
<xs:simpleType name="glsl_bool3">
6915
<xs:restriction base="glsl_ListOfBool">
6916
<xs:minLength value="3"/>
6917
<xs:maxLength value="3"/>
6920
<xs:simpleType name="glsl_bool4">
6921
<xs:restriction base="glsl_ListOfBool">
6922
<xs:minLength value="4"/>
6923
<xs:maxLength value="4"/>
6926
<xs:simpleType name="glsl_float2">
6927
<xs:restriction base="glsl_ListOfFloat">
6928
<xs:minLength value="2"/>
6929
<xs:maxLength value="2"/>
6932
<xs:simpleType name="glsl_float3">
6933
<xs:restriction base="glsl_ListOfFloat">
6934
<xs:minLength value="3"/>
6935
<xs:maxLength value="3"/>
6938
<xs:simpleType name="glsl_float4">
6939
<xs:restriction base="glsl_ListOfFloat">
6940
<xs:minLength value="4"/>
6941
<xs:maxLength value="4"/>
6944
<xs:simpleType name="glsl_float2x2">
6945
<xs:restriction base="glsl_ListOfFloat">
6946
<xs:minLength value="4"/>
6947
<xs:maxLength value="4"/>
6950
<xs:simpleType name="glsl_float3x3">
6951
<xs:restriction base="glsl_ListOfFloat">
6952
<xs:minLength value="9"/>
6953
<xs:maxLength value="9"/>
6956
<xs:simpleType name="glsl_float4x4">
6957
<xs:restriction base="glsl_ListOfFloat">
6958
<xs:minLength value="16"/>
6959
<xs:maxLength value="16"/>
6962
<xs:simpleType name="glsl_int2">
6963
<xs:restriction base="glsl_ListOfInt">
6964
<xs:minLength value="2"/>
6965
<xs:maxLength value="2"/>
6968
<xs:simpleType name="glsl_int3">
6969
<xs:restriction base="glsl_ListOfInt">
6970
<xs:minLength value="3"/>
6971
<xs:maxLength value="3"/>
6974
<xs:simpleType name="glsl_int4">
6975
<xs:restriction base="glsl_ListOfInt">
6976
<xs:minLength value="4"/>
6977
<xs:maxLength value="4"/>
6980
<xs:simpleType name="glsl_pipeline_stage">
6981
<xs:restriction base="xs:string">
6982
<xs:enumeration value="VERTEXPROGRAM"/>
6983
<xs:enumeration value="FRAGMENTPROGRAM"/>
6986
<xs:simpleType name="glsl_identifier">
6987
<xs:restriction base="xs:token"/>
6989
<xs:complexType name="glsl_newarray_type">
6992
The glsl_newarray_type is used to creates a parameter of a one-dimensional array type.
6995
<xs:choice minOccurs="0" maxOccurs="unbounded">
6996
<xs:group ref="glsl_param_type"/>
6997
<xs:element name="array" type="glsl_newarray_type">
7000
You may recursively nest glsl_newarray elements to create multidimensional arrays.
7005
<xs:attribute name="length" type="xs:positiveInteger" use="required">
7008
The length attribute specifies the length of the array.
7013
<xs:complexType name="glsl_setarray_type">
7016
The glsl_newarray_type is used to creates a parameter of a one-dimensional array type.
7019
<xs:choice minOccurs="0" maxOccurs="unbounded">
7020
<xs:group ref="glsl_param_type"/>
7021
<xs:element name="array" type="glsl_setarray_type">
7024
You may recursively nest glsl_newarray elements to create multidimensional arrays.
7029
<xs:attribute name="length" type="xs:positiveInteger" use="optional">
7032
The length attribute specifies the length of the array.
7037
<xs:complexType name="glsl_surface_type">
7040
A surface type for the GLSL profile. This surface inherits from the fx_surface_common type and adds the
7041
ability to programmatically generate textures.
7045
<xs:extension base="fx_surface_common">
7047
<xs:element name="generator" minOccurs="0">
7050
A procedural surface generator.
7055
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded">
7058
The annotate element allows you to specify an annotation for this surface generator.
7062
<xs:choice maxOccurs="unbounded">
7063
<xs:element name="code" type="fx_code_profile">
7066
The code element allows you to embed GLSL code to use for this surface generator.
7070
<xs:element name="include" type="fx_include_common">
7073
The include element allows you to import GLSL code to use for this surface generator.
7078
<xs:element name="name">
7081
The entry symbol for the shader function.
7086
<xs:extension base="xs:NCName">
7087
<xs:attribute name="source" type="xs:NCName" use="optional"/>
7092
<xs:element name="setparam" type="glsl_setparam_simple" minOccurs="0" maxOccurs="unbounded">
7095
The setparam element allows you to assign a new value to a previously defined parameter.
7104
</xs:complexContent>
7106
<xs:group name="glsl_param_type">
7109
A group that specifies the allowable types for GLSL profile parameters.
7113
<xs:element name="bool" type="glsl_bool"/>
7114
<xs:element name="bool2" type="glsl_bool2"/>
7115
<xs:element name="bool3" type="glsl_bool3"/>
7116
<xs:element name="bool4" type="glsl_bool4"/>
7117
<xs:element name="float" type="glsl_float"/>
7118
<xs:element name="float2" type="glsl_float2"/>
7119
<xs:element name="float3" type="glsl_float3"/>
7120
<xs:element name="float4" type="glsl_float4"/>
7121
<xs:element name="float2x2" type="glsl_float2x2"/>
7122
<xs:element name="float3x3" type="glsl_float3x3"/>
7123
<xs:element name="float4x4" type="glsl_float4x4"/>
7124
<xs:element name="int" type="glsl_int"/>
7125
<xs:element name="int2" type="glsl_int2"/>
7126
<xs:element name="int3" type="glsl_int3"/>
7127
<xs:element name="int4" type="glsl_int4"/>
7128
<xs:element name="surface" type="glsl_surface_type"/>
7129
<xs:element name="sampler1D" type="gl_sampler1D"/>
7130
<xs:element name="sampler2D" type="gl_sampler2D"/>
7131
<xs:element name="sampler3D" type="gl_sampler3D"/>
7132
<xs:element name="samplerCUBE" type="gl_samplerCUBE"/>
7133
<xs:element name="samplerRECT" type="gl_samplerRECT"/>
7134
<xs:element name="samplerDEPTH" type="gl_samplerDEPTH"/>
7135
<xs:element name="enum" type="gl_enumeration"/>
7138
<xs:complexType name="glsl_newparam">
7140
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
7141
<xs:element name="semantic" type="xs:NCName" minOccurs="0"/>
7142
<xs:element name="modifier" type="fx_modifier_enum_common" minOccurs="0"/>
7144
<xs:group ref="glsl_param_type"/>
7145
<xs:element name="array" type="glsl_newarray_type"/>
7148
<xs:attribute name="sid" type="glsl_identifier" use="required"/>
7150
<xs:complexType name="glsl_setparam_simple">
7152
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
7153
<xs:group ref="glsl_param_type"/>
7155
<xs:attribute name="ref" type="glsl_identifier" use="required"/>
7157
<xs:complexType name="glsl_setparam">
7159
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
7161
<xs:group ref="glsl_param_type"/>
7162
<xs:element name="array" type="glsl_setarray_type"/>
7165
<xs:attribute name="ref" type="glsl_identifier" use="required"/>
7166
<xs:attribute name="program" type="xs:NCName"/>
7168
<xs:element name="profile_GLSL" substitutionGroup="fx_profile_abstract">
7171
Opens a block of GLSL platform-specific data types and technique declarations.
7176
<xs:element ref="asset" minOccurs="0"/>
7177
<xs:choice minOccurs="0" maxOccurs="unbounded">
7178
<xs:element name="code" type="fx_code_profile"/>
7179
<xs:element name="include" type="fx_include_common"/>
7181
<xs:choice minOccurs="0" maxOccurs="unbounded">
7182
<xs:element ref="image"/>
7183
<xs:element name="newparam" type="glsl_newparam"/>
7185
<xs:element name="technique" maxOccurs="unbounded">
7188
Holds a description of the textures, samplers, shaders, parameters, and passes necessary for rendering this effect using one method.
7193
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
7194
<xs:choice minOccurs="0" maxOccurs="unbounded">
7195
<xs:element name="code" type="fx_code_profile"/>
7196
<xs:element name="include" type="fx_include_common"/>
7198
<xs:choice minOccurs="0" maxOccurs="unbounded">
7199
<xs:element ref="image"/>
7200
<xs:element name="newparam" type="glsl_newparam"/>
7201
<xs:element name="setparam" type="glsl_setparam"/>
7203
<xs:element name="pass" maxOccurs="unbounded">
7206
A static declaration of all the render states, shaders, and settings for one rendering pipeline.
7211
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
7212
<xs:element name="color_target" type="fx_colortarget_common" minOccurs="0" maxOccurs="unbounded"/>
7213
<xs:element name="depth_target" type="fx_depthtarget_common" minOccurs="0" maxOccurs="unbounded"/>
7214
<xs:element name="stencil_target" type="fx_stenciltarget_common" minOccurs="0" maxOccurs="unbounded"/>
7215
<xs:element name="color_clear" type="fx_clearcolor_common" minOccurs="0" maxOccurs="unbounded"/>
7216
<xs:element name="depth_clear" type="fx_cleardepth_common" minOccurs="0" maxOccurs="unbounded"/>
7217
<xs:element name="stencil_clear" type="fx_clearstencil_common" minOccurs="0" maxOccurs="unbounded"/>
7218
<xs:element name="draw" type="fx_draw_common" minOccurs="0"/>
7219
<xs:choice maxOccurs="unbounded">
7220
<xs:group ref="gl_pipeline_settings"/>
7221
<xs:element name="shader">
7224
Declare and prepare a shader for execution in the rendering pipeline of a pass.
7229
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
7230
<xs:sequence minOccurs="0">
7231
<xs:element name="compiler_target">
7234
A string declaring which profile or platform the compiler is targeting this shader for.
7239
<xs:extension base="xs:NMTOKEN"/>
7243
<xs:element name="compiler_options" type="xs:string" minOccurs="0">
7246
A string containing command-line operations for the shader compiler.
7251
<xs:element name="name">
7254
The entry symbol for the shader function.
7259
<xs:extension base="xs:NCName">
7260
<xs:attribute name="source" type="xs:NCName" use="optional"/>
7265
<xs:element name="bind" minOccurs="0" maxOccurs="unbounded">
7268
Binds values to uniform inputs of a shader.
7273
<xs:group ref="glsl_param_type"/>
7274
<xs:element name="param">
7276
<xs:attribute name="ref" type="xs:string" use="required"/>
7280
<xs:attribute name="symbol" type="xs:NCName" use="required">
7283
The identifier for a uniform input parameter to the shader (a formal function parameter or in-scope
7284
global) that will be bound to an external resource.
7291
<xs:attribute name="stage" type="glsl_pipeline_stage">
7294
In which pipeline stage this programmable shader is designed to execute, for example, VERTEX, FRAGMENT, etc.
7301
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
7303
<xs:attribute name="sid" type="xs:NCName" use="optional">
7306
The sid attribute is a text string value containing the sub-identifier of this element.
7307
This value must be unique within the scope of the parent element. Optional attribute.
7313
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
7315
<xs:attribute name="id" type="xs:ID">
7318
The id attribute is a text string containing the unique identifier of this element.
7319
This value must be unique within the instance document. Optional attribute.
7323
<xs:attribute name="sid" type="xs:NCName" use="required">
7326
The sid attribute is a text string value containing the sub-identifier of this element.
7327
This value must be unique within the scope of the parent element. Optional attribute.
7333
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
7335
<xs:attribute name="id" type="xs:ID" use="optional">
7338
The id attribute is a text string containing the unique identifier of this element.
7339
This value must be unique within the instance document. Optional attribute.
7345
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
7346
<!-- COLLADA FX common profile -->
7347
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
7348
<xs:complexType name="common_float_or_param_type">
7350
<xs:element name="float">
7353
<xs:extension base="float">
7354
<xs:attribute name="sid" type="xs:NCName"/>
7359
<xs:element name="param">
7361
<xs:attribute name="ref" type="xs:NCName" use="required"/>
7366
<xs:complexType name="common_color_or_texture_type">
7368
<xs:element name="color">
7371
<xs:extension base="fx_color_common">
7372
<xs:attribute name="sid" type="xs:NCName"/>
7377
<xs:element name="param">
7379
<xs:attribute name="ref" type="xs:NCName" use="required"/>
7382
<xs:element name="texture">
7385
<xs:element ref="extra" minOccurs="0"/>
7387
<xs:attribute name="texture" type="xs:NCName" use="required"/>
7388
<xs:attribute name="texcoord" type="xs:NCName" use="required"/>
7393
<xs:complexType name="common_transparent_type">
7395
<xs:extension base="common_color_or_texture_type">
7396
<xs:attribute name="opaque" type="fx_opaque_enum" default="A_ONE"/>
7398
</xs:complexContent>
7400
<xs:complexType name="common_newparam_type">
7402
<xs:element name="semantic" type="xs:NCName" minOccurs="0"/>
7404
<xs:element name="float" type="float"/>
7405
<xs:element name="float2" type="float2"/>
7406
<xs:element name="float3" type="float3"/>
7407
<xs:element name="float4" type="float4"/>
7408
<xs:element name="surface" type="fx_surface_common"/>
7409
<xs:element name="sampler2D" type="fx_sampler2D_common"/>
7412
<xs:attribute name="sid" type="xs:NCName" use="required">
7415
The sid attribute is a text string value containing the sub-identifier of this element.
7416
This value must be unique within the scope of the parent element. Optional attribute.
7421
<xs:element name="profile_COMMON" substitutionGroup="fx_profile_abstract">
7424
Opens a block of COMMON platform-specific data types and technique declarations.
7429
<xs:element ref="asset" minOccurs="0"/>
7430
<xs:choice minOccurs="0" maxOccurs="unbounded">
7431
<xs:element ref="image"/>
7432
<xs:element name="newparam" type="common_newparam_type"/>
7434
<xs:element name="technique">
7437
Holds a description of the textures, samplers, shaders, parameters, and passes necessary for rendering this effect using one method.
7442
<xs:element ref="asset" minOccurs="0">
7445
The technique element may contain an asset element.
7449
<xs:choice minOccurs="0" maxOccurs="unbounded">
7450
<xs:element ref="image"/>
7451
<xs:element name="newparam" type="common_newparam_type"/>
7454
<xs:element name="constant">
7457
<xs:element name="emission" type="common_color_or_texture_type" minOccurs="0"/>
7458
<xs:element name="reflective" type="common_color_or_texture_type" minOccurs="0"/>
7459
<xs:element name="reflectivity" type="common_float_or_param_type" minOccurs="0"/>
7460
<xs:element name="transparent" type="common_transparent_type" minOccurs="0"/>
7461
<xs:element name="transparency" type="common_float_or_param_type" minOccurs="0"/>
7462
<xs:element name="index_of_refraction" type="common_float_or_param_type" minOccurs="0"/>
7466
<xs:element name="lambert">
7469
<xs:element name="emission" type="common_color_or_texture_type" minOccurs="0"/>
7470
<xs:element name="ambient" type="common_color_or_texture_type" minOccurs="0"/>
7471
<xs:element name="diffuse" type="common_color_or_texture_type" minOccurs="0"/>
7472
<xs:element name="reflective" type="common_color_or_texture_type" minOccurs="0"/>
7473
<xs:element name="reflectivity" type="common_float_or_param_type" minOccurs="0"/>
7474
<xs:element name="transparent" type="common_transparent_type" minOccurs="0"/>
7475
<xs:element name="transparency" type="common_float_or_param_type" minOccurs="0"/>
7476
<xs:element name="index_of_refraction" type="common_float_or_param_type" minOccurs="0"/>
7480
<xs:element name="phong">
7483
<xs:element name="emission" type="common_color_or_texture_type" minOccurs="0"/>
7484
<xs:element name="ambient" type="common_color_or_texture_type" minOccurs="0"/>
7485
<xs:element name="diffuse" type="common_color_or_texture_type" minOccurs="0"/>
7486
<xs:element name="specular" type="common_color_or_texture_type" minOccurs="0"/>
7487
<xs:element name="shininess" type="common_float_or_param_type" minOccurs="0"/>
7488
<xs:element name="reflective" type="common_color_or_texture_type" minOccurs="0"/>
7489
<xs:element name="reflectivity" type="common_float_or_param_type" minOccurs="0"/>
7490
<xs:element name="transparent" type="common_transparent_type" minOccurs="0"/>
7491
<xs:element name="transparency" type="common_float_or_param_type" minOccurs="0"/>
7492
<xs:element name="index_of_refraction" type="common_float_or_param_type" minOccurs="0"/>
7496
<xs:element name="blinn">
7499
<xs:element name="emission" type="common_color_or_texture_type" minOccurs="0"/>
7500
<xs:element name="ambient" type="common_color_or_texture_type" minOccurs="0"/>
7501
<xs:element name="diffuse" type="common_color_or_texture_type" minOccurs="0"/>
7502
<xs:element name="specular" type="common_color_or_texture_type" minOccurs="0"/>
7503
<xs:element name="shininess" type="common_float_or_param_type" minOccurs="0"/>
7504
<xs:element name="reflective" type="common_color_or_texture_type" minOccurs="0"/>
7505
<xs:element name="reflectivity" type="common_float_or_param_type" minOccurs="0"/>
7506
<xs:element name="transparent" type="common_transparent_type" minOccurs="0"/>
7507
<xs:element name="transparency" type="common_float_or_param_type" minOccurs="0"/>
7508
<xs:element name="index_of_refraction" type="common_float_or_param_type" minOccurs="0"/>
7513
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
7516
The extra element may appear any number of times.
7521
<xs:attribute name="id" type="xs:ID">
7524
The id attribute is a text string containing the unique identifier of this element.
7525
This value must be unique within the instance document. Optional attribute.
7529
<xs:attribute name="sid" type="xs:NCName" use="required">
7532
The sid attribute is a text string value containing the sub-identifier of this element.
7533
This value must be unique within the scope of the parent element. Optional attribute.
7539
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
7542
The extra element may appear any number of times.
7547
<xs:attribute name="id" type="xs:ID" use="optional">
7550
The id attribute is a text string containing the unique identifier of this element.
7551
This value must be unique within the instance document. Optional attribute.
7557
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
7558
<!-- COLLADA FX Cg elements -->
7559
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
7560
<xs:simpleType name="cg_bool">
7561
<xs:restriction base="xs:boolean"/>
7563
<xs:simpleType name="cg_float">
7564
<xs:restriction base="xs:float"/>
7566
<xs:simpleType name="cg_int">
7567
<xs:restriction base="xs:int"/>
7569
<xs:simpleType name="cg_half">
7570
<xs:restriction base="xs:float"/>
7572
<xs:simpleType name="cg_fixed">
7573
<xs:restriction base="xs:float">
7574
<xs:minInclusive value="-2.0"/>
7575
<xs:maxInclusive value="2.0"/>
7576
<!-- as defined for fp30 profile -->
7579
<xs:simpleType name="cg_bool1">
7580
<xs:restriction base="xs:boolean"/>
7582
<xs:simpleType name="cg_float1">
7583
<xs:restriction base="xs:float"/>
7585
<xs:simpleType name="cg_int1">
7586
<xs:restriction base="xs:int"/>
7588
<xs:simpleType name="cg_half1">
7589
<xs:restriction base="xs:float"/>
7591
<xs:simpleType name="cg_fixed1">
7592
<xs:restriction base="xs:float">
7593
<xs:minInclusive value="-2.0"/>
7594
<xs:maxInclusive value="2.0"/>
7595
<!-- as defined for fp30 profile -->
7598
<xs:simpleType name="cg_ListOfBool">
7599
<xs:list itemType="cg_bool"/>
7601
<xs:simpleType name="cg_ListOfFloat">
7602
<xs:list itemType="cg_float"/>
7604
<xs:simpleType name="cg_ListOfInt">
7605
<xs:list itemType="cg_int"/>
7607
<xs:simpleType name="cg_ListOfHalf">
7608
<xs:list itemType="cg_half"/>
7610
<xs:simpleType name="cg_ListOfFixed">
7611
<xs:list itemType="cg_fixed"/>
7613
<xs:simpleType name="cg_bool2">
7614
<xs:restriction base="cg_ListOfBool">
7615
<xs:minLength value="2"/>
7616
<xs:maxLength value="2"/>
7619
<xs:simpleType name="cg_bool3">
7620
<xs:restriction base="cg_ListOfBool">
7621
<xs:minLength value="3"/>
7622
<xs:maxLength value="3"/>
7625
<xs:simpleType name="cg_bool4">
7626
<xs:restriction base="cg_ListOfBool">
7627
<xs:minLength value="4"/>
7628
<xs:maxLength value="4"/>
7631
<xs:simpleType name="cg_bool1x1">
7632
<xs:restriction base="cg_ListOfBool">
7633
<xs:minLength value="1"/>
7634
<xs:maxLength value="1"/>
7637
<xs:simpleType name="cg_bool1x2">
7638
<xs:restriction base="cg_ListOfBool">
7639
<xs:minLength value="2"/>
7640
<xs:maxLength value="2"/>
7643
<xs:simpleType name="cg_bool1x3">
7644
<xs:restriction base="cg_ListOfBool">
7645
<xs:minLength value="3"/>
7646
<xs:maxLength value="3"/>
7649
<xs:simpleType name="cg_bool1x4">
7650
<xs:restriction base="cg_ListOfBool">
7651
<xs:minLength value="4"/>
7652
<xs:maxLength value="4"/>
7655
<xs:simpleType name="cg_bool2x1">
7656
<xs:restriction base="cg_ListOfBool">
7657
<xs:minLength value="2"/>
7658
<xs:maxLength value="2"/>
7661
<xs:simpleType name="cg_bool2x2">
7662
<xs:restriction base="cg_ListOfBool">
7663
<xs:minLength value="4"/>
7664
<xs:maxLength value="4"/>
7667
<xs:simpleType name="cg_bool2x3">
7668
<xs:restriction base="cg_ListOfBool">
7669
<xs:minLength value="6"/>
7670
<xs:maxLength value="6"/>
7673
<xs:simpleType name="cg_bool2x4">
7674
<xs:restriction base="cg_ListOfBool">
7675
<xs:minLength value="8"/>
7676
<xs:maxLength value="8"/>
7679
<xs:simpleType name="cg_bool3x1">
7680
<xs:restriction base="cg_ListOfBool">
7681
<xs:minLength value="3"/>
7682
<xs:maxLength value="3"/>
7685
<xs:simpleType name="cg_bool3x2">
7686
<xs:restriction base="cg_ListOfBool">
7687
<xs:minLength value="6"/>
7688
<xs:maxLength value="6"/>
7691
<xs:simpleType name="cg_bool3x3">
7692
<xs:restriction base="cg_ListOfBool">
7693
<xs:minLength value="9"/>
7694
<xs:maxLength value="9"/>
7697
<xs:simpleType name="cg_bool3x4">
7698
<xs:restriction base="cg_ListOfBool">
7699
<xs:minLength value="12"/>
7700
<xs:maxLength value="12"/>
7703
<xs:simpleType name="cg_bool4x1">
7704
<xs:restriction base="cg_ListOfBool">
7705
<xs:minLength value="4"/>
7706
<xs:maxLength value="4"/>
7709
<xs:simpleType name="cg_bool4x2">
7710
<xs:restriction base="cg_ListOfBool">
7711
<xs:minLength value="8"/>
7712
<xs:maxLength value="8"/>
7715
<xs:simpleType name="cg_bool4x3">
7716
<xs:restriction base="cg_ListOfBool">
7717
<xs:minLength value="12"/>
7718
<xs:maxLength value="12"/>
7721
<xs:simpleType name="cg_bool4x4">
7722
<xs:restriction base="cg_ListOfBool">
7723
<xs:minLength value="16"/>
7724
<xs:maxLength value="16"/>
7727
<xs:simpleType name="cg_float2">
7728
<xs:restriction base="cg_ListOfFloat">
7729
<xs:minLength value="2"/>
7730
<xs:maxLength value="2"/>
7733
<xs:simpleType name="cg_float3">
7734
<xs:restriction base="cg_ListOfFloat">
7735
<xs:minLength value="3"/>
7736
<xs:maxLength value="3"/>
7739
<xs:simpleType name="cg_float4">
7740
<xs:restriction base="cg_ListOfFloat">
7741
<xs:minLength value="4"/>
7742
<xs:maxLength value="4"/>
7745
<xs:simpleType name="cg_float1x1">
7746
<xs:restriction base="cg_ListOfFloat">
7747
<xs:minLength value="1"/>
7748
<xs:maxLength value="1"/>
7751
<xs:simpleType name="cg_float1x2">
7752
<xs:restriction base="cg_ListOfFloat">
7753
<xs:minLength value="2"/>
7754
<xs:maxLength value="2"/>
7757
<xs:simpleType name="cg_float1x3">
7758
<xs:restriction base="cg_ListOfFloat">
7759
<xs:minLength value="3"/>
7760
<xs:maxLength value="3"/>
7763
<xs:simpleType name="cg_float1x4">
7764
<xs:restriction base="cg_ListOfFloat">
7765
<xs:minLength value="4"/>
7766
<xs:maxLength value="4"/>
7769
<xs:simpleType name="cg_float2x1">
7770
<xs:restriction base="cg_ListOfFloat">
7771
<xs:minLength value="2"/>
7772
<xs:maxLength value="2"/>
7775
<xs:simpleType name="cg_float2x2">
7776
<xs:restriction base="cg_ListOfFloat">
7777
<xs:minLength value="4"/>
7778
<xs:maxLength value="4"/>
7781
<xs:simpleType name="cg_float2x3">
7782
<xs:restriction base="cg_ListOfFloat">
7783
<xs:minLength value="6"/>
7784
<xs:maxLength value="6"/>
7787
<xs:simpleType name="cg_float2x4">
7788
<xs:restriction base="cg_ListOfFloat">
7789
<xs:minLength value="8"/>
7790
<xs:maxLength value="8"/>
7793
<xs:simpleType name="cg_float3x1">
7794
<xs:restriction base="cg_ListOfFloat">
7795
<xs:minLength value="3"/>
7796
<xs:maxLength value="3"/>
7799
<xs:simpleType name="cg_float3x2">
7800
<xs:restriction base="cg_ListOfFloat">
7801
<xs:minLength value="6"/>
7802
<xs:maxLength value="6"/>
7805
<xs:simpleType name="cg_float3x3">
7806
<xs:restriction base="cg_ListOfFloat">
7807
<xs:minLength value="9"/>
7808
<xs:maxLength value="9"/>
7811
<xs:simpleType name="cg_float3x4">
7812
<xs:restriction base="cg_ListOfFloat">
7813
<xs:minLength value="12"/>
7814
<xs:maxLength value="12"/>
7817
<xs:simpleType name="cg_float4x1">
7818
<xs:restriction base="cg_ListOfFloat">
7819
<xs:minLength value="4"/>
7820
<xs:maxLength value="4"/>
7823
<xs:simpleType name="cg_float4x2">
7824
<xs:restriction base="cg_ListOfFloat">
7825
<xs:minLength value="8"/>
7826
<xs:maxLength value="8"/>
7829
<xs:simpleType name="cg_float4x3">
7830
<xs:restriction base="cg_ListOfFloat">
7831
<xs:minLength value="12"/>
7832
<xs:maxLength value="12"/>
7835
<xs:simpleType name="cg_float4x4">
7836
<xs:restriction base="cg_ListOfFloat">
7837
<xs:minLength value="16"/>
7838
<xs:maxLength value="16"/>
7841
<xs:simpleType name="cg_int2">
7842
<xs:restriction base="cg_ListOfInt">
7843
<xs:minLength value="2"/>
7844
<xs:maxLength value="2"/>
7847
<xs:simpleType name="cg_int3">
7848
<xs:restriction base="cg_ListOfInt">
7849
<xs:minLength value="3"/>
7850
<xs:maxLength value="3"/>
7853
<xs:simpleType name="cg_int4">
7854
<xs:restriction base="cg_ListOfInt">
7855
<xs:minLength value="4"/>
7856
<xs:maxLength value="4"/>
7859
<xs:simpleType name="cg_int1x1">
7860
<xs:restriction base="cg_ListOfInt">
7861
<xs:minLength value="1"/>
7862
<xs:maxLength value="1"/>
7865
<xs:simpleType name="cg_int1x2">
7866
<xs:restriction base="cg_ListOfInt">
7867
<xs:minLength value="2"/>
7868
<xs:maxLength value="2"/>
7871
<xs:simpleType name="cg_int1x3">
7872
<xs:restriction base="cg_ListOfInt">
7873
<xs:minLength value="3"/>
7874
<xs:maxLength value="3"/>
7877
<xs:simpleType name="cg_int1x4">
7878
<xs:restriction base="cg_ListOfInt">
7879
<xs:minLength value="4"/>
7880
<xs:maxLength value="4"/>
7883
<xs:simpleType name="cg_int2x1">
7884
<xs:restriction base="cg_ListOfInt">
7885
<xs:minLength value="2"/>
7886
<xs:maxLength value="2"/>
7889
<xs:simpleType name="cg_int2x2">
7890
<xs:restriction base="cg_ListOfInt">
7891
<xs:minLength value="4"/>
7892
<xs:maxLength value="4"/>
7895
<xs:simpleType name="cg_int2x3">
7896
<xs:restriction base="cg_ListOfInt">
7897
<xs:minLength value="6"/>
7898
<xs:maxLength value="6"/>
7901
<xs:simpleType name="cg_int2x4">
7902
<xs:restriction base="cg_ListOfInt">
7903
<xs:minLength value="8"/>
7904
<xs:maxLength value="8"/>
7907
<xs:simpleType name="cg_int3x1">
7908
<xs:restriction base="cg_ListOfInt">
7909
<xs:minLength value="3"/>
7910
<xs:maxLength value="3"/>
7913
<xs:simpleType name="cg_int3x2">
7914
<xs:restriction base="cg_ListOfInt">
7915
<xs:minLength value="6"/>
7916
<xs:maxLength value="6"/>
7919
<xs:simpleType name="cg_int3x3">
7920
<xs:restriction base="cg_ListOfInt">
7921
<xs:minLength value="9"/>
7922
<xs:maxLength value="9"/>
7925
<xs:simpleType name="cg_int3x4">
7926
<xs:restriction base="cg_ListOfInt">
7927
<xs:minLength value="12"/>
7928
<xs:maxLength value="12"/>
7931
<xs:simpleType name="cg_int4x1">
7932
<xs:restriction base="cg_ListOfInt">
7933
<xs:minLength value="4"/>
7934
<xs:maxLength value="4"/>
7937
<xs:simpleType name="cg_int4x2">
7938
<xs:restriction base="cg_ListOfInt">
7939
<xs:minLength value="8"/>
7940
<xs:maxLength value="8"/>
7943
<xs:simpleType name="cg_int4x3">
7944
<xs:restriction base="cg_ListOfInt">
7945
<xs:minLength value="12"/>
7946
<xs:maxLength value="12"/>
7949
<xs:simpleType name="cg_int4x4">
7950
<xs:restriction base="cg_ListOfInt">
7951
<xs:minLength value="16"/>
7952
<xs:maxLength value="16"/>
7955
<xs:simpleType name="cg_half2">
7956
<xs:restriction base="cg_ListOfHalf">
7957
<xs:minLength value="2"/>
7958
<xs:maxLength value="2"/>
7961
<xs:simpleType name="cg_half3">
7962
<xs:restriction base="cg_ListOfHalf">
7963
<xs:minLength value="3"/>
7964
<xs:maxLength value="3"/>
7967
<xs:simpleType name="cg_half4">
7968
<xs:restriction base="cg_ListOfHalf">
7969
<xs:minLength value="4"/>
7970
<xs:maxLength value="4"/>
7973
<xs:simpleType name="cg_half1x1">
7974
<xs:restriction base="cg_ListOfHalf">
7975
<xs:minLength value="1"/>
7976
<xs:maxLength value="1"/>
7979
<xs:simpleType name="cg_half1x2">
7980
<xs:restriction base="cg_ListOfHalf">
7981
<xs:minLength value="2"/>
7982
<xs:maxLength value="2"/>
7985
<xs:simpleType name="cg_half1x3">
7986
<xs:restriction base="cg_ListOfHalf">
7987
<xs:minLength value="3"/>
7988
<xs:maxLength value="3"/>
7991
<xs:simpleType name="cg_half1x4">
7992
<xs:restriction base="cg_ListOfHalf">
7993
<xs:minLength value="4"/>
7994
<xs:maxLength value="4"/>
7997
<xs:simpleType name="cg_half2x1">
7998
<xs:restriction base="cg_ListOfHalf">
7999
<xs:minLength value="2"/>
8000
<xs:maxLength value="2"/>
8003
<xs:simpleType name="cg_half2x2">
8004
<xs:restriction base="cg_ListOfHalf">
8005
<xs:minLength value="4"/>
8006
<xs:maxLength value="4"/>
8009
<xs:simpleType name="cg_half2x3">
8010
<xs:restriction base="cg_ListOfHalf">
8011
<xs:minLength value="6"/>
8012
<xs:maxLength value="6"/>
8015
<xs:simpleType name="cg_half2x4">
8016
<xs:restriction base="cg_ListOfHalf">
8017
<xs:minLength value="8"/>
8018
<xs:maxLength value="8"/>
8021
<xs:simpleType name="cg_half3x1">
8022
<xs:restriction base="cg_ListOfHalf">
8023
<xs:minLength value="3"/>
8024
<xs:maxLength value="3"/>
8027
<xs:simpleType name="cg_half3x2">
8028
<xs:restriction base="cg_ListOfHalf">
8029
<xs:minLength value="6"/>
8030
<xs:maxLength value="6"/>
8033
<xs:simpleType name="cg_half3x3">
8034
<xs:restriction base="cg_ListOfHalf">
8035
<xs:minLength value="9"/>
8036
<xs:maxLength value="9"/>
8039
<xs:simpleType name="cg_half3x4">
8040
<xs:restriction base="cg_ListOfHalf">
8041
<xs:minLength value="12"/>
8042
<xs:maxLength value="12"/>
8045
<xs:simpleType name="cg_half4x1">
8046
<xs:restriction base="cg_ListOfHalf">
8047
<xs:minLength value="4"/>
8048
<xs:maxLength value="4"/>
8051
<xs:simpleType name="cg_half4x2">
8052
<xs:restriction base="cg_ListOfHalf">
8053
<xs:minLength value="8"/>
8054
<xs:maxLength value="8"/>
8057
<xs:simpleType name="cg_half4x3">
8058
<xs:restriction base="cg_ListOfHalf">
8059
<xs:minLength value="12"/>
8060
<xs:maxLength value="12"/>
8063
<xs:simpleType name="cg_half4x4">
8064
<xs:restriction base="cg_ListOfHalf">
8065
<xs:minLength value="16"/>
8066
<xs:maxLength value="16"/>
8069
<xs:simpleType name="cg_fixed2">
8070
<xs:restriction base="cg_ListOfFixed">
8071
<xs:minLength value="2"/>
8072
<xs:maxLength value="2"/>
8075
<xs:simpleType name="cg_fixed3">
8076
<xs:restriction base="cg_ListOfFixed">
8077
<xs:minLength value="3"/>
8078
<xs:maxLength value="3"/>
8081
<xs:simpleType name="cg_fixed4">
8082
<xs:restriction base="cg_ListOfFixed">
8083
<xs:minLength value="4"/>
8084
<xs:maxLength value="4"/>
8087
<xs:simpleType name="cg_fixed1x1">
8088
<xs:restriction base="cg_ListOfFixed">
8089
<xs:minLength value="1"/>
8090
<xs:maxLength value="1"/>
8093
<xs:simpleType name="cg_fixed1x2">
8094
<xs:restriction base="cg_ListOfFixed">
8095
<xs:minLength value="2"/>
8096
<xs:maxLength value="2"/>
8099
<xs:simpleType name="cg_fixed1x3">
8100
<xs:restriction base="cg_ListOfFixed">
8101
<xs:minLength value="3"/>
8102
<xs:maxLength value="3"/>
8105
<xs:simpleType name="cg_fixed1x4">
8106
<xs:restriction base="cg_ListOfFixed">
8107
<xs:minLength value="4"/>
8108
<xs:maxLength value="4"/>
8111
<xs:simpleType name="cg_fixed2x1">
8112
<xs:restriction base="cg_ListOfFixed">
8113
<xs:minLength value="2"/>
8114
<xs:maxLength value="2"/>
8117
<xs:simpleType name="cg_fixed2x2">
8118
<xs:restriction base="cg_ListOfFixed">
8119
<xs:minLength value="4"/>
8120
<xs:maxLength value="4"/>
8123
<xs:simpleType name="cg_fixed2x3">
8124
<xs:restriction base="cg_ListOfFixed">
8125
<xs:minLength value="6"/>
8126
<xs:maxLength value="6"/>
8129
<xs:simpleType name="cg_fixed2x4">
8130
<xs:restriction base="cg_ListOfFixed">
8131
<xs:minLength value="8"/>
8132
<xs:maxLength value="8"/>
8135
<xs:simpleType name="cg_fixed3x1">
8136
<xs:restriction base="cg_ListOfFixed">
8137
<xs:minLength value="3"/>
8138
<xs:maxLength value="3"/>
8141
<xs:simpleType name="cg_fixed3x2">
8142
<xs:restriction base="cg_ListOfFixed">
8143
<xs:minLength value="6"/>
8144
<xs:maxLength value="6"/>
8147
<xs:simpleType name="cg_fixed3x3">
8148
<xs:restriction base="cg_ListOfFixed">
8149
<xs:minLength value="9"/>
8150
<xs:maxLength value="9"/>
8153
<xs:simpleType name="cg_fixed3x4">
8154
<xs:restriction base="cg_ListOfFixed">
8155
<xs:minLength value="12"/>
8156
<xs:maxLength value="12"/>
8159
<xs:simpleType name="cg_fixed4x1">
8160
<xs:restriction base="cg_ListOfFixed">
8161
<xs:minLength value="4"/>
8162
<xs:maxLength value="4"/>
8165
<xs:simpleType name="cg_fixed4x2">
8166
<xs:restriction base="cg_ListOfFixed">
8167
<xs:minLength value="8"/>
8168
<xs:maxLength value="8"/>
8171
<xs:simpleType name="cg_fixed4x3">
8172
<xs:restriction base="cg_ListOfFixed">
8173
<xs:minLength value="12"/>
8174
<xs:maxLength value="12"/>
8177
<xs:simpleType name="cg_fixed4x4">
8178
<xs:restriction base="cg_ListOfFixed">
8179
<xs:minLength value="16"/>
8180
<xs:maxLength value="16"/>
8183
<xs:complexType name="cg_sampler1D">
8185
<xs:extension base="fx_sampler1D_common"/>
8186
</xs:complexContent>
8188
<xs:complexType name="cg_sampler2D">
8190
<xs:extension base="fx_sampler2D_common"/>
8191
</xs:complexContent>
8193
<xs:complexType name="cg_sampler3D">
8195
<xs:extension base="fx_sampler3D_common"/>
8196
</xs:complexContent>
8198
<xs:complexType name="cg_samplerCUBE">
8200
<xs:extension base="fx_samplerCUBE_common"/>
8201
</xs:complexContent>
8203
<xs:complexType name="cg_samplerRECT">
8205
<xs:extension base="fx_samplerRECT_common"/>
8206
</xs:complexContent>
8208
<xs:complexType name="cg_samplerDEPTH">
8210
<xs:extension base="fx_samplerDEPTH_common"/>
8211
</xs:complexContent>
8213
<xs:simpleType name="cg_pipeline_stage">
8214
<xs:restriction base="xs:string">
8215
<xs:enumeration value="VERTEX"/>
8216
<xs:enumeration value="FRAGMENT"/>
8219
<xs:simpleType name="cg_identifier">
8220
<xs:restriction base="xs:token"/>
8221
<!-- type used to represent identifiers in Cg, e.g. "myLight.bitmap[2].width" -->
8223
<xs:complexType name="cg_connect_param">
8226
Creates a symbolic connection between two previously defined parameters.
8229
<xs:attribute name="ref" type="cg_identifier" use="required"/>
8231
<xs:complexType name="cg_newarray_type">
8234
Creates a parameter of a one-dimensional array type.
8237
<xs:choice minOccurs="0" maxOccurs="unbounded">
8238
<xs:group ref="cg_param_type"/>
8239
<xs:element name="array" type="cg_newarray_type">
8242
Nested array elements allow you to create multidemensional arrays.
8246
<xs:element name="usertype" type="cg_setuser_type">
8249
The usertype element allows you to create arrays of usertypes.
8253
<xs:element name="connect_param" type="cg_connect_param"/>
8255
<xs:attribute name="length" type="xs:positiveInteger" use="required">
8258
The length attribute specifies the length of the array.
8263
<xs:complexType name="cg_setarray_type">
8266
Creates a parameter of a one-dimensional array type.
8269
<xs:choice minOccurs="0" maxOccurs="unbounded">
8270
<xs:group ref="cg_param_type"/>
8271
<xs:element name="array" type="cg_setarray_type">
8274
Nested array elements allow you to create multidemensional arrays.
8278
<xs:element name="usertype" type="cg_setuser_type">
8281
The usertype element allows you to create arrays of usertypes.
8286
<xs:attribute name="length" type="xs:positiveInteger" use="optional">
8289
The length attribute specifies the length of the array.
8294
<xs:complexType name="cg_setuser_type">
8297
Creates an instance of a structured class.
8300
<xs:choice minOccurs="0">
8302
<xs:documentation>Some usertypes do not have data. They may be used only to implement interface functions.</xs:documentation>
8304
<xs:choice maxOccurs="unbounded">
8306
<xs:documentation>Use a combination of these to initialize the usertype in an order-dependent manner.</xs:documentation>
8308
<xs:group ref="cg_param_type"/>
8309
<xs:element name="array" type="cg_setarray_type"/>
8310
<xs:element name="usertype" type="cg_setuser_type"/>
8311
<xs:element name="connect_param" type="cg_connect_param"/>
8313
<xs:element name="setparam" type="cg_setparam" maxOccurs="unbounded">
8315
<xs:documentation>Use a series of these to set the members by name. The ref attribute will be relative to the usertype you are in right now.</xs:documentation>
8319
<xs:attribute name="name" type="cg_identifier" use="required"/>
8320
<xs:attribute name="source" type="xs:NCName" use="required">
8323
Reference a code or include element which defines the usertype
8328
<xs:complexType name="cg_surface_type">
8331
Declares a resource that can be used both as the source for texture samples and as the target of a rendering pass.
8335
<xs:extension base="fx_surface_common">
8337
<xs:element name="generator" minOccurs="0">
8340
A procedural surface generator for the cg profile.
8345
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded">
8348
The annotate element allows you to specify an annotation for this generator.
8352
<xs:choice maxOccurs="unbounded">
8353
<xs:element name="code" type="fx_code_profile">
8356
The code element allows you to embed cg sourcecode for the surface generator.
8360
<xs:element name="include" type="fx_include_common">
8363
The include element imports cg source code or precompiled binary shaders into the FX Runtime by referencing an external resource.
8368
<xs:element name="name">
8371
The entry symbol for the shader function.
8376
<xs:extension base="xs:NCName">
8377
<xs:attribute name="source" type="xs:NCName" use="optional"/>
8382
<xs:element name="setparam" type="cg_setparam_simple" minOccurs="0" maxOccurs="unbounded">
8385
Assigns a new value to a previously defined parameter.
8394
</xs:complexContent>
8396
<xs:group name="cg_param_type">
8399
A group that specifies the allowable types for CG profile parameters.
8403
<xs:element name="bool" type="cg_bool"/>
8404
<xs:element name="bool1" type="cg_bool1"/>
8405
<xs:element name="bool2" type="cg_bool2"/>
8406
<xs:element name="bool3" type="cg_bool3"/>
8407
<xs:element name="bool4" type="cg_bool4"/>
8408
<xs:element name="bool1x1" type="cg_bool1x1"/>
8409
<xs:element name="bool1x2" type="cg_bool1x2"/>
8410
<xs:element name="bool1x3" type="cg_bool1x3"/>
8411
<xs:element name="bool1x4" type="cg_bool1x4"/>
8412
<xs:element name="bool2x1" type="cg_bool2x1"/>
8413
<xs:element name="bool2x2" type="cg_bool2x2"/>
8414
<xs:element name="bool2x3" type="cg_bool2x3"/>
8415
<xs:element name="bool2x4" type="cg_bool2x4"/>
8416
<xs:element name="bool3x1" type="cg_bool3x1"/>
8417
<xs:element name="bool3x2" type="cg_bool3x2"/>
8418
<xs:element name="bool3x3" type="cg_bool3x3"/>
8419
<xs:element name="bool3x4" type="cg_bool3x4"/>
8420
<xs:element name="bool4x1" type="cg_bool4x1"/>
8421
<xs:element name="bool4x2" type="cg_bool4x2"/>
8422
<xs:element name="bool4x3" type="cg_bool4x3"/>
8423
<xs:element name="bool4x4" type="cg_bool4x4"/>
8424
<xs:element name="float" type="cg_float"/>
8425
<xs:element name="float1" type="cg_float1"/>
8426
<xs:element name="float2" type="cg_float2"/>
8427
<xs:element name="float3" type="cg_float3"/>
8428
<xs:element name="float4" type="cg_float4"/>
8429
<xs:element name="float1x1" type="cg_float1x1"/>
8430
<xs:element name="float1x2" type="cg_float1x2"/>
8431
<xs:element name="float1x3" type="cg_float1x3"/>
8432
<xs:element name="float1x4" type="cg_float1x4"/>
8433
<xs:element name="float2x1" type="cg_float2x1"/>
8434
<xs:element name="float2x2" type="cg_float2x2"/>
8435
<xs:element name="float2x3" type="cg_float2x3"/>
8436
<xs:element name="float2x4" type="cg_float2x4"/>
8437
<xs:element name="float3x1" type="cg_float3x1"/>
8438
<xs:element name="float3x2" type="cg_float3x2"/>
8439
<xs:element name="float3x3" type="cg_float3x3"/>
8440
<xs:element name="float3x4" type="cg_float3x4"/>
8441
<xs:element name="float4x1" type="cg_float4x1"/>
8442
<xs:element name="float4x2" type="cg_float4x2"/>
8443
<xs:element name="float4x3" type="cg_float4x3"/>
8444
<xs:element name="float4x4" type="cg_float4x4"/>
8445
<xs:element name="int" type="cg_int"/>
8446
<xs:element name="int1" type="cg_int1"/>
8447
<xs:element name="int2" type="cg_int2"/>
8448
<xs:element name="int3" type="cg_int3"/>
8449
<xs:element name="int4" type="cg_int4"/>
8450
<xs:element name="int1x1" type="cg_int1x1"/>
8451
<xs:element name="int1x2" type="cg_int1x2"/>
8452
<xs:element name="int1x3" type="cg_int1x3"/>
8453
<xs:element name="int1x4" type="cg_int1x4"/>
8454
<xs:element name="int2x1" type="cg_int2x1"/>
8455
<xs:element name="int2x2" type="cg_int2x2"/>
8456
<xs:element name="int2x3" type="cg_int2x3"/>
8457
<xs:element name="int2x4" type="cg_int2x4"/>
8458
<xs:element name="int3x1" type="cg_int3x1"/>
8459
<xs:element name="int3x2" type="cg_int3x2"/>
8460
<xs:element name="int3x3" type="cg_int3x3"/>
8461
<xs:element name="int3x4" type="cg_int3x4"/>
8462
<xs:element name="int4x1" type="cg_int4x1"/>
8463
<xs:element name="int4x2" type="cg_int4x2"/>
8464
<xs:element name="int4x3" type="cg_int4x3"/>
8465
<xs:element name="int4x4" type="cg_int4x4"/>
8466
<xs:element name="half" type="cg_half"/>
8467
<xs:element name="half1" type="cg_half1"/>
8468
<xs:element name="half2" type="cg_half2"/>
8469
<xs:element name="half3" type="cg_half3"/>
8470
<xs:element name="half4" type="cg_half4"/>
8471
<xs:element name="half1x1" type="cg_half1x1"/>
8472
<xs:element name="half1x2" type="cg_half1x2"/>
8473
<xs:element name="half1x3" type="cg_half1x3"/>
8474
<xs:element name="half1x4" type="cg_half1x4"/>
8475
<xs:element name="half2x1" type="cg_half2x1"/>
8476
<xs:element name="half2x2" type="cg_half2x2"/>
8477
<xs:element name="half2x3" type="cg_half2x3"/>
8478
<xs:element name="half2x4" type="cg_half2x4"/>
8479
<xs:element name="half3x1" type="cg_half3x1"/>
8480
<xs:element name="half3x2" type="cg_half3x2"/>
8481
<xs:element name="half3x3" type="cg_half3x3"/>
8482
<xs:element name="half3x4" type="cg_half3x4"/>
8483
<xs:element name="half4x1" type="cg_half4x1"/>
8484
<xs:element name="half4x2" type="cg_half4x2"/>
8485
<xs:element name="half4x3" type="cg_half4x3"/>
8486
<xs:element name="half4x4" type="cg_half4x4"/>
8487
<xs:element name="fixed" type="cg_fixed"/>
8488
<xs:element name="fixed1" type="cg_fixed1"/>
8489
<xs:element name="fixed2" type="cg_fixed2"/>
8490
<xs:element name="fixed3" type="cg_fixed3"/>
8491
<xs:element name="fixed4" type="cg_fixed4"/>
8492
<xs:element name="fixed1x1" type="cg_fixed1x1"/>
8493
<xs:element name="fixed1x2" type="cg_fixed1x2"/>
8494
<xs:element name="fixed1x3" type="cg_fixed1x3"/>
8495
<xs:element name="fixed1x4" type="cg_fixed1x4"/>
8496
<xs:element name="fixed2x1" type="cg_fixed2x1"/>
8497
<xs:element name="fixed2x2" type="cg_fixed2x2"/>
8498
<xs:element name="fixed2x3" type="cg_fixed2x3"/>
8499
<xs:element name="fixed2x4" type="cg_fixed2x4"/>
8500
<xs:element name="fixed3x1" type="cg_fixed3x1"/>
8501
<xs:element name="fixed3x2" type="cg_fixed3x2"/>
8502
<xs:element name="fixed3x3" type="cg_fixed3x3"/>
8503
<xs:element name="fixed3x4" type="cg_fixed3x4"/>
8504
<xs:element name="fixed4x1" type="cg_fixed4x1"/>
8505
<xs:element name="fixed4x2" type="cg_fixed4x2"/>
8506
<xs:element name="fixed4x3" type="cg_fixed4x3"/>
8507
<xs:element name="fixed4x4" type="cg_fixed4x4"/>
8508
<xs:element name="surface" type="cg_surface_type"/>
8509
<xs:element name="sampler1D" type="cg_sampler1D"/>
8510
<xs:element name="sampler2D" type="cg_sampler2D"/>
8511
<xs:element name="sampler3D" type="cg_sampler3D"/>
8512
<xs:element name="samplerRECT" type="cg_samplerRECT"/>
8513
<xs:element name="samplerCUBE" type="cg_samplerCUBE"/>
8514
<xs:element name="samplerDEPTH" type="cg_samplerDEPTH"/>
8515
<xs:element name="string" type="xs:string"/>
8516
<xs:element name="enum" type="gl_enumeration"/>
8519
<xs:complexType name="cg_newparam">
8522
Create a new, named param object in the CG Runtime, assign it a type, an initial value, and additional attributes at declaration time.
8526
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded">
8529
The annotate element allows you to specify an annotation for this new param.
8533
<xs:element name="semantic" type="xs:NCName" minOccurs="0">
8536
The semantic element allows you to specify a semantic for this new param.
8540
<xs:element name="modifier" type="fx_modifier_enum_common" minOccurs="0">
8543
The modifier element allows you to specify a modifier for this new param.
8548
<xs:group ref="cg_param_type"/>
8549
<xs:element name="usertype" type="cg_setuser_type"/>
8550
<xs:element name="array" type="cg_newarray_type"/>
8553
<xs:attribute name="sid" type="cg_identifier" use="required"/>
8555
<xs:complexType name="cg_setparam_simple">
8557
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
8558
<xs:group ref="cg_param_type"/>
8560
<xs:attribute name="ref" type="cg_identifier" use="required"/>
8562
<xs:complexType name="cg_setparam">
8565
Assigns a new value to a previously defined parameter.
8569
<xs:group ref="cg_param_type"/>
8570
<xs:element name="usertype" type="cg_setuser_type"/>
8571
<xs:element name="array" type="cg_setarray_type"/>
8572
<xs:element name="connect_param" type="cg_connect_param"/>
8574
<xs:attribute name="ref" type="cg_identifier" use="required"/>
8575
<xs:attribute name="program" type="xs:NCName"/>
8577
<xs:element name="profile_CG" substitutionGroup="fx_profile_abstract">
8580
Opens a block of CG platform-specific data types and technique declarations.
8585
<xs:element ref="asset" minOccurs="0"/>
8586
<xs:choice minOccurs="0" maxOccurs="unbounded">
8587
<xs:element name="code" type="fx_code_profile"/>
8588
<xs:element name="include" type="fx_include_common"/>
8590
<xs:choice minOccurs="0" maxOccurs="unbounded">
8591
<xs:element ref="image"/>
8592
<xs:element name="newparam" type="cg_newparam"/>
8594
<xs:element name="technique" maxOccurs="unbounded">
8597
Holds a description of the textures, samplers, shaders, parameters, and passes necessary for rendering this effect using one method.
8602
<xs:element ref="asset" minOccurs="0">
8605
The technique element may contain an asset element.
8609
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
8610
<xs:choice minOccurs="0" maxOccurs="unbounded">
8611
<xs:element name="code" type="fx_code_profile"/>
8612
<xs:element name="include" type="fx_include_common"/>
8614
<xs:choice minOccurs="0" maxOccurs="unbounded">
8615
<xs:element ref="image"/>
8616
<xs:element name="newparam" type="cg_newparam"/>
8617
<xs:element name="setparam" type="cg_setparam"/>
8619
<xs:element name="pass" maxOccurs="unbounded">
8622
A static declaration of all the render states, shaders, and settings for one rendering pipeline.
8627
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
8628
<xs:element name="color_target" type="fx_colortarget_common" minOccurs="0" maxOccurs="unbounded"/>
8629
<xs:element name="depth_target" type="fx_depthtarget_common" minOccurs="0" maxOccurs="unbounded"/>
8630
<xs:element name="stencil_target" type="fx_stenciltarget_common" minOccurs="0" maxOccurs="unbounded"/>
8631
<xs:element name="color_clear" type="fx_clearcolor_common" minOccurs="0" maxOccurs="unbounded"/>
8632
<xs:element name="depth_clear" type="fx_cleardepth_common" minOccurs="0" maxOccurs="unbounded"/>
8633
<xs:element name="stencil_clear" type="fx_clearstencil_common" minOccurs="0" maxOccurs="unbounded"/>
8634
<xs:element name="draw" type="fx_draw_common" minOccurs="0"/>
8635
<xs:choice maxOccurs="unbounded">
8636
<xs:group ref="gl_pipeline_settings"/>
8637
<xs:element name="shader">
8640
Declare and prepare a shader for execution in the rendering pipeline of a pass.
8645
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
8646
<xs:sequence minOccurs="0">
8647
<xs:element name="compiler_target">
8650
<xs:extension base="xs:NMTOKEN"/>
8654
<xs:element name="compiler_options" type="xs:string" minOccurs="0">
8657
A string containing command-line operations for the shader compiler.
8662
<xs:element name="name">
8665
The entry symbol for the shader function.
8670
<xs:extension base="xs:NCName">
8671
<xs:attribute name="source" type="xs:NCName" use="optional"/>
8676
<xs:element name="bind" minOccurs="0" maxOccurs="unbounded">
8679
Binds values to uniform inputs of a shader.
8684
<xs:group ref="cg_param_type"/>
8685
<xs:element name="param">
8688
References a predefined parameter in shader binding declarations.
8692
<xs:attribute name="ref" type="xs:NCName" use="required"/>
8696
<xs:attribute name="symbol" type="xs:NCName" use="required">
8699
The identifier for a uniform input parameter to the shader (a formal function parameter or in-scope
8700
global) that will be bound to an external resource.
8707
<xs:attribute name="stage" type="cg_pipeline_stage">
8710
In which pipeline stage this programmable shader is designed to execute, for example, VERTEX, FRAGMENT, etc.
8717
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
8719
<xs:attribute name="sid" type="xs:NCName" use="optional">
8722
The sid attribute is a text string value containing the sub-identifier of this element.
8723
This value must be unique within the scope of the parent element. Optional attribute.
8729
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
8731
<xs:attribute name="id" type="xs:ID">
8734
The id attribute is a text string containing the unique identifier of this element.
8735
This value must be unique within the instance document. Optional attribute.
8739
<xs:attribute name="sid" type="xs:NCName" use="required">
8742
The sid attribute is a text string value containing the sub-identifier of this element.
8743
This value must be unique within the scope of the parent element. Optional attribute.
8749
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
8751
<xs:attribute name="id" type="xs:ID" use="optional">
8754
The id attribute is a text string containing the unique identifier of this element.
8755
This value must be unique within the instance document. Optional attribute.
8759
<xs:attribute name="platform" type="xs:NCName" use="optional" default="PC">
8762
The type of platform. This is a vendor-defined character string that indicates the platform or capability target for the technique. Optional
8768
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
8769
<!-- COLLADA FX GLES elements -->
8770
<!-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -->
8771
<!-- these maximum values are from the GL.h from Khronos. Not all of them are defined in the spec -->
8772
<xs:simpleType name="GLES_MAX_LIGHTS_index">
8773
<xs:restriction base="xs:nonNegativeInteger">
8774
<xs:minInclusive value="0"/>
8775
<xs:maxExclusive value="7"/>
8778
<xs:simpleType name="GLES_MAX_CLIP_PLANES_index">
8779
<xs:restriction base="xs:nonNegativeInteger">
8780
<xs:minInclusive value="0"/>
8781
<xs:maxExclusive value="5"/>
8784
<xs:simpleType name="GLES_MAX_TEXTURE_COORDS_index">
8785
<xs:restriction base="xs:nonNegativeInteger">
8786
<xs:minInclusive value="0"/>
8787
<xs:maxExclusive value="8"/>
8790
<xs:simpleType name="GLES_MAX_TEXTURE_IMAGE_UNITS_index">
8791
<xs:restriction base="xs:nonNegativeInteger">
8792
<xs:minInclusive value="0"/>
8793
<xs:maxExclusive value="31"/>
8796
<xs:simpleType name="gles_texenv_mode_enums">
8797
<xs:restriction base="xs:token">
8798
<xs:enumeration value="REPLACE">
8800
<xs:appinfo>value=0x1E01</xs:appinfo>
8803
<xs:enumeration value="MODULATE">
8805
<xs:appinfo>value=0x2100</xs:appinfo>
8808
<xs:enumeration value="DECAL">
8810
<xs:appinfo>value=0x2101</xs:appinfo>
8813
<xs:enumeration value="BLEND">
8815
<xs:appinfo>value=0x0BE2</xs:appinfo>
8818
<xs:enumeration value="ADD">
8820
<xs:appinfo>value=0x0104</xs:appinfo>
8825
<xs:complexType name="gles_texture_constant_type">
8826
<xs:attribute name="value" type="float4" use="optional"/>
8827
<xs:attribute name="param" type="xs:NCName" use="optional"/>
8829
<xs:complexType name="gles_texenv_command_type">
8831
<xs:element name="constant" type="gles_texture_constant_type" minOccurs="0"/>
8833
<xs:attribute name="operator" type="gles_texenv_mode_enums"/>
8834
<xs:attribute name="unit" type="xs:NCName"/>
8836
<xs:simpleType name="gles_texcombiner_operatorRGB_enums">
8837
<xs:restriction base="xs:token">
8838
<xs:enumeration value="REPLACE">
8840
<xs:appinfo>value=0x1E01</xs:appinfo>
8843
<xs:enumeration value="MODULATE">
8845
<xs:appinfo>value=0x2100</xs:appinfo>
8848
<xs:enumeration value="ADD">
8850
<xs:appinfo>value=0x0104</xs:appinfo>
8853
<xs:enumeration value="ADD_SIGNED">
8855
<xs:appinfo>value=0x8574</xs:appinfo>
8858
<xs:enumeration value="INTERPOLATE">
8860
<xs:appinfo>value=0x8575</xs:appinfo>
8863
<xs:enumeration value="SUBTRACT">
8865
<xs:appinfo>value=0x84E7</xs:appinfo>
8868
<xs:enumeration value="DOT3_RGB">
8870
<xs:appinfo>value=0x86AE</xs:appinfo>
8873
<xs:enumeration value="DOT3_RGBA">
8875
<xs:appinfo>value=0x86AF</xs:appinfo>
8880
<xs:simpleType name="gles_texcombiner_operatorAlpha_enums">
8881
<xs:restriction base="xs:token">
8882
<xs:enumeration value="REPLACE">
8884
<xs:appinfo>value=0x1E01</xs:appinfo>
8887
<xs:enumeration value="MODULATE">
8889
<xs:appinfo>value=0x2100</xs:appinfo>
8892
<xs:enumeration value="ADD">
8894
<xs:appinfo>value=0x0104</xs:appinfo>
8897
<xs:enumeration value="ADD_SIGNED">
8899
<xs:appinfo>value=0x8574</xs:appinfo>
8902
<xs:enumeration value="INTERPOLATE">
8904
<xs:appinfo>value=0x8575</xs:appinfo>
8907
<xs:enumeration value="SUBTRACT">
8909
<xs:appinfo>value=0x84E7</xs:appinfo>
8914
<xs:simpleType name="gles_texcombiner_source_enums">
8915
<xs:restriction base="xs:token">
8916
<xs:enumeration value="TEXTURE">
8918
<xs:appinfo>value=0x1702</xs:appinfo>
8921
<xs:enumeration value="CONSTANT">
8923
<xs:appinfo>value=0x8576</xs:appinfo>
8926
<xs:enumeration value="PRIMARY">
8928
<xs:appinfo>value=0x8577</xs:appinfo>
8931
<xs:enumeration value="PREVIOUS">
8933
<xs:appinfo>value=0x8578</xs:appinfo>
8938
<xs:simpleType name="gles_texcombiner_operandRGB_enums">
8939
<xs:restriction base="gl_blend_type">
8940
<xs:enumeration value="SRC_COLOR">
8942
<xs:appinfo>value=0x0300</xs:appinfo>
8945
<xs:enumeration value="ONE_MINUS_SRC_COLOR">
8947
<xs:appinfo>value=0x0301</xs:appinfo>
8950
<xs:enumeration value="SRC_ALPHA">
8952
<xs:appinfo>value=0x0302</xs:appinfo>
8955
<xs:enumeration value="ONE_MINUS_SRC_ALPHA">
8957
<xs:appinfo>value=0x0303</xs:appinfo>
8962
<xs:simpleType name="gles_texcombiner_operandAlpha_enums">
8963
<xs:restriction base="gl_blend_type">
8964
<xs:enumeration value="SRC_ALPHA">
8966
<xs:appinfo>value=0x0302</xs:appinfo>
8969
<xs:enumeration value="ONE_MINUS_SRC_ALPHA">
8971
<xs:appinfo>value=0x0303</xs:appinfo>
8976
<xs:simpleType name="gles_texcombiner_argument_index_type">
8977
<xs:restriction base="xs:nonNegativeInteger">
8978
<xs:minInclusive value="0"/>
8979
<xs:maxInclusive value="2"/>
8982
<xs:complexType name="gles_texcombiner_argumentRGB_type">
8983
<xs:attribute name="source" type="gles_texcombiner_source_enums"/>
8984
<xs:attribute name="operand" type="gles_texcombiner_operandRGB_enums" default="SRC_COLOR"/>
8985
<xs:attribute name="unit" type="xs:NCName" use="optional"/>
8987
<xs:complexType name="gles_texcombiner_argumentAlpha_type">
8988
<xs:attribute name="source" type="gles_texcombiner_source_enums"/>
8989
<xs:attribute name="operand" type="gles_texcombiner_operandAlpha_enums" default="SRC_ALPHA"/>
8990
<xs:attribute name="unit" type="xs:NCName" use="optional"/>
8992
<xs:complexType name="gles_texcombiner_commandRGB_type">
8995
Defines the RGB portion of a texture_pipeline command. This is a combiner-mode texturing operation.
8999
<xs:element name="argument" type="gles_texcombiner_argumentRGB_type" maxOccurs="3"/>
9001
<xs:attribute name="operator" type="gles_texcombiner_operatorRGB_enums"/>
9002
<xs:attribute name="scale" type="xs:float" use="optional"/>
9004
<xs:complexType name="gles_texcombiner_commandAlpha_type">
9006
<xs:element name="argument" type="gles_texcombiner_argumentAlpha_type" maxOccurs="3"/>
9008
<xs:attribute name="operator" type="gles_texcombiner_operatorAlpha_enums"/>
9009
<xs:attribute name="scale" type="xs:float" use="optional"/>
9011
<xs:complexType name="gles_texcombiner_command_type">
9013
<xs:element name="constant" type="gles_texture_constant_type" minOccurs="0"/>
9014
<xs:element name="RGB" type="gles_texcombiner_commandRGB_type" minOccurs="0"/>
9015
<xs:element name="alpha" type="gles_texcombiner_commandAlpha_type" minOccurs="0"/>
9018
<xs:complexType name="gles_texture_pipeline">
9021
Defines a set of texturing commands that will be converted into multitexturing operations using glTexEnv in regular and combiner mode.
9024
<xs:choice maxOccurs="unbounded">
9025
<xs:element name="texcombiner" type="gles_texcombiner_command_type">
9028
Defines a texture_pipeline command. This is a combiner-mode texturing operation.
9032
<xs:element name="texenv" type="gles_texenv_command_type">
9035
Defines a texture_pipeline command. It is a simple noncombiner mode of texturing operations.
9039
<xs:element ref="extra">
9042
The extra element may appear any number of times.
9043
OpenGL ES extensions may be used here.
9048
<xs:attribute name="sid" type="xs:NCName">
9051
The sid attribute is a text string value containing the sub-identifier of this element.
9052
This value must be unique within the scope of the parent element. Optional attribute.
9057
<xs:complexType name="gles_texture_unit">
9059
<xs:element name="surface" type="xs:NCName" minOccurs="0"/>
9060
<xs:element name="sampler_state" type="xs:NCName" minOccurs="0"/>
9061
<xs:element name="texcoord" minOccurs="0">
9063
<xs:attribute name="semantic" type="xs:NCName"/>
9066
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
9068
<xs:attribute name="sid" type="xs:NCName">
9071
The sid attribute is a text string value containing the sub-identifier of this element.
9072
This value must be unique within the scope of the parent element. Optional attribute.
9077
<xs:simpleType name="gles_sampler_wrap">
9078
<xs:restriction base="xs:NMTOKEN">
9079
<xs:enumeration value="REPEAT"/>
9080
<xs:enumeration value="CLAMP"/>
9081
<xs:enumeration value="CLAMP_TO_EDGE"/>
9082
<xs:enumeration value="MIRRORED_REPEAT">
9085
supported by GLES 1.1 only
9091
<xs:complexType name="gles_sampler_state">
9094
Two-dimensional texture sampler state for profile_GLES. This is a bundle of sampler-specific states that will be referenced by one or more texture_units.
9098
<xs:element name="wrap_s" type="gles_sampler_wrap" default="REPEAT" minOccurs="0"/>
9099
<xs:element name="wrap_t" type="gles_sampler_wrap" default="REPEAT" minOccurs="0"/>
9100
<xs:element name="minfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
9101
<xs:element name="magfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
9102
<xs:element name="mipfilter" type="fx_sampler_filter_common" default="NONE" minOccurs="0"/>
9103
<xs:element name="mipmap_maxlevel" type="xs:unsignedByte" default="255" minOccurs="0"/>
9104
<!-- perhaps bias not really supported but can be kludged in the app somewhat-->
9105
<xs:element name="mipmap_bias" type="xs:float" default="0.0" minOccurs="0"/>
9106
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
9109
The extra element may appear any number of times.
9110
OpenGL ES extensions may be used here.
9115
<xs:attribute name="sid" type="xs:NCName">
9118
The sid attribute is a text string value containing the sub-identifier of this element.
9119
This value must be unique within the scope of the parent element. Optional attribute.
9124
<xs:simpleType name="gles_stencil_op_type">
9125
<xs:restriction base="xs:string">
9126
<xs:enumeration value="KEEP">
9128
<xs:appinfo>value=0x1E00</xs:appinfo>
9131
<xs:enumeration value="ZERO">
9133
<xs:appinfo>value=0x0</xs:appinfo>
9136
<xs:enumeration value="REPLACE">
9138
<xs:appinfo>value=0x1E01</xs:appinfo>
9141
<xs:enumeration value="INCR">
9143
<xs:appinfo>value=0x1E02</xs:appinfo>
9146
<xs:enumeration value="DECR">
9148
<xs:appinfo>value=0x1E03</xs:appinfo>
9151
<xs:enumeration value="INVERT">
9153
<xs:appinfo>value=0x150A</xs:appinfo>
9158
<xs:simpleType name="gles_enumeration">
9159
<xs:union memberTypes="gl_blend_type gl_face_type gl_func_type gl_stencil_op_type gl_material_type gl_fog_type gl_front_face_type gl_light_model_color_control_type gl_logic_op_type gl_polygon_mode_type gl_shade_model_type"/>
9161
<xs:group name="gles_pipeline_settings">
9164
A group that contains the renderstates available for the GLES profile.
9168
<xs:element name="alpha_func">
9171
<xs:element name="func">
9173
<xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
9174
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9177
<xs:element name="value">
9179
<xs:attribute name="value" type="gl_alpha_value_type" use="optional" default="0.0"/>
9180
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9186
<xs:element name="blend_func">
9189
<xs:element name="src">
9191
<xs:attribute name="value" type="gl_blend_type" use="optional" default="ONE"/>
9192
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9195
<xs:element name="dest">
9197
<xs:attribute name="value" type="gl_blend_type" use="optional" default="ZERO"/>
9198
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9204
<xs:element name="clear_color">
9206
<xs:attribute name="value" type="float4" use="optional"/>
9207
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9210
<xs:element name="clear_stencil">
9212
<xs:attribute name="value" type="int" use="optional"/>
9213
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9216
<xs:element name="clear_depth">
9218
<xs:attribute name="value" type="float" use="optional"/>
9219
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9222
<xs:element name="clip_plane">
9224
<xs:attribute name="value" type="bool4" use="optional"/>
9225
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9226
<xs:attribute name="index" type="GLES_MAX_CLIP_PLANES_index" use="required"/>
9229
<xs:element name="color_mask">
9231
<xs:attribute name="value" type="bool4" use="optional"/>
9232
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9235
<xs:element name="cull_face">
9237
<xs:attribute name="value" type="gl_face_type" use="optional" default="BACK"/>
9238
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9241
<xs:element name="depth_func">
9243
<xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
9244
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9247
<xs:element name="depth_mask">
9249
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9250
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9253
<xs:element name="depth_range">
9255
<xs:attribute name="value" type="float2" use="optional" default="0 1"/>
9256
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9259
<xs:element name="fog_color">
9261
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
9262
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9265
<xs:element name="fog_density">
9267
<xs:attribute name="value" type="float" use="optional" default="1"/>
9268
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9271
<xs:element name="fog_mode">
9273
<xs:attribute name="value" type="gl_fog_type" use="optional" default="EXP"/>
9274
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9277
<xs:element name="fog_start">
9279
<xs:attribute name="value" type="float" use="optional" default="0"/>
9280
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9283
<xs:element name="fog_end">
9285
<xs:attribute name="value" type="float" use="optional" default="1"/>
9286
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9289
<xs:element name="front_face">
9291
<xs:attribute name="value" type="gl_front_face_type" use="optional" default="CCW"/>
9292
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9295
<xs:element name="texture_pipeline">
9298
<xs:element name="value" type="gles_texture_pipeline" minOccurs="0"/>
9300
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9303
<xs:element name="logic_op">
9305
<xs:attribute name="value" type="gl_logic_op_type" use="optional" default="COPY"/>
9306
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9309
<xs:element name="light_ambient">
9311
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 1"/>
9312
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9313
<xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
9316
<xs:element name="light_diffuse">
9318
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
9319
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9320
<xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
9323
<xs:element name="light_specular">
9325
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 0"/>
9326
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9327
<xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
9330
<xs:element name="light_position">
9332
<xs:attribute name="value" type="float4" use="optional" default="0 0 1 0"/>
9333
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9334
<xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
9337
<xs:element name="light_constant_attenuation">
9339
<xs:attribute name="value" type="float" use="optional" default="1"/>
9340
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9341
<xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
9344
<xs:element name="light_linear_attenutation">
9346
<xs:attribute name="value" type="float" use="optional" default="1"/>
9347
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9348
<xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
9351
<xs:element name="light_quadratic_attenuation">
9353
<xs:attribute name="value" type="float" use="optional" default="1"/>
9354
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9355
<xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
9358
<xs:element name="light_spot_cutoff">
9360
<xs:attribute name="value" type="float" use="optional" default="180"/>
9361
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9362
<xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
9365
<xs:element name="light_spot_direction">
9367
<xs:attribute name="value" type="float3" use="optional" default="0 0 -1"/>
9368
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9369
<xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
9372
<xs:element name="light_spot_exponent">
9374
<xs:attribute name="value" type="float" use="optional" default="0"/>
9375
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9376
<xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
9379
<xs:element name="light_model_ambient">
9381
<xs:attribute name="value" type="float4" use="optional" default="0.2 0.2 0.2 1.0"/>
9382
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9385
<xs:element name="line_width">
9387
<xs:attribute name="value" type="float" use="optional" default="1"/>
9388
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9391
<xs:element name="material_ambient">
9393
<xs:attribute name="value" type="float4" use="optional" default="0.2 0.2 0.2 1.0"/>
9394
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9397
<xs:element name="material_diffuse">
9399
<xs:attribute name="value" type="float4" use="optional" default="0.8 0.8 0.8 1.0"/>
9400
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9403
<xs:element name="material_emission">
9405
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 1"/>
9406
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9409
<xs:element name="material_shininess">
9411
<xs:attribute name="value" type="float" use="optional" default="0"/>
9412
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9415
<xs:element name="material_specular">
9417
<xs:attribute name="value" type="float4" use="optional" default="0 0 0 1"/>
9418
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9421
<xs:element name="model_view_matrix">
9423
<xs:attribute name="value" type="float4x4" use="optional" default="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"/>
9424
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9427
<xs:element name="point_distance_attenuation">
9429
<xs:attribute name="value" type="float3" use="optional" default="1 0 0"/>
9430
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9433
<xs:element name="point_fade_threshold_size">
9435
<xs:attribute name="value" type="float" use="optional" default="1"/>
9436
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9439
<xs:element name="point_size">
9441
<xs:attribute name="value" type="float" use="optional" default="1"/>
9442
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9445
<xs:element name="point_size_min">
9447
<xs:attribute name="value" type="float" use="optional" default="0"/>
9448
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9451
<xs:element name="point_size_max">
9453
<xs:attribute name="value" type="float" use="optional" default="1"/>
9454
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9457
<xs:element name="polygon_offset">
9459
<xs:attribute name="value" type="float2" use="optional" default="0 0"/>
9460
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9463
<xs:element name="projection_matrix">
9465
<xs:attribute name="value" type="float4x4" use="optional" default="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"/>
9466
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9469
<xs:element name="scissor">
9471
<xs:attribute name="value" type="int4" use="optional"/>
9472
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9475
<xs:element name="shade_model">
9477
<xs:attribute name="value" type="gl_shade_model_type" use="optional" default="SMOOTH"/>
9478
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9481
<xs:element name="stencil_func">
9484
<xs:element name="func">
9486
<xs:attribute name="value" type="gl_func_type" use="optional" default="ALWAYS"/>
9487
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9490
<xs:element name="ref">
9492
<xs:attribute name="value" type="xs:unsignedByte" use="optional" default="0"/>
9493
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9496
<xs:element name="mask">
9498
<xs:attribute name="value" type="xs:unsignedByte" use="optional" default="255"/>
9499
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9505
<xs:element name="stencil_mask">
9507
<xs:attribute name="value" type="int" use="optional" default="4294967295"/>
9508
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9511
<xs:element name="stencil_op">
9514
<xs:element name="fail">
9516
<xs:attribute name="value" type="gles_stencil_op_type" use="optional" default="KEEP"/>
9517
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9520
<xs:element name="zfail">
9522
<xs:attribute name="value" type="gles_stencil_op_type" use="optional" default="KEEP"/>
9523
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9526
<xs:element name="zpass">
9528
<xs:attribute name="value" type="gles_stencil_op_type" use="optional" default="KEEP"/>
9529
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9535
<xs:element name="alpha_test_enable">
9537
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9538
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9541
<xs:element name="blend_enable">
9543
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9544
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9547
<xs:element name="clip_plane_enable">
9549
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9550
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9551
<xs:attribute name="index" type="GLES_MAX_CLIP_PLANES_index"/>
9554
<xs:element name="color_logic_op_enable">
9556
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9557
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9560
<xs:element name="color_material_enable">
9562
<xs:attribute name="value" type="bool" use="optional" default="true"/>
9563
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9566
<xs:element name="cull_face_enable">
9568
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9569
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9572
<xs:element name="depth_test_enable">
9574
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9575
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9578
<xs:element name="dither_enable">
9580
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9581
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9584
<xs:element name="fog_enable">
9586
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9587
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9590
<xs:element name="texture_pipeline_enable">
9592
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9593
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9596
<xs:element name="light_enable">
9598
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9599
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9600
<xs:attribute name="index" type="GLES_MAX_LIGHTS_index" use="required"/>
9603
<xs:element name="lighting_enable">
9605
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9606
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9609
<xs:element name="light_model_two_side_enable">
9611
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9612
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9615
<xs:element name="line_smooth_enable">
9617
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9618
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9621
<xs:element name="multisample_enable">
9623
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9624
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9627
<xs:element name="normalize_enable">
9629
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9630
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9633
<xs:element name="point_smooth_enable">
9635
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9636
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9639
<xs:element name="polygon_offset_fill_enable">
9641
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9642
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9645
<xs:element name="rescale_normal_enable">
9647
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9648
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9651
<xs:element name="sample_alpha_to_coverage_enable">
9653
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9654
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9657
<xs:element name="sample_alpha_to_one_enable">
9659
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9660
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9663
<xs:element name="sample_coverage_enable">
9665
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9666
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9669
<xs:element name="scissor_test_enable">
9671
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9672
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9675
<xs:element name="stencil_test_enable">
9677
<xs:attribute name="value" type="bool" use="optional" default="false"/>
9678
<xs:attribute name="param" type="xs:NCName" use="optional"/>
9683
<!-- - - - - - - - - - - - - - - - - - - - -->
9684
<xs:group name="gles_basic_type_common">
9687
A group that defines the available variable types for GLES parameters.
9691
<xs:element name="bool" type="bool"/>
9692
<xs:element name="bool2" type="bool2"/>
9693
<xs:element name="bool3" type="bool3"/>
9694
<xs:element name="bool4" type="bool4"/>
9695
<xs:element name="int" type="int"/>
9696
<xs:element name="int2" type="int2"/>
9697
<xs:element name="int3" type="int3"/>
9698
<xs:element name="int4" type="int4"/>
9699
<xs:element name="float" type="float"/>
9700
<xs:element name="float2" type="float2"/>
9701
<xs:element name="float3" type="float3"/>
9702
<xs:element name="float4" type="float4"/>
9703
<xs:element name="float1x1" type="float"/>
9704
<xs:element name="float1x2" type="float2"/>
9705
<xs:element name="float1x3" type="float3"/>
9706
<xs:element name="float1x4" type="float4"/>
9707
<xs:element name="float2x1" type="float2"/>
9708
<xs:element name="float2x2" type="float2x2"/>
9709
<xs:element name="float2x3" type="float2x3"/>
9710
<xs:element name="float2x4" type="float2x4"/>
9711
<xs:element name="float3x1" type="float3"/>
9712
<xs:element name="float3x2" type="float3x2"/>
9713
<xs:element name="float3x3" type="float3x3"/>
9714
<xs:element name="float3x4" type="float3x4"/>
9715
<xs:element name="float4x1" type="float4"/>
9716
<xs:element name="float4x2" type="float4x2"/>
9717
<xs:element name="float4x3" type="float4x3"/>
9718
<xs:element name="float4x4" type="float4x4"/>
9719
<xs:element name="surface" type="fx_surface_common"/>
9720
<xs:element name="texture_pipeline" type="gles_texture_pipeline"/>
9721
<xs:element name="sampler_state" type="gles_sampler_state"/>
9722
<xs:element name="texture_unit" type="gles_texture_unit"/>
9723
<xs:element name="enum" type="gles_enumeration"/>
9726
<xs:complexType name="gles_newparam">
9729
Create a new, named param object in the GLES Runtime, assign it a type, an initial value, and additional attributes at declaration time.
9733
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded">
9736
The annotate element allows you to specify an annotation for this new param.
9740
<xs:element name="semantic" type="xs:NCName" minOccurs="0">
9743
The semantic element allows you to specify a semantic for this new param.
9747
<xs:element name="modifier" type="fx_modifier_enum_common" minOccurs="0">
9750
The modifier element allows you to specify a modifier for this new param.
9754
<xs:group ref="gles_basic_type_common"/>
9756
<xs:attribute name="sid" type="xs:NCName" use="required">
9759
The sid attribute is a text string value containing the sub-identifier of this element.
9760
This value must be unique within the scope of the parent element.
9765
<xs:simpleType name="gles_rendertarget_common">
9766
<xs:restriction base="xs:NCName"/>
9768
<xs:element name="profile_GLES" substitutionGroup="fx_profile_abstract">
9771
Opens a block of GLES platform-specific data types and technique declarations.
9776
<xs:element ref="asset" minOccurs="0"/>
9777
<xs:choice minOccurs="0" maxOccurs="unbounded">
9778
<xs:element ref="image"/>
9779
<xs:element name="newparam" type="gles_newparam"/>
9781
<xs:element name="technique" maxOccurs="unbounded">
9784
Holds a description of the textures, samplers, shaders, parameters, and passes necessary for rendering this effect using one method.
9789
<xs:element ref="asset" minOccurs="0"/>
9790
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
9791
<xs:choice minOccurs="0" maxOccurs="unbounded">
9792
<xs:element ref="image"/>
9793
<xs:element name="newparam" type="gles_newparam"/>
9794
<xs:element name="setparam">
9797
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
9798
<xs:group ref="gles_basic_type_common"/>
9800
<xs:attribute name="ref" type="xs:NCName" use="required"/>
9804
<xs:element name="pass" maxOccurs="unbounded">
9807
A static declaration of all the render states, shaders, and settings for one rendering pipeline.
9812
<xs:element name="annotate" type="fx_annotate_common" minOccurs="0" maxOccurs="unbounded"/>
9813
<xs:element name="color_target" type="gles_rendertarget_common" minOccurs="0"/>
9814
<xs:element name="depth_target" type="gles_rendertarget_common" minOccurs="0"/>
9815
<xs:element name="stencil_target" type="gles_rendertarget_common" minOccurs="0"/>
9816
<xs:element name="color_clear" type="fx_color_common" minOccurs="0"/>
9817
<xs:element name="depth_clear" type="float" minOccurs="0"/>
9818
<xs:element name="stencil_clear" type="xs:byte" minOccurs="0"/>
9819
<xs:element name="draw" type="fx_draw_common" minOccurs="0"/>
9820
<xs:choice minOccurs="0" maxOccurs="unbounded">
9821
<xs:group ref="gles_pipeline_settings"/>
9823
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
9825
<xs:attribute name="sid" type="xs:NCName" use="optional">
9828
The sid attribute is a text string value containing the sub-identifier of this element.
9829
This value must be unique within the scope of the parent element. Optional attribute.
9835
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
9837
<xs:attribute name="id" type="xs:ID"/>
9838
<xs:attribute name="sid" type="xs:NCName" use="required">
9841
The sid attribute is a text string value containing the sub-identifier of this element.
9842
This value must be unique within the scope of the parent element.
9848
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded"/>
9850
<xs:attribute name="id" type="xs:ID" use="optional">
9853
The id attribute is a text string containing the unique identifier of this element.
9854
This value must be unique within the instance document. Optional attribute.
9858
<xs:attribute name="platform" type="xs:NCName" use="optional" default="PC">
9861
The type of platform. This is a vendor-defined character string that indicates the platform or capability target for the technique. Optional
9867
<!-- COLLADA Physics -->
9868
<!-- new geometry types -->
9869
<xs:element name="box">
9872
An axis-aligned, centered box primitive.
9877
<xs:element name="half_extents" type="float3">
9880
3 float values that represent the extents of the box
9884
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
9887
The extra element may appear any number of times.
9894
<xs:element name="plane">
9897
An infinite plane primitive.
9902
<xs:element name="equation" type="float4">
9905
4 float values that represent the coefficients for the planeās equation: Ax + By + Cz + D = 0
9909
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
9912
The extra element may appear any number of times.
9919
<xs:element name="sphere">
9922
A centered sphere primitive.
9927
<xs:element name="radius" type="float">
9930
A float value that represents the radius of the sphere
9934
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
9937
The extra element may appear any number of times.
9944
<xs:element name="ellipsoid">
9947
<xs:element name="size" type="float3"/>
9951
<xs:element name="cylinder">
9954
A cylinder primitive that is centered on, and aligned with. the local Y axis.
9959
<xs:element name="height" type="float">
9962
A float value that represents the length of the cylinder along the Y axis.
9966
<xs:element name="radius" type="float2">
9969
float2 values that represent the radii of the cylinder.
9973
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
9976
The extra element may appear any number of times.
9983
<xs:element name="tapered_cylinder">
9986
A tapered cylinder primitive that is centered on and aligned with the local Y axis.
9991
<xs:element name="height" type="float">
9994
A float value that represents the length of the cylinder along the Y axis.
9998
<xs:element name="radius1" type="float2">
10001
Two float values that represent the radii of the tapered cylinder at the positive (height/2)
10002
Y value. Both ends of the tapered cylinder may be elliptical.
10003
</xs:documentation>
10006
<xs:element name="radius2" type="float2">
10009
Two float values that represent the radii of the tapered cylinder at the negative (height/2)
10010
Y value.Both ends of the tapered cylinder may be elliptical.
10011
</xs:documentation>
10014
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
10017
The extra element may appear any number of times.
10018
</xs:documentation>
10024
<xs:element name="capsule">
10027
A capsule primitive that is centered on and aligned with the local Y axis.
10028
</xs:documentation>
10032
<xs:element name="height" type="float">
10035
A float value that represents the length of the line segment connecting the centers
10036
of the capping hemispheres.
10037
</xs:documentation>
10040
<xs:element name="radius" type="float2">
10043
Two float values that represent the radii of the capsule (it may be elliptical)
10044
</xs:documentation>
10047
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
10050
The extra element may appear any number of times.
10051
</xs:documentation>
10057
<xs:element name="tapered_capsule">
10060
A tapered capsule primitive that is centered on, and aligned with, the local Y axis.
10061
</xs:documentation>
10065
<xs:element name="height" type="float">
10068
A float value that represents the length of the line segment connecting the centers of the
10069
capping hemispheres.
10070
</xs:documentation>
10073
<xs:element name="radius1" type="float2">
10076
Two float values that represent the radii of the tapered capsule at the positive (height/2)
10077
Y value.Both ends of the tapered capsule may be elliptical.
10078
</xs:documentation>
10081
<xs:element name="radius2" type="float2">
10084
Two float values that represent the radii of the tapered capsule at the negative (height/2)
10085
Y value.Both ends of the tapered capsule may be elliptical.
10086
</xs:documentation>
10089
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
10092
The extra element may appear any number of times.
10093
</xs:documentation>
10099
<xs:element name="convex_mesh">
10102
The definition of the convex_mesh element is identical to the mesh element with the exception that
10103
instead of a complete description (source, vertices, polygons etc.), it may simply point to another
10104
geometry to derive its shape. The latter case means that the convex hull of that geometry should
10105
be computed and is indicated by the optional āconvex_hull_ofā attribute.
10106
</xs:documentation>
10109
<xs:sequence minOccurs="0">
10110
<xs:element ref="source" maxOccurs="unbounded"/>
10111
<xs:element ref="vertices"/>
10112
<xs:choice minOccurs="0" maxOccurs="unbounded">
10113
<xs:element ref="lines"/>
10114
<xs:element ref="linestrips"/>
10115
<xs:element ref="polygons"/>
10116
<xs:element ref="polylist"/>
10117
<xs:element ref="triangles"/>
10118
<xs:element ref="trifans"/>
10119
<xs:element ref="tristrips"/>
10121
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
10124
The extra element may appear any number of times.
10125
</xs:documentation>
10129
<xs:attribute name="convex_hull_of" type="xs:anyURI">
10132
The convex_hull_of attribute is a URI string of geometry to compute the convex hull of.
10133
Optional attribute.
10134
</xs:documentation>
10139
<!-- physics object elements -->
10140
<xs:element name="force_field">
10143
A general container for force-fields. At the moment, it only has techniques and extra elements.
10144
</xs:documentation>
10148
<xs:element ref="asset" minOccurs="0">
10151
The force_field element may contain an asset element.
10152
</xs:documentation>
10155
<xs:element ref="technique" maxOccurs="unbounded">
10158
This element must contain at least one non-common profile technique.
10159
</xs:documentation>
10162
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
10165
The extra element may appear any number of times.
10166
</xs:documentation>
10170
<xs:attribute name="id" type="xs:ID">
10173
The id attribute is a text string containing the unique identifier of this element. This value
10174
must be unique within the instance document. Optional attribute.
10175
</xs:documentation>
10178
<xs:attribute name="name" type="xs:NCName">
10181
The name attribute is the text string name of this element. Optional attribute.
10182
</xs:documentation>
10187
<xs:element name="physics_material">
10190
This element defines the physical properties of an object. It contains a technique/profile with
10191
parameters. The COMMON profile defines the built-in names, such as static_friction.
10192
</xs:documentation>
10196
<xs:element ref="asset" minOccurs="0">
10199
The physics_material element may contain an asset element.
10200
</xs:documentation>
10203
<xs:element name="technique_common">
10206
The technique_common element specifies the physics_material information for the common profile
10207
which all COLLADA implementations need to support.
10208
</xs:documentation>
10212
<xs:element name="dynamic_friction" type="TargetableFloat" minOccurs="0">
10215
Dynamic friction coefficient
10216
</xs:documentation>
10219
<xs:element name="restitution" type="TargetableFloat" minOccurs="0">
10222
The proportion of the kinetic energy preserved in the impact (typically ranges from 0.0 to 1.0)
10223
</xs:documentation>
10226
<xs:element name="static_friction" type="TargetableFloat" minOccurs="0">
10229
Static friction coefficient
10230
</xs:documentation>
10236
<xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
10239
This element may contain any number of non-common profile techniques.
10240
</xs:documentation>
10243
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
10246
The extra element may appear any number of times.
10247
</xs:documentation>
10251
<xs:attribute name="id" type="xs:ID">
10254
The id attribute is a text string containing the unique identifier of this element.
10255
This value must be unique within the instance document. Optional attribute.
10256
</xs:documentation>
10259
<xs:attribute name="name" type="xs:NCName">
10262
The name attribute is the text string name of this element. Optional attribute.
10263
</xs:documentation>
10268
<xs:element name="physics_scene">
10271
<xs:element ref="asset" minOccurs="0">
10274
The physics_scene element may contain an asset element.
10275
</xs:documentation>
10278
<xs:element ref="instance_force_field" minOccurs="0" maxOccurs="unbounded">
10281
There may be any number of instance_force_field elements.
10282
</xs:documentation>
10285
<xs:element ref="instance_physics_model" minOccurs="0" maxOccurs="unbounded">
10288
There may be any number of instance_physics_model elements.
10289
</xs:documentation>
10292
<xs:element name="technique_common">
10295
The technique_common element specifies the physics_scene information for the common profile
10296
which all COLLADA implementations need to support.
10297
</xs:documentation>
10301
<xs:element name="gravity" type="TargetableFloat3" minOccurs="0">
10304
The gravity vector to use for the physics_scene.
10305
</xs:documentation>
10308
<xs:element name="time_step" type="TargetableFloat" minOccurs="0">
10311
The time_step for the physics_scene.
10312
</xs:documentation>
10318
<xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
10321
This element may contain any number of non-common profile techniques.
10322
</xs:documentation>
10325
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
10328
The extra element may appear any number of times.
10329
</xs:documentation>
10333
<xs:attribute name="id" type="xs:ID">
10336
The id attribute is a text string containing the unique identifier of this element.
10337
This value must be unique within the instance document. Optional attribute.
10338
</xs:documentation>
10341
<xs:attribute name="name" type="xs:NCName">
10344
The name attribute is the text string name of this element. Optional attribute.
10345
</xs:documentation>
10350
<xs:simpleType name="SpringType">
10351
<xs:restriction base="xs:NMTOKEN">
10352
<xs:enumeration value="LINEAR"/>
10353
<xs:enumeration value="ANGULAR"/>
10356
<xs:element name="rigid_body">
10359
This element allows for describing simulated bodies that do not deform. These bodies may or may
10360
not be connected by constraints (hinge, ball-joint etc.). Rigid-bodies, constraints etc. are
10361
encapsulated in physics_model elements to allow for instantiating complex models.
10362
</xs:documentation>
10366
<xs:element name="technique_common">
10369
The technique_common element specifies the rigid_body information for the common profile which all
10370
COLLADA implementations need to support.
10371
</xs:documentation>
10375
<xs:element name="dynamic" minOccurs="0">
10378
If false, the rigid_body is not moveable
10379
</xs:documentation>
10383
<xs:extension base="bool">
10384
<xs:attribute name="sid" type="xs:NCName">
10387
The sid attribute is a text string value containing the sub-identifier of this element.
10388
This value must be unique within the scope of the parent element. Optional attribute.
10389
</xs:documentation>
10393
</xs:simpleContent>
10396
<xs:element name="mass" type="TargetableFloat" minOccurs="0">
10399
The total mass of the rigid-body
10400
</xs:documentation>
10403
<xs:element name="mass_frame" minOccurs="0">
10406
Defines the center and orientation of mass of the rigid-body relative to the local origin of the
10407
ārootā shape.This makes the off-diagonal elements of the inertia tensor (products of inertia) all
10408
0 and allows us to just store the diagonal elements (moments of inertia).
10409
</xs:documentation>
10412
<xs:choice maxOccurs="unbounded">
10413
<xs:element ref="translate"/>
10414
<xs:element ref="rotate"/>
10418
<xs:element name="inertia" type="TargetableFloat3" minOccurs="0">
10421
float3 ā The diagonal elements of the inertia tensor (moments of inertia), which is represented
10422
in the local frame of the center of mass. See above.
10423
</xs:documentation>
10426
<xs:choice minOccurs="0">
10427
<xs:element ref="instance_physics_material">
10430
References a physics_material for the rigid_body.
10431
</xs:documentation>
10434
<xs:element ref="physics_material">
10437
Defines a physics_material for the rigid_body.
10438
</xs:documentation>
10442
<xs:element name="shape" maxOccurs="unbounded">
10445
This element allows for describing components of a rigid_body.
10446
</xs:documentation>
10450
<xs:element name="hollow" minOccurs="0">
10453
If true, the mass is distributed along the surface of the shape
10454
</xs:documentation>
10458
<xs:extension base="bool">
10459
<xs:attribute name="sid" type="xs:NCName">
10462
The sid attribute is a text string value containing the sub-identifier of this element.
10463
This value must be unique within the scope of the parent element. Optional attribute.
10464
</xs:documentation>
10468
</xs:simpleContent>
10471
<xs:element name="mass" type="TargetableFloat" minOccurs="0">
10474
The mass of the shape.
10475
</xs:documentation>
10478
<xs:element name="density" type="TargetableFloat" minOccurs="0">
10481
The density of the shape.
10482
</xs:documentation>
10485
<xs:choice minOccurs="0">
10486
<xs:element ref="instance_physics_material">
10489
References a physics_material for the shape.
10490
</xs:documentation>
10493
<xs:element ref="physics_material">
10496
Defines a physics_material for the shape.
10497
</xs:documentation>
10502
<xs:element ref="instance_geometry">
10505
Instances a geometry to use to define this shape.
10506
</xs:documentation>
10509
<xs:element ref="plane">
10512
Defines a plane to use for this shape.
10513
</xs:documentation>
10516
<xs:element ref="box">
10519
Defines a box to use for this shape.
10520
</xs:documentation>
10523
<xs:element ref="sphere">
10526
Defines a sphere to use for this shape.
10527
</xs:documentation>
10530
<xs:element ref="cylinder">
10533
Defines a cyliner to use for this shape.
10534
</xs:documentation>
10537
<xs:element ref="tapered_cylinder">
10540
Defines a tapered_cylinder to use for this shape.
10541
</xs:documentation>
10544
<xs:element ref="capsule">
10547
Defines a capsule to use for this shape.
10548
</xs:documentation>
10551
<xs:element ref="tapered_capsule">
10554
Defines a tapered_capsule to use for this shape.
10555
</xs:documentation>
10559
<xs:choice minOccurs="0" maxOccurs="unbounded">
10560
<xs:element ref="translate">
10563
Allows a tranformation for the shape.
10564
</xs:documentation>
10567
<xs:element ref="rotate">
10570
Allows a tranformation for the shape.
10571
</xs:documentation>
10575
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
10578
The extra element may appear any number of times.
10579
</xs:documentation>
10588
<xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
10591
This element may contain any number of non-common profile techniques.
10592
</xs:documentation>
10595
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
10598
The extra element may appear any number of times.
10599
</xs:documentation>
10603
<xs:attribute name="sid" type="xs:NCName" use="required">
10606
The sid attribute is a text string value containing the sub-identifier of this element. This
10607
value must be unique within the scope of the parent element. Optional attribute.
10608
</xs:documentation>
10611
<xs:attribute name="name" type="xs:NCName">
10614
The name attribute is the text string name of this element. Optional attribute.
10615
</xs:documentation>
10620
<xs:element name="rigid_constraint">
10623
This element allows for connecting components, such as rigid_body into complex physics models
10624
with moveable parts.
10625
</xs:documentation>
10629
<xs:element name="ref_attachment">
10632
Defines the attachment (to a rigid_body or a node) to be used as the reference-frame.
10633
</xs:documentation>
10636
<xs:choice minOccurs="0" maxOccurs="unbounded">
10637
<xs:element ref="translate">
10640
Allows you to "position" the attachment point.
10641
</xs:documentation>
10644
<xs:element ref="rotate">
10647
Allows you to "position" the attachment point.
10648
</xs:documentation>
10651
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
10654
The extra element may appear any number of times.
10655
</xs:documentation>
10659
<xs:attribute name="rigid_body" type="xs:anyURI">
10662
The ārigid_bodyā attribute is a relative reference to a rigid-body within the same
10664
</xs:documentation>
10669
<xs:element name="attachment">
10672
Defines an attachment to a rigid-body or a node.
10673
</xs:documentation>
10676
<xs:choice minOccurs="0" maxOccurs="unbounded">
10677
<xs:element ref="translate">
10680
Allows you to "position" the attachment point.
10681
</xs:documentation>
10684
<xs:element ref="rotate">
10687
Allows you to "position" the attachment point.
10688
</xs:documentation>
10691
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
10694
The extra element may appear any number of times.
10695
</xs:documentation>
10699
<xs:attribute name="rigid_body" type="xs:anyURI">
10702
The ārigid_bodyā attribute is a relative reference to a rigid-body within the same physics_model.
10703
</xs:documentation>
10708
<xs:element name="technique_common">
10711
The technique_common element specifies the rigid_constraint information for the common profile
10712
which all COLLADA implementations need to support.
10713
</xs:documentation>
10717
<xs:element name="enabled" default="true" minOccurs="0">
10720
If false, the constraint doesnāt exert any force or influence on the rigid bodies.
10721
</xs:documentation>
10725
<xs:extension base="bool">
10726
<xs:attribute name="sid" type="xs:NCName">
10729
The sid attribute is a text string value containing the sub-identifier of this element.
10730
This value must be unique within the scope of the parent element. Optional attribute.
10731
</xs:documentation>
10735
</xs:simpleContent>
10738
<xs:element name="interpenetrate" default="false" minOccurs="0">
10741
Indicates whether the attached rigid bodies may inter-penetrate.
10742
</xs:documentation>
10746
<xs:extension base="bool">
10747
<xs:attribute name="sid" type="xs:NCName">
10750
The sid attribute is a text string value containing the sub-identifier of this element.
10751
This value must be unique within the scope of the parent element. Optional attribute.
10752
</xs:documentation>
10756
</xs:simpleContent>
10759
<xs:element name="limits" minOccurs="0">
10762
The limits element provides a flexible way to specify the constraint limits (degrees of freedom
10764
</xs:documentation>
10768
<xs:element name="swing_cone_and_twist" minOccurs="0">
10771
The swing_cone_and_twist element describes the angular limits along each rotation axis in degrees.
10772
The the X and Y limits describe a āswing coneā and the Z limits describe the ātwist angleā range
10773
</xs:documentation>
10777
<xs:element name="min" type="TargetableFloat3" default="0.0 0.0 0.0" minOccurs="0">
10780
The minimum values for the limit.
10781
</xs:documentation>
10784
<xs:element name="max" type="TargetableFloat3" default="0.0 0.0 0.0" minOccurs="0">
10787
The maximum values for the limit.
10788
</xs:documentation>
10794
<xs:element name="linear" minOccurs="0">
10797
The linear element describes linear (translational) limits along each axis.
10798
</xs:documentation>
10802
<xs:element name="min" type="TargetableFloat3" default="0.0 0.0 0.0" minOccurs="0">
10805
The minimum values for the limit.
10806
</xs:documentation>
10809
<xs:element name="max" type="TargetableFloat3" default="0.0 0.0 0.0" minOccurs="0">
10812
The maximum values for the limit.
10813
</xs:documentation>
10822
<xs:element name="spring" minOccurs="0">
10825
Spring, based on distance (āLINEARā) or angle (āANGULARā).
10826
</xs:documentation>
10830
<xs:element name="angular" minOccurs="0">
10833
The angular spring properties.
10834
</xs:documentation>
10838
<xs:element name="stiffness" type="TargetableFloat" default="1.0" minOccurs="0">
10841
The stiffness (also called spring coefficient) has units of force/angle in degrees.
10842
</xs:documentation>
10845
<xs:element name="damping" type="TargetableFloat" default="0.0" minOccurs="0">
10848
The spring damping coefficient.
10849
</xs:documentation>
10852
<xs:element name="target_value" type="TargetableFloat" default="0.0" minOccurs="0">
10855
The spring's target or resting distance.
10856
</xs:documentation>
10862
<xs:element name="linear" minOccurs="0">
10865
The linear spring properties.
10866
</xs:documentation>
10870
<xs:element name="stiffness" type="TargetableFloat" default="1.0" minOccurs="0">
10873
The stiffness (also called spring coefficient) has units of force/distance.
10874
</xs:documentation>
10877
<xs:element name="damping" type="TargetableFloat" default="0.0" minOccurs="0">
10880
The spring damping coefficient.
10881
</xs:documentation>
10884
<xs:element name="target_value" type="TargetableFloat" default="0.0" minOccurs="0">
10887
The spring's target or resting distance.
10888
</xs:documentation>
10900
<xs:element ref="technique" minOccurs="0" maxOccurs="unbounded">
10903
This element may contain any number of non-common profile techniques.
10904
</xs:documentation>
10907
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
10910
The extra element may appear any number of times.
10911
</xs:documentation>
10915
<xs:attribute name="sid" type="xs:NCName" use="required">
10918
The sid attribute is a text string value containing the sub-identifier of this element.
10919
This value must be unique within the scope of the parent element. Optional attribute.
10920
</xs:documentation>
10923
<xs:attribute name="name" type="xs:NCName">
10926
The name attribute is the text string name of this element. Optional attribute.
10927
</xs:documentation>
10932
<xs:element name="physics_model">
10935
This element allows for building complex combinations of rigid-bodies and constraints that
10936
may be instantiated multiple times.
10937
</xs:documentation>
10941
<xs:element ref="asset" minOccurs="0">
10944
The physics_model element may contain an asset element.
10945
</xs:documentation>
10948
<xs:element ref="rigid_body" minOccurs="0" maxOccurs="unbounded">
10951
The physics_model may define any number of rigid_body elements.
10952
</xs:documentation>
10955
<xs:element ref="rigid_constraint" minOccurs="0" maxOccurs="unbounded">
10958
The physics_model may define any number of rigid_constraint elements.
10959
</xs:documentation>
10962
<xs:element ref="instance_physics_model" minOccurs="0" maxOccurs="unbounded">
10965
The physics_model may instance any number of other physics_model elements.
10966
</xs:documentation>
10969
<xs:element ref="extra" minOccurs="0" maxOccurs="unbounded">
10972
The extra element may appear any number of times.
10973
</xs:documentation>
10977
<xs:attribute name="id" type="xs:ID">
10980
The id attribute is a text string containing the unique identifier of this element.
10981
This value must be unique within the instance document. Optional attribute.
10982
</xs:documentation>
10985
<xs:attribute name="name" type="xs:NCName">
10988
The name attribute is the text string name of this element. Optional attribute.
10989
</xs:documentation>
10994
<!-- COMMON Profile Types -->
10995
<xs:simpleType name="Common_profile_input">
10997
<xs:appinfo>constant-strings</xs:appinfo>
10999
<xs:restriction base="xs:NMTOKEN">
11000
<xs:enumeration value="BINORMAL"/>
11001
<xs:enumeration value="COLOR"/>
11002
<xs:enumeration value="CONTINUITY"/>
11003
<xs:enumeration value="IMAGE"/>
11004
<xs:enumeration value="IN_TANGENT"/>
11005
<xs:enumeration value="INPUT"/>
11006
<xs:enumeration value="INTERPOLATION"/>
11007
<xs:enumeration value="INV_BIND_MATRIX"/>
11008
<xs:enumeration value="JOINT"/>
11009
<xs:enumeration value="LINEAR_STEPS"/>
11010
<xs:enumeration value="MORPH_TARGET"/>
11011
<xs:enumeration value="MORPH_WEIGHT"/>
11012
<xs:enumeration value="NORMAL"/>
11013
<xs:enumeration value="OUTPUT"/>
11014
<xs:enumeration value="OUT_TANGENT"/>
11015
<xs:enumeration value="POSITION"/>
11016
<xs:enumeration value="TANGENT"/>
11017
<xs:enumeration value="TEXBINORMAL"/>
11018
<xs:enumeration value="TEXCOORD"/>
11019
<xs:enumeration value="TEXTANGENT"/>
11020
<xs:enumeration value="UV"/>
11021
<xs:enumeration value="VERTEX"/>
11022
<xs:enumeration value="WEIGHT"/>
11025
<xs:simpleType name="Common_profile_param">
11027
<xs:appinfo>constant-strings</xs:appinfo>
11029
<xs:restriction base="xs:NMTOKEN">
11030
<xs:enumeration value="A"/>
11031
<xs:enumeration value="ANGLE"/>
11032
<xs:enumeration value="B"/>
11033
<xs:enumeration value="DOUBLE_SIDED"/>
11034
<xs:enumeration value="G"/>
11035
<xs:enumeration value="P"/>
11036
<xs:enumeration value="Q"/>
11037
<xs:enumeration value="R"/>
11038
<xs:enumeration value="S"/>
11039
<xs:enumeration value="T"/>
11040
<xs:enumeration value="TIME"/>
11041
<xs:enumeration value="U"/>
11042
<xs:enumeration value="V"/>
11043
<xs:enumeration value="W"/>
11044
<xs:enumeration value="X"/>
11045
<xs:enumeration value="Y"/>
11046
<xs:enumeration value="Z"/>