WebGL

一、介绍

WebGL 是基于 OpenGL ES 的面向 web 端的 GPU 计算库,简单来说就是网页浏览器能够调用 GPU 的计算库。

WebGL网页组成成分:HTML5、JavaScript和GLSL ES(着色器语言 OpenGL ES);

二、用法

  • WebGL采用H5中的元素来定义绘图区域,然后通过JavaScript内嵌GLSL ES在canvas中绘制三维图形。
    1、创建HTML5 canvas
html 复制代码
<canvas id="canvas" width="200px" height="200px"></canvas>

2、获取WebGL

js 复制代码
var canvas = document.getElementById('canvas');

var gl = canvas.getContext('webgl');

3、着色器

js 复制代码
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);" +
        "}";

    //编译着色器
    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);
}

参考文章 - 《WebGL 的简要入门》

相关推荐
namexingyun21 小时前
开源前端生态如何成为 AI UI 生成的“燃料“:shadcn/ui、Tailwind CSS、Storybook 技术价值全解剖
java·前端·人工智能·python·ui·开源·ai编程
Zyed21 小时前
[STM32]Day15读写FLASH+读取ID
前端·stm32·性能优化
jvxiao1 天前
你真的懂作用域吗?从编译原理角度深度 JS 的作用域
前端·javascript
Darling噜啦啦1 天前
二叉树与递归算法实战:从树结构到 LeetCode 爬楼梯,一文吃透前端数据结构与递归思维
前端·javascript·数据结构
星栈1 天前
Rust + Makepad 应用怎么打包发布:Windows、macOS、Linux 全平台交付
前端·rust
Aolith1 天前
React 路由守卫:我用一个组件替代了 Vue 的 beforeEach
前端·react.js
Daybreak1 天前
从 PDD、DDD、SDD 到 TDD:我是如何用一套 Agent 工程方法论推进 My-Notion 的
前端
HjhIron1 天前
从零实现一个待办事项应用:前端必学的Ajax与Node.js实战
前端·后端
yingyima1 天前
JavaScript 正则表达式:从零开始的实战对比
前端
Sammyyyyy1 天前
月之暗面 Kimi Code 0.4.0 发布,终端 AI 编码助手全面采用 TypeScript,实现毫秒级启动
前端·javascript·人工智能·ai·typescript·servbay