Tile Pattern

Task

Using tiling, repeat the pattern as many times as necessary.
使用平铺,根据需要重复该图案多次。

Theory

通过操纵UV坐标和使用fract功能,您可以在屏幕上创建重复的图案。通过fract获取[0,1]之间的值,所以可以通过设置行列来获取实际需要切割的Tile模块

示例用法

ini 复制代码
float columns = 2.0;
float rows = 8.0;

// Calculate repeated cells based on UV coordinates
vec2 repeatedUV = fract(uv * vec2(columns, rows));

Answer

glsl 复制代码
uniform vec2 iResolution;

// 原有的单个的纹理
float pattern(vec2 uv) {
  uv = uv * 2.0 - 1.0;
  float t = pow(uv.x * uv.x, 0.3) + pow(uv.y * uv.y, 0.3) - 1.0;
  return step(0.0, t) * t * 10.0 + step(0.2, t);
}

void main() {
  // Normalized pixel coordinates (from 0 to 1)
  vec2 uv = gl_FragCoord.xy / iResolution.xy;
  float columns = 5.0;
  float rows = 3.0;
  vec2 re = fract(uv * vec2(columns, rows));

  // 这边可以替换re为uv查看单个的形状
  gl_FragColor = vec4(pattern(re), 0.0, 0.0, 1.0);
}

效果

练习

Tile Pattern

最后

如果你觉得这篇文章有用,记得点赞、关注、收藏,学Shader更轻松!!

相关推荐
榴莲omega1 分钟前
第8天:前端面试经典五问
前端·面试·职场和发展·js八股
资讯第一线6 分钟前
RAD Studio 13.1 [DELPHI 13.1] [官方原版IOS] 下载
前端
橘子编程9 分钟前
CSS 全栈指南:从基础到 2025 新特性
前端·css·chrome·tensorflow·less·css3·html5
不会写DN16 分钟前
从依赖到自主:手写一个 ICO 文件转换器
前端·javascript·typescript·node.js
夏暖冬凉21 分钟前
前端大文件上传
前端
Aliex_git21 分钟前
前端监控笔记(一)
前端·笔记·学习
Highcharts.js22 分钟前
Highcharts Grid Lite:企业免费表格数据的基本工具
前端·javascript·信息可视化·免费·highcharts·表格工具
老萬頭24 分钟前
【技术深水区】抖音 WEB 端逆向:从零到一拿下 a_bogus 参数
前端·爬虫·python
程序员小李白25 分钟前
Vue 组件通信 极简速记版
前端·javascript·vue.js
光影少年25 分钟前
跨域问题如何解决?
前端·nginx·前端框架