WebGL画一个10px大小的点

WebGL程序在屏幕上同时使用HTML和javascript来创建和显示三维图形。WebGL中新引入的<canvas>元素标签,它定义了网页上的绘图区域。

由于<canvas>元素可以灵活地同时支持维维图形和三维图形,它不直接提供绘图方法,而是提供一种叫上下文(context)的机制来进行绘图。我们首先获取这个上下文。

//获取WebGL绘图上下文var gl = getWebGLContext(canvas, true);

getWebGLContext(element, [debug]);

获取WebGL绘图上下文;

如果开启debug属性,遇到错误时将在控制台显示错误消息。参数:


参数

element

指定canvas标签

 

debug
默认为false,如果设置为true,javascript中发生的错误将被显示在控制台上。注意,在调试结束后关闭它,否则会影响性能

返回值

non-null

WebGL绘图上下文

 

null

WebGL不可用

WebGL画一个10px大小的点:

/***
 * 1.画一个矩形
 */
function main() {
    //获取<canvas>标签
    var canvas = document.getElementById("myCanvas");
    //获取WebGL绘图上下文
    var gl = getWebGLContext(canvas, true);
    //如果浏览器不支持WebGL则提示错误
    if(!gl){
        console.log("请使用高版本的浏览器!");
        return;
    }
    console.log(gl);
    //指定清除颜色缓冲区的颜色,每个分量的取值范围0-1
    gl.clearColor(0.5, 1, 1, 1);
    //用指定的颜色清除颜色缓冲区
    gl.clear(gl.COLOR_BUFFER_BIT);
}

/***
 * 1.画一个点
 */
//顶点着色器程序
var VSHADER_SOURCE =
    "void main(){\n" +
    //设置坐标
    "gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n" +
    //设置尺寸
    "gl_PointSize = 10.0;\n" +
    "}\n";
//片元着色器
var FSHADER_SOURCE =
    "void main() {\n" +
    //设置颜色
    "gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);\n" +
    "}\n";
function main(){
    //获取<canvas>标签
    var canvas = document.getElementById("myCanvas");
    //获取WebGL绘图上下文
    var gl = getWebGLContext(canvas, true);
    //如果浏览器不支持WebGL则提示错误
    if(!gl){
        console.log("请使用高版本的浏览器!");
        return;
    }
    console.log(initShaders(gl, VSHADER_SOURCE, FSHADER_SOURCE));
    //初始化着色器
    if(!initShaders(gl, VSHADER_SOURCE, FSHADER_SOURCE)){
        console.log("着色器初始化失败!");
        return;
    }
    //设置<canvas>的背景色
    gl.clearColor(0.0, 0.0, 0.0, 1.0);
    //清空<canvas>
    /***
     * gl.clear();函数继承自OpenGL();
     * 它基于多基本缓冲区模型,比二维绘图上下文复杂的多。
     * 清空绘图区,实际上是在清空颜色缓冲区 通过指定的颜色去擦除已经绘制的内容。
     * 传递 gl.COLOR_BUFFER_BIT参数就是在告诉WebGL清空颜色缓冲区。
     * 如果在使用该函数之前没有指定任何颜色,那么默认会rgba(0,0,0,0);作为清除颜色。
     * 这个颜色是全透明的,替换出来的结果就是什么颜色都没有,显示为浏览器本身的颜色。
     *
     */
    gl.clear(gl.COLOR_BUFFER_BIT);
    //绘制一个点
    /***
     * drawArrays(mode, first, count);
     * mode:指定绘图的方式,可接收以下常量符号:
     * POINTS LINES LINE_STRIP LINE_LOOP TRIANGLES TRIANGLES_STRIP TRIANGLES_FAN
     * first:指定从哪个顶点开始绘制 整型
     * count:指定绘制需要用到多少个顶点 整型
     * 返回值:无
     * 错误:
     * INVALID_ENUM:传入mode参数不是前序参数之一
     * INVALID_VALUE:参数first或count是负数
     */
    gl.drawArrays(gl.POINTS, 0, 1);
}
时间: 2024-11-12 14:41:31

WebGL画一个10px大小的点的相关文章

Effective前端3:用CSS画一个三角形

