comparison fps/resources/parse.js @ 0:fbb6f4f89f76

info3_1week
author Syusaku Morita <e105716@ie.u-ryukyu.ac.jp>
date Fri, 27 Apr 2012 13:13:49 +0900
parents
children 6b217e0f301c
comparison
equal deleted inserted replaced
-1:000000000000 0:fbb6f4f89f76
1
2
3
4
5 function loadObjXml(gl,url)
6 {
7 if(gl.obj == undefined) gl.obj = new Object();
8 var xmlChara = new Object();
9 xmlChara = parseObj(url);
10 for (var name in xmlChara)
11 {
12 gl.obj[name] = makeXmlObj(gl, xmlChara[name]);
13 gl.obj[name].texture = loadImageTexture(gl, xmlChara[name].image);
14 }
15 }
16
17 function PutSpriteF(ctx, x, y, scale, glObj)
18 {
19 PutSpriteA(ctx,x,y,10, scale, 0, glObj);
20 }
21
22
23 function PutSpriteA(ctx, x, y, z, scale, angle, glObj)
24 {
25 // setup VBOs
26 ctx.enableVertexAttribArray(0);
27 ctx.enableVertexAttribArray(1);
28 ctx.enableVertexAttribArray(2);
29
30 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.vertexObject);
31 ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0);
32 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.normalObject);
33 ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0);
34
35 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.texCoordObject);
36 ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0);
37
38 ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, glObj.indexObject);
39
40 // generate the model-view matrix
41 var mvMatrix = new J3DIMatrix4();
42 mvMatrix.translate( x, y, z);
43 mvMatrix.scale(scale, scale, scale);
44 mvMatrix.rotate(angle, 0, 0, 1);
45
46 // construct the normal matrix from the model-view matrix
47 var normalMatrix = new J3DIMatrix4(mvMatrix);
48 normalMatrix.invert();
49 normalMatrix.transpose();
50 normalMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false);
51
52 // construct the model-view * projection matrix
53 var mvpMatrix = new J3DIMatrix4(ctx.perspectiveMatrix);
54 mvpMatrix.multiply(mvMatrix);
55 mvpMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false);
56
57
58 ctx.bindTexture(ctx.TEXTURE_2D, glObj.texture);
59 ctx.drawElements(ctx.TRIANGLES, glObj.numIndices, ctx.UNSIGNED_SHORT, 0);
60
61 }
62
63
64
65 // matrix version
66 function PutSpriteV(ctx, x, y, z, scale, matrix, glObj)
67 {
68 // setup VBOs
69 ctx.enableVertexAttribArray(0);
70 ctx.enableVertexAttribArray(1);
71 ctx.enableVertexAttribArray(2);
72
73 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.vertexObject);
74 ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0);
75 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.normalObject);
76 ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0);
77
78 ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.texCoordObject);
79 ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0);
80
81 ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, glObj.indexObject);
82
83 // generate the model-view matrix
84 var mvMatrix = new J3DIMatrix4();
85 mvMatrix.translate( x, y, z);
86 mvMatrix.scale(scale, scale, scale);
87 mvMatrix.multiply(matrix);
88
89 // construct the normal matrix from the model-view matrix
90 var normalMatrix = new J3DIMatrix4(mvMatrix);
91 normalMatrix.invert();
92 normalMatrix.transpose();
93 normalMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false);
94
95 // construct the model-view * projection matrix
96 var mvpMatrix = new J3DIMatrix4(ctx.perspectiveMatrix);
97 mvpMatrix.multiply(mvMatrix);
98 mvpMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false);
99
100
101 ctx.bindTexture(ctx.TEXTURE_2D, glObj.texture);
102 ctx.drawElements(ctx.TRIANGLES, glObj.numIndices, ctx.UNSIGNED_SHORT, 0);
103
104 }