0

我目前正在尝试学习 WebGL 和 JavaScript,因为我想使用我的图形编程技能来创建 3D Web 应用程序。我习惯用 C++ 进行 OpenGL 编程。

现在,在做一些教程时,我遇到了一些变量,这些变量既没有在任何地方声明,也没有包含在我所看到的其他脚本中。这里有两个例子:

khronos wiki 教程经常使用变量g,例如:

g.program = simpleSetup( /* ... */ );

g从未在此范围内声明。如何找出它代表什么?当然,谷歌对“g”“javascript g”的搜索并不多。

另一个例子是正在使用的voxolent 初学者指南mat4,从以下内容开始:

mat4.identity(mvMatrix);

由于了解 OpenGL,我了解这行代码:从模型视图中获取单位矩阵,但 mat4 来自哪里?在我自己的项目中使用这行代码会破坏我的脚本。谷歌为“mat4”提供 了这个文档,但它也说简单地使用:

mat4.create();

...如果没有进一步的步骤,这显然是行不通的。

我在这里缺少什么?当我在示例/教程/文档中看到未知变量时,我是否总是需要猜测/挖掘?如何包含mat4在我的脚本中?是什么g

请为我解释一下。

4

2 回答 2

1

I found mat4 comes from js/math/gl-matrix-min.js

Here's how I did it using Google Chrome:

  1. Load page http://voxelent.com/html/beginners-guide/1727_04/ch4_ModelView_Rotation.html
  2. Press F12
  3. Switch to Console tab and type mat4, the result looks like it's not a built in object for I could see the compact source code
  4. Switch to Sources tab and switch to Source tab, see the tree
  5. Just expanded js folder and saw math folder and expand
  6. Saw a lot of mat4.set mat4.transpose ...

Oh, and the first line suggest the source code comes from https://github.com/toji/gl-matrix/

于 2013-07-10T06:16:48.520 回答
1

关于您关于变量“g”的问题,它只是一个全局可访问的变量,其中包含许多其他有用的变量。

在全局范围内,您声明var g = {};,然后,您可以g通过执行g.myGlProgram = simpleSetup(...)或添加成员g.myVertexBuffer = ctx.createBuffer(...)

这只是一个不错的 JavaScript 技巧

于 2013-07-10T17:02:42.983 回答