本系列内容全部转载自Godot Shaders网站,原版为英文,此处多为浏览器机翻,仅做汇总学习使用。
本系列每期汇总10个Shader

访问:Godot Shaders

径向等离子体屏蔽段


用于创建 2D 方向护盾的着色器

如何使用:

只需创建着色器并将其应用于其材质即可。

shader_type canvas_item;uniform float angle : hint_range(0.0, 6.283184);
uniform float spread_angle : hint_range(0.1, 3.141592);
uniform float progress : hint_range(0.0, 1.0);
uniform float border_energy_offset : hint_range(0.0, 1.0);
uniform vec4 color : hint_color;
uniform vec4 edges_color : hint_color;
uniform float edges_valueable : hint_range(0.0, 1.0);
uniform float edges_fade : hint_range(0.0, 1.0);void fragment(){vec2 center = vec2(0.5);vec2 center_uv = normalize(UV - center);float is = 1.0 - smoothstep(0.49*progress, 0.5*progress, distance(center, UV));vec2 frst_border = vec2(cos(angle+spread_angle/2.0), sin(angle+spread_angle/2.0));vec2 sec_boreder = vec2(cos(angle-spread_angle/2.0), sin(angle-spread_angle/2.0));vec2 radial_center = vec2(cos(angle), sin(angle));float posx = step(0.0, radial_center.x); // is radial_center.x positivefloat posy = step(0.0, radial_center.y); // is radial_center.y positive// using different formulas for different radial_center.x signsfloat is2 = step(min(frst_border.x, sec_boreder.x), center_uv.x)*posx; float is3 = step(center_uv.x, max(frst_border.x, sec_boreder.x))*(1.0 - posx);// using different formulas for different radial_center.y signsfloat is4 = step(min(frst_border.y, sec_boreder.y), center_uv.y)*posy;float is5 = step(center_uv.y, max(frst_border.y, sec_boreder.y))*(1.0-posy);// how close to frontier isfloat border_factor = 1.0 - distance(2.0*(UV - center), center_uv);border_factor = pow(border_factor, border_energy_offset*50.0); // speeding up center fading// how close to radial center isfloat radial_center_factor = 1.0 - distance(center_uv, radial_center)/distance(frst_border, radial_center);// how close ro radial edges isfloat edge_radial_factor = (1.0 - radial_center_factor) * edges_valueable;// applying edge fadingfloat edge_fade_factor = mix(radial_center_factor, 1.0, 1.0-edges_fade);COLOR.a = min(1.0, is2+is3)*min(1.0, is4+is5)*is*border_factor*mix(color.a, edges_color.a, edge_radial_factor)*edge_fade_factor;COLOR.rgb = mix(color.rgb, edges_color.rgb, edge_radial_factor);
}

彩虹轮廓


与@ThePadDev(https://twitter.com/ThePadDev)一起制作。

简单的轮廓画布项着色器,通过正弦运动循环颜色。包括用于偏移和加快周期以及偏移颜色(具有建议范围)的参数。

/*
Rainbow outline by @Farfalk and @ThePadDev, July 2021Apply to canvas items with transparent backgrounds.
Check that there is sufficient transparent background space for the outline!CC0 License (but citation is welcome <3)
*/shader_type canvas_item;uniform float line_thickness : hint_range(0, 20) = 1.0;    // thickness of the line
uniform float sin_frequency : hint_range(0.1, 2.0) = 0.5;  // frequency of the rainbow
uniform float sin_offset : hint_range(0.0, 360.0) = 0.0;   // offset of the rainbow, useful to differentiate objects using the same shader
uniform float light_offset : hint_range(0.0, 1.0) = 0.5;   // this offsets all color channels; if set to 0 only red green and blue colors will be shown.void fragment() {vec2 size = TEXTURE_PIXEL_SIZE * line_thickness;float outline = texture(TEXTURE, UV + vec2(-size.x, 0)).a;outline += texture(TEXTURE, UV + vec2(0, size.y)).a;outline += texture(TEXTURE, UV + vec2(size.x, 0)).a;outline += texture(TEXTURE, UV + vec2(0, -size.y)).a;outline += texture(TEXTURE, UV + vec2(-size.x, size.y)).a;outline += texture(TEXTURE, UV + vec2(size.x, size.y)).a;outline += texture(TEXTURE, UV + vec2(-size.x, -size.y)).a;outline += texture(TEXTURE, UV + vec2(size.x, -size.y)).a;outline = min(outline, 1.0);vec4 animated_line_color = vec4(light_offset + sin(2.0*3.14*sin_frequency*TIME),light_offset + sin(2.0*3.14*sin_frequency*TIME + radians(120.0)),light_offset + sin(2.0*3.14*sin_frequency*TIME + radians(240.0)),1.0);vec4 color = texture(TEXTURE, UV);COLOR = mix(color, animated_line_color, outline - color.a);
}

能量束

