WebGL画一个10px大小的点
WebGL程序在屏幕上同时使用HTML和javascript来创建和显示三维图形。WebGL中新引入的<canvas>元素标签,它定义了网页上的绘图区域。
//获取WebGL绘图上下文
var gl = getWebGLContext(canvas, true);
getWebGLContext(element, [debug]);

/***
* 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);
}
WebGL画一个10px大小的点的更多相关文章
- Effective前端3:用CSS画一个三角形
p { text-indent: 2em } .triangle-container p { text-indent: 0 } img { margin: 15px 0 } 三角形的场景很常见,打开一 ...
- Effective前端(3)用CSS画一个三角形
来源:https://zhuanlan.zhihu.com/p/26160325 三角形的场景很常见,打开一个页面可以看到各种各样的三角形: 由于div一般是四边形,要画个三角形并不是那么直观.你可以 ...
- Effective前端1---chapter 2 用CSS画一个三角形
1.CSS画三角形的画法 第一步:三角形可以用border画出来,首先一个有四个border的div长这样: <div class="triangle"></di ...
- 用canvas画一个的小画板(PC端移动端都能用)
前言 本篇的内容主要包括: canvas标签简介 画板的功能简介 画板的JS部分(包括:1.获取画布 2.使画板全屏幕显示且自适应 3.如何绘制直线 4.绘画时的三种状态(鼠标点击.移动.离开)5.画 ...
- canvas游戏小试:画一个按方向键移动的圆点
canvas游戏小试:画一个按方向键移动的圆点 自己对canvas,但又有一颗做游戏的心TT.然后记录一下对canvas的学习吧,用一个按方向键控制的小圆点来做练习.(编程时用了一些es6的语法) ...
- .使用 HTML+CSS 实现如图布局,border-widht 5px,一个格子大小是 50*50,hover时候边框变为红色(兼容IE6+,考虑语义化的结构)
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- css3简单几步画一个乾坤图
原文:[原创]css3简单几步画一个乾坤图 效果如上,鼠标移上去会有动画. 代码如下非常简单: <html> <head> <style> .outer{heigh ...
- vb代码之------画一个半透明矩形
入吾QQ群183435019 (学习 交流+唠嗑). 废话不说,咱们来看代码吧 程序结果运行如下 需要如下API 1:GdipCreateFromHDC 功能:创建设备场景相对应的绘图区域(相当于给设 ...
- 手把手带你画一个漂亮蜂窝view Android自定义view
上一篇做了一个水波纹view 不知道大家有没有动手试试呢点击打开链接 这个效果做起来好像没什么意义,如果不加监听回调 图片就能直接替代.写这篇博客的目的是锻炼一下思维能力,以更好的面多各种自定义vi ...
随机推荐
- 自己在UWP程序上调用usb转串口的路程
之前一直是在普通的framework环境下写串口,使用的类为 SerialPort 这个类大家可能比较熟悉.但是在UWP的开发里,使用的是 SerialDevice 这个类,是不一样的. 1. 清单文 ...
- 深入理解redis复制原理
原文:深入理解redis复制原理 1.复制过程 2.数据间的同步 3.全量复制 4.部分复制 5.心跳 6.异步复制 1.复制过程 从节点执行 slaveof 命令. 从节点只是保存了 slaveof ...
- spring boot启动报内存溢出的问题
问题: springBoot项目,已经两次了,启动报内存溢出,内存泄露 分析: 内存泄露是因为垃圾回收器想要回收程序不用的对象,但是该对象还有引用存在 解决: 1.第一次是mybatis文件和Java ...
- 成都Uber优步司机奖励政策(4月14日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 【转载】Direct3D纹理映射
原文:Direct3D纹理映射 更详细的文章:DirectX中的纹理映射相关技术 (转) 创建纹理对象 1: HRESULT CreateTexture( 2: UINT Width,//宽度 ...
- 一起来做Chrome Extension《一些问题》
目录 Unchecked runtime.lastError: The message port closed before a response wa received. 使用 eval Conte ...
- 如何快速解决MySQL 1032 主从错误
3分钟解决MySQL 1032主从错误 Part1:写在最前1032错误----现在生产库中好多数据,在从库误删了,生产库更新后找不到了,现在主从不同步了,再跳过错误也没用,因为没这条,再更新还会报错 ...
- Spring Cloud Learning(一): 服务注册
官网https://projects.spring.io/spring-cloud/,spring cloud官网各组件版本为: Component Edgware.SR4 Finchley.SR1 ...
- 【Linux 运维】 date的使用
date的使用 一.常用时间格式 #年.月.日 四位年大写,其余小写 [root@localhost ~]# date +%Y #长格式显示四位数年 [root@localhost ~]# date ...
- Paper Reading - Long-term Recurrent Convolutional Networks for Visual Recognition and Description ( CVPR 2015 )
Link of the Paper: https://arxiv.org/abs/1411.4389 Main Points: A novel Recurrent Convolutional Arch ...