小编ada*_*aly的帖子

打开chrome开发人员工具时的双重请求

我有一个奇怪的问题,我有一个非常简单的节点/ expressjs应用程序(我有一个更复杂的一个,但这个简单的例子显示了问题).这个应用程序有三个路由,如下所示:

var i = 0;

app.route('/login')
.get(function(req, res){
    console.log('login', ++i);

    res.send('login');
})

app.route('/test')
.get(function(req, res){
    console.log('test', ++i);

    res.send('test');
})

app.route('/')
.get(function(req, res){
    console.log('index', ++i);

    res.send('index');
})
Run Code Online (Sandbox Code Playgroud)

很简单.任何时候请求其中一条路线'i'递增并记录,并且它工作正常,除非chrome dev工具打开.当dev工具打开时,请求登录或测试将被请求两次.这是日志的结果:

15:45:30 web.1  | index 1
15:45:33 web.1  | login 2
15:45:34 web.1  | login 3
15:45:37 web.1  | test 4
15:45:37 web.1  | test 5
15:45:41 web.1  | login 6
15:45:42 web.1  | login 7
15:45:45 web.1  | test 8
15:45:45 web.1  | test 9
15:45:48 web.1  | index 10
Run Code Online (Sandbox Code Playgroud)

这里发生了什么.这是Chrome的错误吗? …

javascript google-chrome node.js express google-chrome-devtools

7
推荐指数
1
解决办法
3869
查看次数

在 webgl 中设置制服

任何人都可以解释或指出我正确解释用于设置统一值的不同函数的正确方向。在此处的备忘单中我们得到了这个:

void uniform[1234][fi](uint location, ...) void uniform[1234][fi]v(uint location, Array value) void uniformMatrix[234]fv(uint location, bool transpose, Array)

但我想知道每个人在做什么以及 f 和 i 的用途。

javascript opengl-es webgl

3
推荐指数
2
解决办法
6984
查看次数

webgl中的多个对象

我正在尝试将一些对象渲染到画布上,而我在理解什么不起作用时遇到了一些麻烦.

我正在构建两个对象,代表我想渲染的两个网格.如果我创建一个网格,代码工作正常,我认为问题是,当我构建两个或更多时,数据被搞砸了.

这是网格数据的一个例子:

"name":"cone",
"buffers":{
    "vertexPosition":{}, // Buffer
    "vertexIndex":{} // Buffer
},
"mesh":{
    "vertices":[], // emptied it to fit on page
     "faces":[] // emptied it to fit on page
},
"mvMatrix": Float32Array[16],
"itemSize":3,
"numItems":12,
"program":{
    "vertexPosAttrib":0,
    "mvMatrixUniform":{},
    "pMatrixUniform":{}
}
Run Code Online (Sandbox Code Playgroud)

这是从这个功能构建的:

buildMeshData: function(){

this.mvMatrix = mat4.create();

this.buffers.vertexPosition = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, this.buffers.vertexPosition);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(this.mesh.vertices), gl.STATIC_DRAW);

this.buffers.vertexIndex = gl.createBuffer();
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.buffers.vertexIndex);
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(this.mesh.faces), gl.STATIC_DRAW);

this.itemSize = 3;
this.numItems = this.mesh.faces.length;

var vertexProps = {

    attributes: ['vec3', 'VertexPosition'],
    uniforms: ['mat4', 'MVMatrix', 'mat4', …
Run Code Online (Sandbox Code Playgroud)

javascript webgl

2
推荐指数
1
解决办法
2444
查看次数

webgl、纹理坐标和 obj

我发现渲染数据时很难理解顶点和纹理坐标之间的相关性。我有一个使用从 obj 解析的 drawElements 表单数据绘制的立方体。我在某个接近于使用简单平面的地方得到了纹理,其中位置和纹理坐标的顶点数,但是一旦我使用更复杂的模型,甚至只是更复杂的 uv 展开,我最终会得到纹理全部错误。

从我读到的内容来看,没有看到像使用顶点位置一样使用纹理坐标索引的方法,这是不幸的,因为 obj 具有该信息。我让它接近工作的方法是通过 obj.txt 中的索引数据构建一个纹理坐标数组。但由于顶点和纹理坐标数组的长度不同(例如,在立方体的 obj 中,有 8 个顶点和最多 36 个纹理坐标,具体取决于网格是否展开),因此它们不相关。

使用drawElements 并将顶点映射到正确的纹理坐标的正确工作流程是什么?

javascript webgl

1
推荐指数
1
解决办法
2360
查看次数