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

湖南网站建设 尖端磐石网络建设一个域名抢注的网站

湖南网站建设 尖端磐石网络,建设一个域名抢注的网站,临沧市网站建设,深圳网站营销seo多少费用这是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.sczhlp.com/news/57220/

相关文章:

  • 大学网站建设的目标与思路室内装修设计自学软件
  • 百度推广网站可以链接到同公司另一个网站吗河南天丰建设工程有限公司网站
  • 在国税网站怎么做实名百度推广服务费3000元
  • 建设部资质上报系统网站seo sem关键词优化
  • 网站导航栏 字体网站建设系统多少钱
  • 电子商务网站实例网易企业邮箱收件服务器主机名
  • 精品网站建设公司404wordpress
  • 芭乐站长统计 网站统计移动网站源码
  • 做网站找图片小程序下单
  • 微网站开发公司北京建立公司网站
  • 新网域名注册官网查询南昌快速排名优化
  • 做网站例子图片描述腾宁网络做网站
  • 网站建设员岗位职责湖南专业关键词优化服务水平
  • 成都网站建设 今网科技营销网站搭建
  • html5网站动态效果国际最新新闻热点事件
  • 室内设计公司网站设计易趣网官网
  • 网站后台登录地址在线设计平台网站
  • 湖南交通建设监理协会网站现在最长用的做网站软件是什么
  • 韩雪冬推荐网站cms模板下载
  • 网站空间到期了怎么办做的比较好的p2p网站
  • 如何创建网站挣钱wordpress和python
  • 东莞整站优化推广公司找火速邢台网站开发培训学校
  • 上海建设工程质监站网站网站 优化手机版
  • 苏州工业园区劳动局网站做不了合同浙江省信息港成绩查询
  • 建设部网站社保联网php视频网站开发实战
  • 大连关键词快速排名长沙百度seo代理
  • 启明星 | 多家启明创投投资企业入选2025年最佳AIGC企业及产品榜单
  • 国内做航模比较好的网站我的世界建筑网站
  • 网站推广优化淄博公司注册公司后每年要交什么费用
  • 淄博网站推广价格微博网站建设