三角形的场景很常见,打开一个页面可以看到各种各样的三角形: 由于div一般是四边形,要画个三角形并不是那么直观.你可以贴一张png,但是这种办法有点low,或者是用svg的形式,但是太麻烦.三角形其实可以用CSS画出来.如上图提到,可以分为两种三角形,一种是纯色的三角形,第二种是有边框色的三角形,先介绍最简单的纯色三角形. 1. 三角形的画法 三角形可以用border画出来,首先一个有四个border的div应该是这样的: 然后把它的高度和宽度去掉,剩下四个border,就变成了: 再把bord

Effective前端(3)用CSS画一个三角形

来源:https://zhuanlan.zhihu.com/p/26160325 三角形的场景很常见,打开一个页面可以看到各种各样的三角形: 由于div一般是四边形,要画个三角形并不是那么直观.你可以贴一张png,但是这种办法有点low,或者是用svg的形式,但是太麻烦.三角形其实可以用CSS画出来.如上图提到,可以分为两种三角形,一种是纯色的三角形,第二种是有边框色的三角形,先介绍最简单的纯色三角形. 1. 三角形的画法 三角形可以用border画出来,首先一个有四个border的div应该是

TeaPot 用webgl画茶壶(1)

我想通过画一个茶壶,一步步的学习webgl.先画一个完全红的茶壶,在Fragment Shader里每一个像素都画成红的,这样画出来的物体没有立体感,但是我想尽快的现在屏幕上画出一些东西来.茶壶的数据是由网上找的半成品改的,放在TeaPotData.js里,是一个对象变量. var teaPotData = { vertexPositions : new Float32Array([......]),/*好多数据,三个一组,代表Mesh的vertex坐标*/ vertexNormals : ne

Effective前端1---chapter 2 用CSS画一个三角形

1.CSS画三角形的画法 第一步:三角形可以用border画出来,首先一个有四个border的div长这样: <div class="triangle"></div> <style> .triangle{ margin: 100px; border-top: 40px solid #000; border-bottom: 40px solid #333; border-left: 40px solid #666; border-right: 40px

[原创]css3简单几步画一个乾坤图

效果如上,鼠标移上去会有动画. 代码如下非常简单: 1 <html> 2 <head> 3 <style> 4 .outer{height:100px;width:200px;border-radius:100px 100px 0px 0px;border:solid 1px #666;border-bottom:none; margin:0 auto;background:#fff;overflow:hidden;} 5 .inner{width:300px;heig

手把手带你画一个漂亮蜂窝view Android自定义view

上一篇做了一个水波纹view  不知道大家有没有动手试试呢点击打开链接 这个效果做起来好像没什么意义,如果不加监听回调 图片就能直接替代.写这篇博客的目的是锻炼一下思维能力,以更好的面多各种自定义view需求. 转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50554058 本文是和代码同步写的.也就是说在写文章的时候才敲的代码.这样会显得文章有些许混乱.但是我想这样记录下来,一个自定义view的真正的制作过程,是一点一点,一步步跟

css3简单几步画一个乾坤图

原文:[原创]css3简单几步画一个乾坤图 效果如上,鼠标移上去会有动画. 代码如下非常简单: 1 <html> 2 <head> 3 <style> 4 .outer{height:100px;width:200px;border-radius:100px 100px 0px 0px;border:solid 1px #666;border-bottom:none; margin:0 auto;background:#fff;overflow:hidden;} 5 .

canvas游戏小试:画一个按方向键移动的圆点

canvas游戏小试:画一个按方向键移动的圆点 自己对canvas,但又有一颗做游戏的心TT.然后记录一下对canvas的学习吧,用一个按方向键控制的小圆点来做练习.(编程时用了一些es6的语法) 示例的html很简单,只有一个canvas元素: <html> <head> <link rel="stylesheet" href="css/base.css"> <link rel="stylesheet"

.使用 HTML+CSS 实现如图布局,border-widht 5px,一个格子大小是 50*50,hover时候边框变为红色(兼容IE6+,考虑语义化的结构)

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>css淘宝测试练习题</title> <style type="text/css"> *{margin: 0;padding: 0;font-size: