【WebGL】hello WebGL
来源:互联网 发布:如何成为一名淘宝客 编辑:程序博客网 时间:2024/06/12 00:25
开始学习WebGL了。
1、怎么创建一个canvas?
canvas的含义是画布,是一个装载图形的容器,WebGL绘制的场景都装在这个容器里。
它的创建很简单,我们可以先在style标签内定义它的边框属性:
<!--设置canvas边框属性--><style type="text/css">canvas{border:2px dotted blue;}</style>然后在body标签内加上:
<canvas id="canvas-element-id" width="800" height="600">your browser does not support HTML5</canvas>
来建立一张画布。
WebGL的上下文可以理解成一个JS对象,通过这个对象我们可以访问到WebGL函数及属性。
canvas可能呈现的上下文有两种,第一种叫做CanvasRedering2DContext,第二种叫WebGLRederingContext,通过getContext(...)里的参数来确定到底返回什么上下文。
3、一个综合示例(摘自WebGL Beginner's Guide):
<!DOCTYPE html><html><head><title>WebGL Learning</title><!--创建canvas--><style type="text/css">canvas{border:2px dotted blue;}</style><script>var gl=null;var c_width=0;var c_height=0;window.onkeydown=checkKey;function checkKey(ev){switch(ev.keyCode){case 49:{//ascii code, 49 corresponds to 1gl.clearColor(0.3,0.7,0.2,1.0);//设置清理缓冲区的值clear(gl);break;}case 50:{//2gl.clearColor(0.3,0.2,0.7,1.0);clear(gl);break;}case 51:{//3var color=gl.getParameter(gl.COLOR_CLEAR_VALUE);alert('clearColor=('+Math.round(color[0]*10)/10+ ','+Math.round(color[1]*10)/10+ ','+Math.round(color[2]*10)/10+')');window.focus();break;}}}function getGLContext(){var canvas=document.getElementById("canvas-element-id");if(canvas==null){alert("no canvas on this page");return;}var names=["webgl","experimental-webgl","webkit-3d","moz-webgl"];var ctx=null;for(var i=0;i<names.length;i++){try{ctx=canvas.getContext(names[i]);}catch(e){}if(ctx) break;}if(ctx==null){alert("webgl is not available");}else{//alert("Hooray! You got a webgl context");return ctx;}}function clear(ctx){ctx.clear(ctx.COLOR_BUFFER_BIT);//清除绘图区ctx.viewport(0,0,c_width,c_height);}function initWebGL(){gl=getGLContext();//执行后得到WebGLRederingContext对象}</script></head><body onLoad="initWebGL()"><canvas id="canvas-element-id" width="800" height="600">your browser does not support HTML5</canvas></body></html>
阅读全文
0 0
- 【WebGL】hello WebGL
- WebGL
- WebGL
- WebGL
- webGL
- WebGL
- WEBGL & WebGL Extension
- 【WebGL】WebGL概述
- 【WebGL】WebGL入门
- WebGL Specification
- WebGL学习计划
- WebGL Camp
- 初学WebGL
- WebGL教程
- 什么是WebGL
- Learning WebGL
- webGL总结
- WebGL检测器
- 2.2 多符号离散平稳信源
- 决策树ID3 算法python实现
- LeetCode 136.Single Number
- C语言实验——矩阵转置
- 二维码,条形码扫描?看我就够了
- 【WebGL】hello WebGL
- 胶囊间的动态路由(Dynamic Routing Between Capsules)翻译
- Vue子组件状态更新
- 浏览器中的data类型的Url格式,data:image/png,data:image/jpeg!
- 图论基础知识总结(一)
- jsonpath
- msyscuione:基于msys的一体化CUI开发生产环境,支持qt,llvm,ros集成常见web appstack
- 纪念我的装机之路(DL+DataMine篇)
- 将项目部署到github上