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 ...
随机推荐
- js获取上月的最后一天
一.问题: 在最近的开发中遇到一个需求,需要初始化默认时间为上月的最后一天 而在日历中这个值在每个月都不是固定的 二.分析: 问题可以转化为,获取指定月份时间的月末最后一天,下边是代码,供大家参考 f ...
- SaltStack入门篇(二)之远程执行和配置管理
1.远程执行 第一条命令: [root@linux-node1 master]# salt '*' test.ping linux-node2.example.com: True linux-node ...
- [Vani有约会]雨天的尾巴 线段树合并
[Vani有约会]雨天的尾巴 LG传送门 线段树合并入门好题. 先别急着上线段树合并,考虑一下这题的暴力.一看就是树上差分,对于每一个节点统计每种救济粮的数量,再一遍dfs把差分的结果统计成答案.如果 ...
- 了解ASP.NET Core 依赖注入,看这篇就够了
DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关于依赖注入的概念,身边有工作六七年的同事还个东西搞不清楚.另外再介绍一下.NET Core的DI实现以及对实例 ...
- Android开发笔记——以Volley图片加载、缓存、请求及展示为例理解Volley架构设计
Volley是由Google开源的.用于Android平台上的网络通信库.Volley通过优化Android的网络请求流程,形成了以Request-RequestQueue-Response为主线的网 ...
- JS继承方法
1.原型链: 每个构造函数都有一个原型对象,且有一个指针指向该原型对象(prototype),原型对象都包含一个指向构造函数的指针(constructor),而实例都包含一个指向原型对象的内部指针(p ...
- python4 - 字典
字典 定义:字典是无序的,它不能通过偏移来存取,只能通过键来存取. 特点:内部没有顺序,通过键来读取内容,可嵌套,方便我们组织多种数据结构,并且可以原地修改里面的内容,属于可变类型. 创建字典.{}, ...
- 学习笔记之windows 网络编程
WinSock2.h编程接口笔记在Qtcreater中使用系统默认的库只需要在.pro文件中添加 LIBS += -lws2_32 添加头文件#include <WinSock2.h *初始化套 ...
- 自己动手做AI:Google AIY开发工具包解析
2018年国际消费性电子展(CES)上,最明显的一个趋势是Amazon与Google的语音技术进驻战,如AmazonAlexa进驻到Acer笔电内,Google Assist进驻到KIA汽车内,其他如 ...
- SQL Server临时表漫谈
SQL Server是微软的关系型数据库,对于刚入门的我是一个非常友好的开发工具.可视化界面的安装与操作,非常适合刚入门的我. 其实大家要找这方面的资料,在网上一搜一大堆,这里我就不赘述那些了,基本都 ...