javascript - 如何将 "require"分成三个文件的 WebGL 代码放入一个引导文件中?

标签 javascript webgl commonjs

我写了一些 WebGL 代码,实际上我正在玩找到的例子 here .无论如何,我决定编写三个单独的伪类,为了节省空间,我将在这里只展示其中一个,因为我认为其他伪类与问题无关。

var Buffer = (function() {

/* PRIVATE MEMBERS */
var currentBuffer;
var itemSize = 3;
var numberItems;
var localWebGLContext;

/* CONSTRUCTOR */
var BufferConstructor = function(webGLWorker, vertices) {
    localWebGLContext = webGLWorker.getWebGLContext();
    currentBuffer = localWebGLContext.createBuffer();
    localWebGLContext.bindBuffer(localWebGLContext.ARRAY_BUFFER, currentBuffer);
    localWebGLContext.bufferData(localWebGLContext.ARRAY_BUFFER, new Float32Array(vertices), localWebGLContext.STATIC_DRAW);
    numberItems = vertices.length / itemSize;
};

return BufferConstructor;
})();

所以我想知道什么是最好的方法,我可以将它们包含(要求)在一个单独的文件中,该文件将引导一切。我阅读了有关 CommonJS 的内容,但这是在服务器端,而这里我们讨论的是客户端。我真的不想将所有内容都保存在一个文件中,因为我想要做的事情最终会像一个应用程序一样大,我真的不想把它全部放在一个地方。提前致谢!

最佳答案

对于我的 WebGL 项目,我使用 Require.js .语法不如 Node 的 CommonJS 实现好,但它与客户端的异步特性配合得很好。快速示例:

require([
    "renderer",
    "util"
], function(Renderer, Util) {
    // Use the code from your required files in here!
});

为它定义一个模块同样简单:

define([
    "matrix" // Dependencies for this module
], function(Matrix) {
    return {
        DrawSuff: function() { /*...*/ }
    }
});

您可以在 WebGL 项目中看到一个简单的例子 here .

关于javascript - 如何将 "require"分成三个文件的 WebGL 代码放入一个引导文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9752948/

相关文章:

javascript - 滚动期间需要固定表格

javascript - Ext JS 4.1 中的递归树形菜单结构

algorithm - 我可以使用 3 维单纯形噪声实现在球面上生成噪声吗?

javascript - 在 THREE.js 中构造一个球体

javascript - Browserify:如何避免两个 jQuery 实例?

javascript - 捆绑和混淆 Common.JS 项目的好方法?

javascript - 使用 CommonJS 语法中的文件使用 Karma 和 RequireJS 进行测试

javascript - 在 ReactJS 上使用 Lodash 对映射列表进行排序

php - 我可以在没有 javascript 的情况下只加载页面的一部分吗?

canvas - 需要加速我的 SVG。我可以转换为 WebGL 或 Canvas 吗?