Javascript WebGL示例赢得';我不能和你一起工作

Javascript WebGL示例赢得';我不能和你一起工作,javascript,matrix,webgl,Javascript,Matrix,Webgl,当我从opengl迁移到webgl时,我发现了一些困难 在我添加统一矩阵之前,三角形示例工作得很好,这就是为什么我只包含相关代码的原因 希望您能发现错误 顶点/片段着色器: <head> <script id="triangle_frag" type="frag"> precision mediump float; varying vec3 Col; void main(void) { g

当我从opengl迁移到webgl时,我发现了一些困难

在我添加统一矩阵之前,三角形示例工作得很好,这就是为什么我只包含相关代码的原因

希望您能发现错误

顶点/片段着色器:

<head>
    <script id="triangle_frag" type="frag">
        precision mediump float;

        varying vec3 Col;

        void main(void) {
            gl_FragColor = vec4(Col, 1.0);
        }
    </script>


    <script id="triangle_vert"   type="vert">
        attribute vec3 aVertexPosition;
        attribute vec3 color;

        varying vec3 Col;

        uniform mat4 Model;
        uniform mat4 View;
        uniform mat4 Projection;

        void main(void) {
            gl_Position = Projection * View * Model * vec4(aVertexPosition, 1.0);
            Col = color;
        }
    </script>

//...

精密中泵浮子;
可变vec3列;
真空总管(真空){
gl_FragColor=vec4(Col,1.0);
}
属性向量3;
属性向量3颜色;
可变vec3列;
统一mat4模型;
统一mat4视图;
均匀mat4投影;
真空总管(真空){
gl_位置=投影*视图*模型*vec4(1.0);
Col=颜色;
}
//...

我正在使用gl-matrix-min.js,并尝试在Windows7上使用firefox运行该示例

执行
console.log(Projection)
以查看其是否有效。gl matrix在某个时间点更改了其api,以接受修改后的矩阵作为其第一个参数。不确定您使用的是哪个版本。事实上,它是有效的。我刚刚下载了我在GitHub上找到的最新一个,从现在开始我应该把修改后的矩阵作为这种类型的每个函数的第一个参数吗?“mat4.perspective(out,fovy,aspect,near,far)生成一个具有给定边界的透视投影矩阵”文档确认了这一点,谢谢您的回答。您既不查找也不分配属性位置。你只是假设0和1起作用。那不是便携式的,只是运气好而已。
<head>
    <script id="triangle_frag" type="frag">
        precision mediump float;

        varying vec3 Col;

        void main(void) {
            gl_FragColor = vec4(Col, 1.0);
        }
    </script>


    <script id="triangle_vert"   type="vert">
        attribute vec3 aVertexPosition;
        attribute vec3 color;

        varying vec3 Col;

        uniform mat4 Model;
        uniform mat4 View;
        uniform mat4 Projection;

        void main(void) {
            gl_Position = Projection * View * Model * vec4(aVertexPosition, 1.0);
            Col = color;
        }
    </script>

//...