五 WebGL

作者: 十丈_红尘 | 来源:发表于2020-07-22 14:16 被阅读0次

    Svg入门
    WebGL(Web Graphics Library)是一种 3D 绘图协议,WebGL可以为 HTML5 Canvas 提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示 3D 场景和模型了,还能创建复杂的导航和数据视觉化。

    WebGL 案例分享


    WebGL 绘制点

    ***
    <html>
      <body>
        <canvas id="canvas" width="200px" height="200px"></canvas>
        <script>
        window.onload = function () {
          //顶点着色器程序
          var VSHADER_SOURCE =
              "void main() {" +
                  //设置坐标
              "gl_Position = vec4(0.0, 0.0, 0.0, 1.0); " +
                  //设置尺寸
              "gl_PointSize = 10.0; " +
              "} ";
        
          //片元着色器
          var FSHADER_SOURCE =
              "void main() {" +
                  //设置颜色
              "gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);" +
              "}";
          //获取canvas元素
          var canvas = document.getElementById('canvas');
          //获取绘制二维上下文
          var gl = canvas.getContext('webgl');
          if (!gl) {
              console.log("Failed");
              return;
          }
          //编译着色器
          var vertShader = gl.createShader(gl.VERTEX_SHADER);
          gl.shaderSource(vertShader, VSHADER_SOURCE);
          gl.compileShader(vertShader);
        
          var fragShader = gl.createShader(gl.FRAGMENT_SHADER);
          gl.shaderSource(fragShader, FSHADER_SOURCE);
          gl.compileShader(fragShader);
          //合并程序
          var shaderProgram = gl.createProgram();
          gl.attachShader(shaderProgram, vertShader);
          gl.attachShader(shaderProgram, fragShader);
          gl.linkProgram(shaderProgram);
          gl.useProgram(shaderProgram);
        
          //绘制一个点
          gl.drawArrays(gl.POINTS, 0, 1);
        }
        </script>
    </body>
    </html>
    

    zrender

    相关文章

      网友评论

          本文标题:五 WebGL

          本文链接:https://www.haomeiwen.com/subject/ncozkktx.html