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更轻松!!

相关推荐
仿生狮子1 小时前
OpenAI 攻下千禧年难题之后,开发者似乎无动于衷
前端·数学·vibecoding
Lvan的前端笔记4 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
三天不学习5 小时前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
xcs194056 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
明月_清风6 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
Csvn7 小时前
框架性能优化
前端
回眸&啤酒鸭9 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
用户69371750013849 小时前
2026,程序员的时代拐点到了
android·前端·后端
大龄秃头程序员9 小时前
一次 iBeacon + BLE 无感解锁方案的实现记录
前端
小兔子9 小时前
Python 的 GIL 与 free-threading:3.13 之后「去 GIL」走到哪一步了
前端