多功能着色器,用于制作能量束或激光。很多制服可以玩。包括一个"Progress"制服,如果你想激活或关闭光束动画(这将平滑地收缩和溶解光束,从而产生更好的效果)。

Godot Shaders汇总【第一期】相关推荐

  1. 精选“数据分析”好问题汇总·第一期

    不论朝阳迟暮,只要一直奔跑在追逐热爱的道路上,什么时候都是人生好时节! 数据说·梦想季 小飞象 乐于分享,自我提升,赋能他人 有一句话说,我有一个苹果,你有一个苹果,我和你交换之后,咱们各有一个苹果: ...

  2. 最新电影(个人汇总第一期)

    电影: 说明:链接自己复制,我就懒得搞自动链接了,因为有的链接比较长,所以自动分了两行,复制的时候要全部复制这两行. <忍者神龟>(这部进去后只能年5分钟,你保存进自己的乐视盘就可以看完了 ...

  3. smt贴片加工行业常见术语及知识汇总

    smt贴片加工行业常见术语及知识汇总 SMT贴片加工行业是所有电子成品的上游产业链,电子产品内部都有一块电路板,电路板上包括许多各种类型的电子元件,电子元件需要通过SMT及 DIP装配到电路板上.下面 ...

  4. CloudCompare基础教程(1)-介绍

    CloudCompare是一个三维点云(网格)编辑和处理软件.最初,它被设计用来对稠密的三维点云进行直接比较.它依赖于一种特定的八叉树结构,在进行点云对比这类任务时具有出色的性能[1].此外,由于大多 ...

  5. SemSegMap :基于3D点云语义信息的定位

    点云PCL免费知识星球,点云论文速读. 文章:SemSegMap - 3D Segment-Based Semantic Localization 作者:Andrei Cramariuc, Flori ...

  6. opencv中ArUco模块实践(1)

    论文阅读模块将分享点云处理,SLAM,三维视觉,高精地图相关的文章.公众号致力于理解三维视觉领域相关内容的干货分享,欢迎各位加入我,我们一起每天一篇文章阅读,开启分享之旅,有兴趣的可联系微信diany ...

  7. 头戴式AR/VR 光学标定

    文章:A Survey of Calibration Methods for Optical See-Through Head-Mounted Displays 作者:Jens Grubert , Y ...

  8. 实时的激光雷达点云压缩

    点云PCL免费知识星球,点云论文速读. 标题:Real-Time Spatio-Temporal LiDAR Point Cloud Compression 作者:Yu Feng , Shaoshan ...

  9. 学习PCL库你应该知道的C++特性

    要学会PCL首先要对C++进行学习,所以这里我们首先对PCL库的代码中常见的C++的技巧进行整理和概述,并且对其中的难点进行细化讲解.首先我们搞清楚PCL库的文件形式.是一个以CMake构建的项目,库 ...

  10. F-LOAM:基于激光雷达的快速里程计和建图

    文章:F-LOAM : Fast LiDAR Odometry and Mapping 作者:Han Wang, Chen Wang, Chun-Lin Chen, and Lihua Xie git ...

最新文章

  1. Scrum团队选择scrum看板工具的7点特征
  2. MVC5+EF6 入门完整教程七
  3. python123平台作业答案第十一周_第十一周作业
  4. python中索引是从什么开始_python索引从0开始,那负数索引算什么?三秋道果说python...
  5. windows下的结束标志
  6. SQL(四) - 子查询和union以及limit分页
  7. oracle快捷语句框架中,Oracle框架:PL/SQL编程:
  8. hadoop集群之HDFS和YARN启动和停止命令
  9. Vscode之运行更新出错
  10. macOS devtools安装github包失败解决
  11. cc2430的中文资料
  12. excel 函数 用=引用后,筛选功能排序,结果引用位置错乱
  13. 百度地图在项目应用示例
  14. android 系统秒表,android自定义秒表(精确到0.1s,带计次功能)
  15. win easypanel安装php,windows下kangle虚拟主机-kangleeasypanel安装图文教程以及心得
  16. 自考计算机毕业论文答辩视频,自考毕业论文答辩的全过程
  17. dubbo-monitor装配、 监控中心 配置过程
  18. 通达信f10接口是什么?
  19. Opensips搭建
  20. 微信支付公的众号支付和扫码支付

热门文章

  1. oracle财务模块设置影响,Oracle 财务模块介绍.ppt
  2. 业务系统监控解决方案
  3. 汽车尾气排放在线监控系统解决方案
  4. Web调用海康威视摄像头
  5. 银河麒麟支持php吗,银河麒麟操作系统下载
  6. 微信记录删了,怎么恢复找回来?5种攻略推荐
  7. vue当前浏览器是否为ie_vue项目检测IE浏览器版本,版本太低给出提示
  8. Spring实战(第4版)pdf
  9. CefSharp学习笔记
  10. JAVA从入门到放弃