其他章节请看: webgl 系列 绘制猫 上文我们了解了如何绘制渐变彩色三角形,明白了图形装配.光栅化,以及片元着色器计算片元的颜色. 现在如果让你绘制如下一只猫.难道绘制很多三角形,然后指定它们的颜色?那样简直太难.太繁琐了. 这时可以使用三维图形学中的纹理映射技术来解决这个问题. 纹理映射简单来讲就是将一张图映射(贴)到一个几何图形的表面. 例如这样: 本篇最后将实现如下效果: 渐变矩形 根据渐变三角形,我们很容易就可以绘制一个渐变矩形.就像这样: 完整代码如下: const VSHADER…
上两篇我们学习了文本字符输出以及Unicode编写程序,知道如何用常见Win32输出文本字符串,这一篇我们来学习Windows编程中另一个非常重要的部分GDI图形绘图.Windows的GDI函数包含数百个API可供我们使用,本篇把最常用的GDI绘图做一个讲解.GDI可以绘制点.直线曲线.填充封闭区域.位图以及文本,其中文本部分已经在上一篇中将了,请参考[Windows编程]系列第三篇:文本字符输出. 跟前面的GDI对象一样,本篇的这些绘图函数也必须要设备上下文句柄(HDC)作为函数参数,从前文我…
<CSS 魔法系列>继续给大家带来 CSS 在网页中以及图形绘制中的使用.这篇文章给大家带来的是纯 CSS 绘制五角星.六角形.五边形.六边形.心形等等. 我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. 您可能感兴趣的相关文章 CSS3 在网页设计中的20佳惊艳应用 推荐12个漂亮的 CSS3 按钮实现方案 推荐10个非常优秀的 CSS3 开…
[Silverlight]Bing Maps学习系列(五):绘制多边形(Polygon)图形 Bing Maps Silverlight Control支持用户自定义绘制多边形(Polygon)图形,包括三角形.四边形(矩形.菱形).以及其他更多多边形的图形绘制. 多边形说简单点就是一个由多条边组成的有一定规则的图形,比如三角形就是由三条边组成,我们要在地图上绘制三角形需要知道三个顶点的坐标值(精度和纬度),如下代码块: private void btnPolygon_Click(object…
绘制一个点 我们初步认识了 webgl,本篇主要围绕绘制一个点的示例,逐步实现下面功能: 点的位置从 js 传入着色器 点的大小由 js 传入着色器 通过鼠标点击绘点 通过鼠标点击绘点,并改变点的颜色 绘制一个点(版本2) 需求 在上篇中我们在canvas中心绘制了一个点(效果如下),但这点的位置是直接写在顶点着色器中 gl_Position = vec4(0.0, 0.0, 0.0, 1.0); . 需求:点的位置从 js 传入着色器 思路 将位置信息从 js 传入着色器有两种方式:attri…
初识 WebGL 什么是 WebGL webgl 在支持 canvas 的浏览器中进行 2d 或 3d 渲染. webgl 程序除了有 Html.javascript,还需要加入着色器语言(GLSL ES). WebGL 使得网页在支持 HTML <canvas> 标签的浏览器中,不需要使用任何插件,便可以使用基于 OpenGL ES 2.0 的 API 在 canvas 中进行 3D 渲染 -- MDN WebGL 教程 通过 caniuse 得知 webgl(98.15%) 和 webgl…
其他章节请看: webgl 系列 渐变三角形 本文通过一个渐变三角形的示例逐步分析:varying变量.合并缓冲区.图形装配.光栅化.varying 内插 绘制三个点v1 需求:绘制三个相同颜色的点,效果如下: 通过三角形的学习,这个需求非常容易实现.代码如下: const VSHADER_SOURCE = ` attribute vec4 a_Position; void main() { gl_Position = a_Position; gl_PointSize = 10.0; } ` c…
其他章节请看: webgl 系列 着色器语言 本篇开始学习着色器语言 -- GLSL全称是 Graphics Library Shader Language (图形库着色器语言) GLSL 是一门独立的语言,和其他语言一样有自己的变量.运算符.函数.循环(for).控制语句(if).函数.数组等等. GLSL 比较简单.其专门用于编写着色器,舍弃了许多编程语言中复杂的东西,比如没有字符串,只有数字. Tip: webgl 1.0 绝大多数浏览器都支持,webgl 2.0 支持度差些.webgpu…
<!DOCTYPE html> <html> <head> <title>webgl</title> <style type="text/css"> #webgl{ border:1px solid; } </style> </head> <body> <canvas id="></canvas> <!-- WebGL编程指南作者提供的开发…
其他章节请看: webgl 系列 变换矩阵和动画 动画就是不停地将某个东西变换(transform).例如将三角形不停地旋转就是一个动画 和 CSS transform 类似,变换有三种形式:平移.缩放和旋转. 简单的变换用普通表达式容易实现,如果事情复杂,比如旋转后平移,这时就可以使用变换矩阵. 普通表达式 平移 比如要平移一个三角形,只需要将三个顶点移动相同的距离即可(这是一个逐顶点操作) 用二维向量表示,就像这样:[x1, y1] + [tx1, ty2] = [x2, y2] 比如要实现…