我正在尝试学习WebGL和JavaScript,因为我想使用我的图形编程技能来创建3D Web应用程序。我习惯于用C ++进行OpenGL编程。
现在,做一些教程,我遇到的变量既没有在任何地方声明,也没有包含在其他脚本中,据我所见。以下是两个例子:
khronos wiki tutorial一直在使用变量g
,例如:
g.program = simpleSetup( /* ... */ );
g
从未在此范围内声明过。如何找出它代表什么?当然,Google并没有多少搜索'g'或'javascript g'。
另一个例子是使用mat4
的{{3}},从以下内容开始:
mat4.identity(mvMatrix);
由于了解OpenGL,我理解这行代码:从modelview获取单位矩阵,但mat4来自哪里?在我自己的项目中使用这行代码会破坏我的脚本。谷歌收益为'mat4' voxolent beginners guide,但它也只是说使用:
mat4.create();
......如果没有进一步的步骤,这显然是行不通的。
我在这里缺少什么?当我在示例/教程/文档中看到未知变量时,我是否总是需要猜测/挖掘?如何在我的脚本中加入mat4
?什么是g
?
请为我解释一下。
答案 0 :(得分:1)
我发现mat4来自js/math/gl-matrix-min.js
以下是我使用谷歌浏览器的方式:
mat4
,结果看起来它不是内置对象,因为我可以看到紧凑的源代码mat4.set
mat4.transpose
... 哦,第一行表明源代码来自https://github.com/toji/gl-matrix/
答案 1 :(得分:1)
关于变量“g”的问题,它只是一个全局可访问的变量,包含许多其他有用的变量。
在全球范围内,您声明var g = {};
,之后,您可以通过g
或g.myGlProgram = simpleSetup(...)
g.myVertexBuffer = ctx.createBuffer(...)
这只是一个不错的JavaScript技巧