当前位置: 首页 > news >正文

网站建设的具体布局站长交流平台

网站建设的具体布局,站长交流平台,网站内链是什么,成立公司注册资金这是GLSL shader系列第一篇文章,本文学习目标: 安装编辑工具编写hello world程序 安装插件 我使用VSCode编写shader代码,在VSCode上有两个好用的插件需要先装一下: Shader languages support for VS Code glsl-canvas&#xf…

这是GLSL shader系列第一篇文章,本文学习目标:

  1. 安装编辑工具
  2. 编写hello world程序

安装插件

我使用VSCode编写shader代码,在VSCode上有两个好用的插件需要先装一下:

  1. Shader languages support for VS Code
    在这里插入图片描述
  2. glsl-canvas:主要用于在VSCode中对着色器的效果进行预览
    在这里插入图片描述

2 Hello World!

新建一个helloworld.frag文件,在其中编写如下代码:

#ifdef GL_ES
precision mediump float;
#endifvoid main() {gl_FragColor=vec4(1.,0.,0.,1.0);
}

然后在VSCode中按下Ctrl+Shift+P,输入Show glslCanvas后即可在屏幕中看到预览效果,一张全红的图片。至此,恭喜你已经完成了Hello world程序的编写,是不是非常简单?下面对代码做个介绍。

#ifdef GL_ES
precision mediump float;
#endif

在前3行检查了是否定义了GL_ES,这通常在移动端或浏览器下会定义,第2行指定了浮点数float的精度为中等,也可以指定为低精度lowp或高精度highp,精度越低执行速度越快,但质量会降低。你甚至可以直接将这段代码删除,程序仍能正常运行。

void main() {gl_FragColor=vec4(1.,0.,0.,1.0);
}

这是着色器的主要代码,看到main()函数你就应该知道,这也是程序的入口。在函数内部给gl_FragColor变量进行赋值,gl_FragColor是GLSL内置的变量,用输出最终的颜色。vec4是一种数据类型,其中分别存储RGB和透明度数据,取值范围均为0~1之间。注意,vec4里面的数值都是浮点类型的

3 再进一步

前面的示例程序太简单了,这次我们加点难度,看如下代码:

#ifdef GL_ES
precision mediump float;
#endif
uniform vec2 u_resolution;void main() {vec2 st = gl_FragCoord.xy/u_resolution;gl_FragColor=vec4(st.x,st.y,0.,1.0);
}

这段代码的执行结果有趣了起来,屏幕中出现了这样的图像:
在这里插入图片描述
这是怎么回事呢?

首先来看uniform vec2 u_resolution;指定了着色器接受的入参:类型为vec2u_resolution,其中存储了画布的宽高。
再介绍一下gl_FragCoord,这是片元着色器中定义好的值,存储片段(像素)点的坐标xy的值,因此使用这两个值就能够知道当前着色器计算的是画布上哪个位置的颜色。

因此st中存储的值,相当于将像素点的横坐标和纵坐标做了归一化处理,左下角是直角坐标系的原点(0, 0), 右下角坐标是(1,0),左上角的坐标是0,1,因此这三个点相对应的rgba值就分别为rbga(0,0,0,0)(1,0,0,0)(0,1,0,0),即对应黑色、红色和绿色,其余像素点的取值是中间值。到这里,你是否明白其中的原理了呢?

4 更上一层楼

接下来玩点更有意思的:

#ifdef GL_ES
precision mediump float;
#endif
uniform vec2 u_resolution;
uniform float u_time;void main() {vec2 st = gl_FragCoord.xy/u_resolution;gl_FragColor=vec4(st.x,st.y,sin(u_time),1.0);
}

uniform float u_time是传入的时间,能够不断递增,这一次我们将gl_FragColor中的蓝色通道的值改为sin(u_time),这样随着时间的变化,每个像素点的蓝色通道的取值就会在0-1之间变换,让图片动起来。

http://www.yayakq.cn/news/84221/

相关文章:

  • wap网站设计规范东莞网络营销渠道
  • 邢台做网站公司排名进一步加强区门户网站建设管理办法
  • 中国建设厅官网济南搜索引擎优化网站
  • 朝阳网站设计新建网站网络空间
  • IT做网站工资怎么样北京标志设计公司
  • 网站建立的优劣势酷家乐在线3d云设计平台
  • 建立网站站点的过程天津网站定制
  • 设计什么网站简单东城网站建设工作室
  • 天津培训网站建设成都 视频网站建设
  • wordpress粒子插件网页seo搜索引擎优化
  • 网站建设备案要哪些电脑前端主要做什么
  • 电子网站设计简单详细搭建网站教程视频教程
  • 网站开发的前端框架有哪些商城平台
  • 有没有教做蛋糕的网站佛山网站专业制作
  • 网站 报价单永久免费改ip地址软件
  • 优秀网站推广方案南京本地网站建设
  • 专业手机网站建设公司排名东莞建设网站公司简介
  • 东莞企业网站推广运营长沙长沙建设网站
  • 琼海网站制作高端建站用什么软件
  • 广州网站 制作信科便宜怎么开网店?去哪里注册?
  • 郑州app网站公司嵌入式培训学费
  • 怎么建网站挣钱阜蒙县自治区建设学校网站
  • 可以做片头的网站石家庄市制作网站公司
  • 做韦恩图网站诚一网站推广
  • 企业快速建站都有哪些技巧呢美工做网站怎么收费
  • 新都兴城建设投资有限公司网站做网站的公司怎么推销
  • 网站浏览器兼容性问题吗仿门户网站
  • 无投入网站推广海南做网站
  • 怎么建设QQ网站北京专业网站营销
  • 静态网站开发课程网北京手机建站模板