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

相关推荐
Pedantic11 小时前
SwiftUI 手势层级(Gesture Hierarchy)详解
前端
飘尘11 小时前
前端转型全栈(Java后端)的快速上手指引
前端·后端·全栈
一颗烂土豆11 小时前
Meshopt 压缩深度解析,为什么它比 Draco 更快
前端·javascript·webgl
浏览器工程师12 小时前
AI Agent 接浏览器任务,先别让它一路点到底
前端·后端
雨季mo浅忆12 小时前
VSCode自动格式化三要素
前端
爱勇宝13 小时前
深扒 Anthropic 1680 位工程师简历:应届生几乎没机会,AI 公司最缺的不是博士
前端·后端·程序员
kyriewen14 小时前
同事每天催我 Code Review,我写了个脚本让 AI 替我 review PR——现在他反过来催 AI 了
前端·javascript·ai编程
user205855615181316 小时前
Windows 项目安装时报 `node-sass` 错误,如何快速处理
前端
LiaCode16 小时前
Redis 在生产项目的使用
前端·后端