@@ -32,7 +32,7 @@ local positions =
3232 vmath .vec3 (- 0.5 , 0.5 , - 0.5 ),
3333 vmath .vec3 ( 0.5 , 0.5 , - 0.5 ),
3434
35- -- Left
35+ -- Right
3636 vmath .vec3 ( 0.5 , 0.5 , 0.5 ),
3737 vmath .vec3 ( 0.5 , 0.5 , - 0.5 ),
3838 vmath .vec3 ( 0.5 , - 0.5 , - 0.5 ),
@@ -50,7 +50,7 @@ local positions =
5050 vmath .vec3 (- 0.5 , - 0.5 , - 0.5 ),
5151 vmath .vec3 (- 0.5 , - 0.5 , 0.5 ),
5252
53- -- Right
53+ -- Left
5454 vmath .vec3 (- 0.5 , 0.5 , 0.5 ),
5555 vmath .vec3 (- 0.5 , - 0.5 , 0.5 ),
5656 vmath .vec3 (- 0.5 , - 0.5 , - 0.5 ),
@@ -71,7 +71,7 @@ local normals =
7171 vmath .vec3 (0.0 , 1.0 , 0.0 ),
7272 vmath .vec3 (0.0 , 1.0 , 0.0 ),
7373
74- -- Left
74+ -- Right
7575 vmath .vec3 (1.0 , 0.0 , 0.0 ),
7676 vmath .vec3 (1.0 , 0.0 , 0.0 ),
7777 vmath .vec3 (1.0 , 0.0 , 0.0 ),
@@ -89,7 +89,7 @@ local normals =
8989 vmath .vec3 (0.0 , - 1.0 , 0.0 ),
9090 vmath .vec3 (0.0 , - 1.0 , 0.0 ),
9191
92- -- Right
92+ -- Left
9393 vmath .vec3 (- 1.0 , 0.0 , 0.0 ),
9494 vmath .vec3 (- 1.0 , 0.0 , 0.0 ),
9595 vmath .vec3 (- 1.0 , 0.0 , 0.0 ),
@@ -129,6 +129,39 @@ local colors =
129129 vmath .vec4 (1.0 , 0.5 , 1.0 , 1.0 ),
130130}
131131
132+ local texCoords =
133+ {
134+ vmath .vec2 (1.0 , 1.0 ),
135+ vmath .vec2 (1.0 , 0.0 ),
136+ vmath .vec2 (0.0 , 0.0 ),
137+ vmath .vec2 (0.0 , 1.0 ),
138+
139+ vmath .vec2 (1.0 , 1.0 ),
140+ vmath .vec2 (1.0 , 0.0 ),
141+ vmath .vec2 (0.0 , 0.0 ),
142+ vmath .vec2 (0.0 , 1.0 ),
143+
144+ vmath .vec2 (0.0 , 1.0 ),
145+ vmath .vec2 (1.0 , 1.0 ),
146+ vmath .vec2 (1.0 , 0.0 ),
147+ vmath .vec2 (0.0 , 0.0 ),
148+
149+ vmath .vec2 (0.0 , 1.0 ),
150+ vmath .vec2 (1.0 , 1.0 ),
151+ vmath .vec2 (1.0 , 0.0 ),
152+ vmath .vec2 (0.0 , 0.0 ),
153+
154+ vmath .vec2 (1.0 , 1.0 ),
155+ vmath .vec2 (1.0 , 0.0 ),
156+ vmath .vec2 (0.0 , 0.0 ),
157+ vmath .vec2 (0.0 , 1.0 ),
158+
159+ vmath .vec2 (1.0 , 1.0 ),
160+ vmath .vec2 (1.0 , 0.0 ),
161+ vmath .vec2 (0.0 , 0.0 ),
162+ vmath .vec2 (0.0 , 1.0 ),
163+ }
164+
132165local indices =
133166{
134167 vmath .vec3 (0 , 1 , 2 ),
@@ -150,6 +183,19 @@ local indices =
150183 vmath .vec3 (22 , 23 , 20 ),
151184};
152185
186+ local function WriteVAO (writer , name , ...)
187+ local attribs = {... }
188+
189+ writer :PushElement (" vao" );
190+ writer :AddAttribute (" name" , name );
191+ for i , attrib in ipairs (attribs ) do
192+ writer :PushElement (" source" );
193+ writer :AddAttribute (" attrib" , tostring (attrib ));
194+ writer :PopElement ();
195+ end
196+ writer :PopElement ();
197+ end
198+
153199do
154200 local writer = XmlWriter .XmlWriter (" UnitCube.xml" );
155201 writer :AddPI (" oxygen" , [[ RNGSchema="../../Documents/meshFormat.rnc" type="compact"]] );
172218 writer :AddAttribute (" size" , " 3" );
173219 writer :AddText (GenStringFromArray (normals ));
174220 writer :PopElement ();
175- writer :PushElement (" vao" );
176- writer :AddAttribute (" name" , " lit" );
177- writer :PushElement (" source" ); writer :AddAttribute (" attrib" , " 0" ); writer :PopElement ();
178- writer :PushElement (" source" ); writer :AddAttribute (" attrib" , " 2" ); writer :PopElement ();
179- writer :PopElement ();
180- writer :PushElement (" vao" );
181- writer :AddAttribute (" name" , " lit-color" );
182- writer :PushElement (" source" ); writer :AddAttribute (" attrib" , " 0" ); writer :PopElement ();
183- writer :PushElement (" source" ); writer :AddAttribute (" attrib" , " 1" ); writer :PopElement ();
184- writer :PushElement (" source" ); writer :AddAttribute (" attrib" , " 2" ); writer :PopElement ();
185- writer :PopElement ();
186- writer :PushElement (" vao" );
187- writer :AddAttribute (" name" , " color" );
188- writer :PushElement (" source" ); writer :AddAttribute (" attrib" , " 0" ); writer :PopElement ();
189- writer :PushElement (" source" ); writer :AddAttribute (" attrib" , " 1" ); writer :PopElement ();
190- writer :PopElement ();
191- writer :PushElement (" vao" );
192- writer :AddAttribute (" name" , " flat" );
193- writer :PushElement (" source" ); writer :AddAttribute (" attrib" , " 0" ); writer :PopElement ();
221+ writer :PushElement (" attribute" );
222+ writer :AddAttribute (" index" , " 5" );
223+ writer :AddAttribute (" type" , " float" );
224+ writer :AddAttribute (" size" , " 2" );
225+ writer :AddText (GenStringFromArray (texCoords ));
194226 writer :PopElement ();
227+ WriteVAO (writer , " lit" , 0 , 2 );
228+ WriteVAO (writer , " lit-color" , 0 , 1 , 2 );
229+ WriteVAO (writer , " color" , 0 , 1 );
230+ WriteVAO (writer , " lit-tex" , 0 , 2 , 5 );
231+ WriteVAO (writer , " lit-color-tex" , 0 , 1 , 2 , 5 );
232+ WriteVAO (writer , " color-tex" , 0 , 1 , 5 );
233+ WriteVAO (writer , " tex" , 0 , 5 );
234+ WriteVAO (writer , " flat" , 0 );
195235 writer :PushElement (" indices" );
196236 writer :AddAttribute (" cmd" , " triangles" );
197237 writer :AddAttribute (" type" , " ushort" );
0 commit comments