《数据可视化和图形学》专栏建立已然日久,想了好久怎么去开展这个系列(专栏输出比碎片化的输出难多了~):html
总之在纠结中一直迟迟难如下笔。一天,一天.... 草稿箱里十几篇总有的,后面想通了。我尽力 在途中获得你们的意见而后加速改进。那么就开始咱们的《数据可视化和图形学》前端
- 介绍图形学和可视化
- engineer/前端er如何入手
- GPU渲染管线
- webgl介绍 & coding
图形学:利用数学公式/函数基础理论来以图形形式表现
简单介绍几点:web
讨论图形学牵扯一点图像处理,简单说一下。图像处理就是图形学逻辑相反 输入图形输出数学公式/函数。
数据可视化:将数据转化成为交互的图形或图像等。 数据可视化主要旨在借助于图形化⼿段,清晰有效地传达与沟通讯息算法
在以前谈起可视化更多说是归属于计算机图形学CG(computer graphics)一类的,到后来发展势头愈来愈强,逐步脱离出来。知识图谱/医疗等等方向都有数据可视化的应用。
依此的简单回答:canvas
明确一点 在不一样的系列的GPU渲染管线存在差别浏览器
GPU的编码同CPU区别 debug不存在的... 无memory交集... 总之你会喜欢上它的~
请看下图:微信
光栅化:把顶点数据转换为片元的过程(简单理解就是找到图形并转换所覆盖的像素)网络
着色过程当中通常是线性补充(好比 0-1区间会进行线性补充 0.1 0.2....)框架
WebGL(Web图形库)是一个JavaScript API,可在任何兼容的Web浏览器中渲染高性能的交互式3D和2D图形,而无需使用插件。WebGL经过引入一个与OpenGL ES 2.0很是一致的API来作到这一点,该API能够在HTML5 <canvas>元素中使用。 这种一致性使API能够利用用户设备提供的硬件图形加速。函数
补充说明OpenGL也是渲染API ES是嵌入式的意思(可Google/baidu) 俩者API很是相近能够去了解一下。链接统一后面贴
首先 MDNwebGL相关介绍更全一些 以及 Tutorial (教程) 很是适合入门.你们能够去学习一下。可是深刻仍是须要参考一些学习资料(能够本身动手实现一些光线追踪,折射...图形学欢迎你)
来吧展现 最小的程序 效果就是绘制一个rect
<!-- 画布 --> <canvas id="myDiagram" width="200" height="200"></canvas> <!-- webgl utils --> <script src="https://webglfundamentals.org/webgl/resources/webgl-utils.js"></script>
// init shader(vertex,fragment) const vs = ` // vertex shader void main() { gl_Position = vec4(0, 0, 0, 1); // 居中 gl_PointSize = 120.0; //大小 } `; const fs = ` // fragment shader void main() { gl_FragColor = vec4(0, 0, 0, 1); // 黑色 } `; // setup //create program & use program const program = webglUtils.createProgramFromSources(gl, [vs, fs]); gl.useProgram(program); const offset = 0; const count = 1; // 绘制函数 drawArrays // gl.POINTS 内置绘制方式 // offset 偏移 // count 个数 gl.drawArrays(gl.POINTS, offset, count);
so easy webgl就学会了... 哈哈 没那么简单的啦。咱们后续慢慢搞
系列文章的下笔是如此的困难...系列的视频可如何是好! 你们多提提意见~
后续可视化方向会多一点,数学会多一点,物理会多一点.... 咱们加油!
数学(算法)很美的:quadtree
,cluster-kmeans....
哎呦都是好东西... 我都火烧眉毛写了(脑补坏笑的表情~)
若是有须要加微信群的联系我 ~