Mercurial > hg > Members > e105716
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 } |